<?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>219371</bug_id>
          
          <creation_ts>2020-11-30 14:42:44 -0800</creation_ts>
          <short_desc>Implement audio capture for SpeechRecognition on iOS</short_desc>
          <delta_ts>2020-12-10 09:47:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=219745</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1710795</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-30 14:42:44 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710796</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-30 14:42:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/71824049&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710798</commentid>
    <comment_count>2</comment_count>
      <attachid>415061</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-30 14:46:27 -0800</bug_when>
    <thetext>Created attachment 415061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710890</commentid>
    <comment_count>3</comment_count>
      <attachid>415086</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-30 18:04:15 -0800</bug_when>
    <thetext>Created attachment 415086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710894</commentid>
    <comment_count>4</comment_count>
      <attachid>415088</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-30 18:22:42 -0800</bug_when>
    <thetext>Created attachment 415088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710912</commentid>
    <comment_count>5</comment_count>
      <attachid>415092</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-30 20:29:32 -0800</bug_when>
    <thetext>Created attachment 415092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710913</commentid>
    <comment_count>6</comment_count>
      <attachid>415093</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-30 20:43:42 -0800</bug_when>
    <thetext>Created attachment 415093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711048</commentid>
    <comment_count>7</comment_count>
      <attachid>415138</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-01 08:57:18 -0800</bug_when>
    <thetext>Created attachment 415138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711050</commentid>
    <comment_count>8</comment_count>
      <attachid>415139</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-01 09:06:35 -0800</bug_when>
    <thetext>Created attachment 415139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711054</commentid>
    <comment_count>9</comment_count>
      <attachid>415141</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-01 09:17:05 -0800</bug_when>
    <thetext>Created attachment 415141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711075</commentid>
    <comment_count>10</comment_count>
      <attachid>415144</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-01 10:00:55 -0800</bug_when>
    <thetext>Created attachment 415144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711093</commentid>
    <comment_count>11</comment_count>
      <attachid>415147</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-01 10:39:47 -0800</bug_when>
    <thetext>Created attachment 415147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711176</commentid>
    <comment_count>12</comment_count>
      <attachid>415164</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-01 14:28:38 -0800</bug_when>
    <thetext>Created attachment 415164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711178</commentid>
    <comment_count>13</comment_count>
      <attachid>415166</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-01 14:33:00 -0800</bug_when>
    <thetext>Created attachment 415166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711264</commentid>
    <comment_count>14</comment_count>
      <attachid>415194</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-01 23:23:49 -0800</bug_when>
    <thetext>Created attachment 415194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711266</commentid>
    <comment_count>15</comment_count>
      <attachid>415196</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-01 23:35:01 -0800</bug_when>
    <thetext>Created attachment 415196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711350</commentid>
    <comment_count>16</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-02 09:06:02 -0800</bug_when>
    <thetext>Win bot failure should be irrelevant</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711461</commentid>
    <comment_count>17</comment_count>
      <attachid>415196</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-02 14:06:13 -0800</bug_when>
    <thetext>Comment on attachment 415196
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.cpp:60
&gt; +    return RealtimeMediaSourceCenter::singleton().audioCaptureFactory().createAudioCaptureSource(captureDevice, { }, { });

In case we do capture in GPU process, I think it will work out as follows:
- GPU process proxy capture audio
- Web process receives audio
- Web process forwards audio to UIProcess.
In practice though, this might not work well due to the sandbox extensions that GPU process proxy will need to have.
I think we will need to do direct UIProcess&lt;-&gt;UIProcess communication.
It seems overall that the current classes are IPC::Connection based so they should be adaptable for that purpose.
It is worth keeping that in mind in that patch though.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:91
&gt; +            if (isMainThread()) {

We should not be in main thread there?
I guess we can add a FIXME somewhere. If the issue is IPC, we should add a message thread receiver and dispatch IPC messages to a specific dispatch queue.
We can leave that to a followup though.

By the way, why is it needed for the state update callback to be called synchronously here.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:103
&gt; +            if (isMainThread()) {

Ditto

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:115
&gt; +    m_source = makeUnique&lt;SpeechRecognitionCaptureSource&gt;(*m_clientIdentifier, WTFMove(dataCallback), WTFMove(stateUpdateCallback), result.source());

It seems simpler to just always have a m_realtimeMediaSourceCreateFunction.
Or we can simply pass a Ref&lt;RealtimeMediaSource&gt; directly in start method or in SpeechRecognizer constructor.

&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:39
&gt; +class SpeechRecognitionRemoteRealtimeMediaSource : public WebCore::RealtimeMediaSource {

This code is probably very similar to UserMediaCaptureManagerProxy::SourceProxy and its counter part RemoteCaptureSampleManager.
Could we try to share code here?
Maybe we could have RemoteCaptureSampleManager handle capture failed/stopped to unify both classes.

&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:51
&gt; +class SpeechRecognitionRemoteRealtimeMediaSourceManager : public CanMakeWeakPtr&lt;SpeechRecognitionRemoteRealtimeMediaSourceManager&gt;, public IPC::MessageReceiver, private IPC::MessageSender {

Can we try to see whether we can reuse code from RemoteCaptureSampleManager?

&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:54
&gt; +    SpeechRecognitionRemoteRealtimeMediaSourceManager(Ref&lt;IPC::Connection&gt;&amp;&amp;);

explicit

&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:64
&gt; +    void remoteSourceStopped(WebCore::RealtimeMediaSourceIdentifier);

These methods can probably be private.

&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:77
&gt; +    HashMap&lt;WebCore::RealtimeMediaSourceIdentifier, SpeechRecognitionRemoteRealtimeMediaSource*&gt; m_sources;

This seems safe given SpeechRecognitionRemoteRealtimeMediaSource makes sure to unregister itself in destructor.
I would still go with a HashMap of WeakPtr though for extra safety.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:97
&gt; +            m_recognizer-&gt;setRealtimeMediaSourceCreateFunction([this](auto&amp; device) {

It seems this should go in constructor of recogniser.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.h:61
&gt; +    void setRealtimeMediaSourceCreateFunction(WebCore::SpeechRecognizer::RealtimeMediaSourceCreateFunction&amp;&amp; function) { m_realtimeMediaSourceCreateFunction = WTFMove(function); }

It seems this could go in constructor since it will not change over time.

&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:52
&gt; +class SpeechRecognitionRealtimeMediaSourceManager::RealtimeMediaSource

It seems we should try to share code with UserMediaCaptureManagerProxy::SourceProxy

&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.messages.in:34
&gt; +    RevokeSandboxExtensions()

Maybe we can do it another patch, but it would be good to have one place where we handle sandbox extension granting and revoking for both getUserMedia and recogniser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711518</commentid>
    <comment_count>18</comment_count>
      <attachid>415196</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-02 16:54:20 -0800</bug_when>
    <thetext>Comment on attachment 415196
Patch

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

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.cpp:60
&gt;&gt; +    return RealtimeMediaSourceCenter::singleton().audioCaptureFactory().createAudioCaptureSource(captureDevice, { }, { });
&gt; 
&gt; In case we do capture in GPU process, I think it will work out as follows:
&gt; - GPU process proxy capture audio
&gt; - Web process receives audio
&gt; - Web process forwards audio to UIProcess.
&gt; In practice though, this might not work well due to the sandbox extensions that GPU process proxy will need to have.
&gt; I think we will need to do direct UIProcess&lt;-&gt;UIProcess communication.
&gt; It seems overall that the current classes are IPC::Connection based so they should be adaptable for that purpose.
&gt; It is worth keeping that in mind in that patch though.

Yes, I think direct UI - GPU process connection is the way to go. We probably just need to set the correct connection in SpeechRecognitionRemoteRealtimeMediaSourceManager.  
Current implementation will return error if capture in GPU process is enabled on iOS.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:91
&gt;&gt; +            if (isMainThread()) {
&gt; 
&gt; We should not be in main thread there?
&gt; I guess we can add a FIXME somewhere. If the issue is IPC, we should add a message thread receiver and dispatch IPC messages to a specific dispatch queue.
&gt; We can leave that to a followup though.
&gt; 
&gt; By the way, why is it needed for the state update callback to be called synchronously here.

Yes, this is because we handle the remoteAudioSamplesAvailable on main thread.

It does not need to be called synchronously I guess (did not break existing tests); just seems unnecessary to schedule a future task if we already on the main thread.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:103
&gt;&gt; +            if (isMainThread()) {
&gt; 
&gt; Ditto

Ditto

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:115
&gt;&gt; +    m_source = makeUnique&lt;SpeechRecognitionCaptureSource&gt;(*m_clientIdentifier, WTFMove(dataCallback), WTFMove(stateUpdateCallback), result.source());
&gt; 
&gt; It seems simpler to just always have a m_realtimeMediaSourceCreateFunction.
&gt; Or we can simply pass a Ref&lt;RealtimeMediaSource&gt; directly in start method or in SpeechRecognizer constructor.

Okay, will change.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:39
&gt;&gt; +class SpeechRecognitionRemoteRealtimeMediaSource : public WebCore::RealtimeMediaSource {
&gt; 
&gt; This code is probably very similar to UserMediaCaptureManagerProxy::SourceProxy and its counter part RemoteCaptureSampleManager.
&gt; Could we try to share code here?
&gt; Maybe we could have RemoteCaptureSampleManager handle capture failed/stopped to unify both classes.

Okay, will try. Seems we can move the code from different processes to Shared/.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:51
&gt;&gt; +class SpeechRecognitionRemoteRealtimeMediaSourceManager : public CanMakeWeakPtr&lt;SpeechRecognitionRemoteRealtimeMediaSourceManager&gt;, public IPC::MessageReceiver, private IPC::MessageSender {
&gt; 
&gt; Can we try to see whether we can reuse code from RemoteCaptureSampleManager?

Okay.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:64
&gt;&gt; +    void remoteSourceStopped(WebCore::RealtimeMediaSourceIdentifier);
&gt; 
&gt; These methods can probably be private.

Sure.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:77
&gt;&gt; +    HashMap&lt;WebCore::RealtimeMediaSourceIdentifier, SpeechRecognitionRemoteRealtimeMediaSource*&gt; m_sources;
&gt; 
&gt; This seems safe given SpeechRecognitionRemoteRealtimeMediaSource makes sure to unregister itself in destructor.
&gt; I would still go with a HashMap of WeakPtr though for extra safety.

Will change to use WeakPtr.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:97
&gt;&gt; +            m_recognizer-&gt;setRealtimeMediaSourceCreateFunction([this](auto&amp; device) {
&gt; 
&gt; It seems this should go in constructor of recogniser.

Sure, made it separate for the macro.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.h:61
&gt;&gt; +    void setRealtimeMediaSourceCreateFunction(WebCore::SpeechRecognizer::RealtimeMediaSourceCreateFunction&amp;&amp; function) { m_realtimeMediaSourceCreateFunction = WTFMove(function); }
&gt; 
&gt; It seems this could go in constructor since it will not change over time.

Okay.

&gt;&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:52
&gt;&gt; +class SpeechRecognitionRealtimeMediaSourceManager::RealtimeMediaSource
&gt; 
&gt; It seems we should try to share code with UserMediaCaptureManagerProxy::SourceProxy

Will try.

&gt;&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.messages.in:34
&gt;&gt; +    RevokeSandboxExtensions()
&gt; 
&gt; Maybe we can do it another patch, but it would be good to have one place where we handle sandbox extension granting and revoking for both getUserMedia and recogniser.

Yes, getUserMedia currently has two places (UserMediaProcessManager and UserMediaPermissionRequestManagerProxy) to grant sandbox extensions and may also be simplified by then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711886</commentid>
    <comment_count>19</comment_count>
      <attachid>415364</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-03 16:12:55 -0800</bug_when>
    <thetext>Created attachment 415364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711918</commentid>
    <comment_count>20</comment_count>
      <attachid>415371</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-03 17:53:14 -0800</bug_when>
    <thetext>Created attachment 415371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711919</commentid>
    <comment_count>21</comment_count>
      <attachid>415372</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-03 18:03:18 -0800</bug_when>
    <thetext>Created attachment 415372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711949</commentid>
    <comment_count>22</comment_count>
      <attachid>415386</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-03 21:55:49 -0800</bug_when>
    <thetext>Created attachment 415386
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711972</commentid>
    <comment_count>23</comment_count>
      <attachid>415397</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 02:25:39 -0800</bug_when>
    <thetext>Created attachment 415397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712015</commentid>
    <comment_count>24</comment_count>
      <attachid>415397</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-04 07:18:02 -0800</bug_when>
    <thetext>Comment on attachment 415397
Patch

Some getDisplayMedia tests seem to be failing.
getDisplayMedia capture in MacOS happens in UIProcess, WebProcess receiving the video samples over IPC.

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

&gt; Source/WebKit/ChangeLog:149
&gt; +2020-12-03  Sihui Liu  &lt;sihui_liu@apple.com&gt;

double entry.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:91
&gt; +            if (isMainThread()) {

Since they are not needed, let&apos;s just not add these switches. Ditto below.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:106
&gt; +    if (m_realtimeMediaSourceCreateFunction) {

I would make this callback mandatory so that we simplify this code path to only handle error cases or have a source.
In the future, we will always capture in GPU process anyway.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.h:61
&gt; +    using RealtimeMediaSourceCreateFunction = Function&lt;RefPtr&lt;WebCore::RealtimeMediaSource&gt;(const WebCore::CaptureDevice&amp;)&gt;;

We could probably use something like SpeechRecognitionErrorOr&lt;Ref&lt;WebCore::RealtimeMediaSource&gt;&gt;

&gt; Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp:48
&gt; +    : RemoteRealtimeMediaSourceManager(nullptr, false)

These values nullptr and false are not very clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712048</commentid>
    <comment_count>25</comment_count>
      <attachid>415424</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 10:05:29 -0800</bug_when>
    <thetext>Created attachment 415424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712050</commentid>
    <comment_count>26</comment_count>
      <attachid>415425</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 10:14:03 -0800</bug_when>
    <thetext>Created attachment 415425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712052</commentid>
    <comment_count>27</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 10:20:53 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #24)
&gt; Comment on attachment 415397 [details]
&gt; Patch
&gt; 
&gt; Some getDisplayMedia tests seem to be failing.
&gt; getDisplayMedia capture in MacOS happens in UIProcess, WebProcess receiving
&gt; the video samples over IPC.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415397&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:149
&gt; &gt; +2020-12-03  Sihui Liu  &lt;sihui_liu@apple.com&gt;
&gt; 
&gt; double entry.

Removed!

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:91
&gt; &gt; +            if (isMainThread()) {
&gt; 
&gt; Since they are not needed, let&apos;s just not add these switches. Ditto below.

Sure.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:106
&gt; &gt; +    if (m_realtimeMediaSourceCreateFunction) {
&gt; 
&gt; I would make this callback mandatory so that we simplify this code path to
&gt; only handle error cases or have a source.
&gt; In the future, we will always capture in GPU process anyway.

Made m_realtimeMediaSourceCreateFunction mandatory.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/SpeechRecognitionServer.h:61
&gt; &gt; +    using RealtimeMediaSourceCreateFunction = Function&lt;RefPtr&lt;WebCore::RealtimeMediaSource&gt;(const WebCore::CaptureDevice&amp;)&gt;;
&gt; 
&gt; We could probably use something like
&gt; SpeechRecognitionErrorOr&lt;Ref&lt;WebCore::RealtimeMediaSource&gt;&gt;

I used WebCore::CaptureSourceOrError.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp:48
&gt; &gt; +    : RemoteRealtimeMediaSourceManager(nullptr, false)
&gt; 
&gt; These values nullptr and false are not very clear.

I agree, I&apos;ve changed bool to enum class ShouldHandleSandboxExtensions. I also removed RemoteRealtimeMediaSourceManager from UserMediaCaptureManager, as this patch is getting bigger and harder to debug with specific code change for UserMedia.

Will do replace/change existing classes UserMediaCaptureManager and UserMediaCaptureManagerProxy with shared RemoteRemoteRealtimeMediaSourceManager and RemoteRealtimeMediaSourceManager in a separate patch. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712056</commentid>
    <comment_count>28</comment_count>
      <attachid>415428</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 10:36:08 -0800</bug_when>
    <thetext>Created attachment 415428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712106</commentid>
    <comment_count>29</comment_count>
      <attachid>415441</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 12:07:06 -0800</bug_when>
    <thetext>Created attachment 415441
Fix MediaStream tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712142</commentid>
    <comment_count>30</comment_count>
      <attachid>415441</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-04 13:40:34 -0800</bug_when>
    <thetext>Comment on attachment 415441
Fix MediaStream tests

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

&gt; Source/WTF/ChangeLog:9
&gt; +        Turn on WebSpeech on iOS simulator by default for testing.

Not very clear why we need this.
We do not need them for WTR and for regular testing, we have the UI for that, or we can compile switched on locally.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.cpp:65
&gt; +    m_impl = makeUnique&lt;SpeechRecognitionCaptureSourceImpl&gt;(clientIdentifier, WTFMove(dataCallback), WTFMove(stateUpdateCallback), WTFMove(source));

Could be written as:
   : m_impl(makeUnique&lt;&gt;(...))

&gt; Source/WebKit/ChangeLog:17
&gt; +        Original WebKit::RemoteRealtimeMediaSource is renamed to WebKit::WebRemoteRealtimeMediaSource. We should

What is missing from replacing WebRemoteRealtimeMediaSource by the new RemoteRealtimeMediaSource?
Maybe we should first do this refactoring as preliminary patches? That would make sure we have code that is clear at any point in time.
Also, it is difficult to see how the new code is close to replacing the old one.
If that is too much work or too difficult, maybe we should revert to having specific speech classes for now.

If we want to continue in that direction, ObsoleteRemoteRealtimeMediaSource might be a better name since that is the intent I think.

&gt; Source/WebKit/Shared/media/RealtimeMediaSourceManager.cpp:53
&gt; +    : private WebCore::RealtimeMediaSource::Observer

There are probably a lot of WebCore::
We could be doing using namespace WebCore.

&gt; Source/WebKit/Shared/media/RealtimeMediaSourceManager.cpp:184
&gt; +    int64_t m_numberOfFrames { 0 };

Should be uint64_t probably

&gt; Source/WebKit/Shared/media/RealtimeMediaSourceManager.cpp:237
&gt; +    case WebCore::CaptureDevice::DeviceType::Microphone:

This code is mostly dealing with audio (not processing video samples or camera sandbox extensions).
Let&apos;s ASSERT_NOT_REACHED for the other cases.
We could also remove orientation code as well for now.

&gt; Source/WebKit/Shared/media/RealtimeMediaSourceManager.h:49
&gt; +    RealtimeMediaSourceManager(IPC::Connection&amp;);

explicit, could take a Ref&lt;IPC::Connection&gt;&amp;&amp;.

&gt; Source/WebKit/Shared/media/RealtimeMediaSourceManager.h:78
&gt; +    HashMap&lt;WebCore::RealtimeMediaSourceIdentifier, std::unique_ptr&lt;RealtimeMediaSource&gt;&gt; m_sources;

RealtimeMediaSource is not a great name since it makes think this is some kind of WebCore::RealtimeMediaSource which are ref counted.
Let&apos;s use a shorter name like Source.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.h:62
&gt; +    void setRealtimeMediaSourceCreateFunction(RealtimeMediaSourceCreateFunction&amp;&amp; function) { m_realtimeMediaSourceCreateFunction = WTFMove(function); }

Could be in SpeechRecognitionServer constructor.

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1732
&gt; +    speechRecognitionServer-&gt;setRealtimeMediaSourceCreateFunction([weakThis = makeWeakPtr(this), weakPage = makeWeakPtr(targetPage)]() {

If we move it to constructor, we could also make the lambda a method of WebPageProxy to keep the lambda small enough.

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1736
&gt; +        if (!weakPage || weakPage-&gt;preferences().captureAudioInGPUProcessEnabled())

I would move the weakPage check with weakThis check.
And add a &quot;not implemented for GPU process&quot; specific message.
 Also, maybe only the weakPage is actually necessary since the page proxy keeps a ref to its process proxy.

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1744
&gt; +        auto&amp; sourceManager = weakThis-&gt;ensureRemoteRealtimeMediaSourceManager();

sourceManager is only used once

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1768
&gt; +        addMessageReceiver(Messages::RemoteRealtimeMediaSourceManager::messageReceiverName(), *m_remoteRealtimeMediaSourceManager);

It is probably safer to remove the message receiver at destruction time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712162</commentid>
    <comment_count>31</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 14:16:48 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #30)
&gt; Comment on attachment 415441 [details]
&gt; Fix MediaStream tests
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415441&amp;action=review
&gt; 
&gt; &gt; Source/WTF/ChangeLog:9
&gt; &gt; +        Turn on WebSpeech on iOS simulator by default for testing.
&gt; 
&gt; Not very clear why we need this.
&gt; We do not need them for WTR and for regular testing, we have the UI for
&gt; that, or we can compile switched on locally.

Okay, will revert.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.cpp:65
&gt; &gt; +    m_impl = makeUnique&lt;SpeechRecognitionCaptureSourceImpl&gt;(clientIdentifier, WTFMove(dataCallback), WTFMove(stateUpdateCallback), WTFMove(source));
&gt; 
&gt; Could be written as:
&gt;    : m_impl(makeUnique&lt;&gt;(...))
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:17
&gt; &gt; +        Original WebKit::RemoteRealtimeMediaSource is renamed to WebKit::WebRemoteRealtimeMediaSource. We should
&gt; 
&gt; What is missing from replacing WebRemoteRealtimeMediaSource by the new
&gt; RemoteRealtimeMediaSource?

Replacing WebRemoteRealtimeMediaSource requires change in UserMediaCaptureManager and RemoteRealtimeMediaSourceManager; and possibly some behavior changes that need to verify by testing. Then I found the refactoring work overweighs what I want to implement in this patch.

&gt; Maybe we should first do this refactoring as preliminary patches? That would
&gt; make sure we have code that is clear at any point in time.
&gt; Also, it is difficult to see how the new code is close to replacing the old
&gt; one.

I was thinking about replacing UserMediaCaptureManagerProxy and UserMediaCaptureManager functionalities with RealtimeMediaSourceManager and RemoteRealtimeMediaSourceManager, not only the RemoteRealtimeMediaSource.

&gt; If that is too much work or too difficult, maybe we should revert to having
&gt; specific speech classes for now.

Will do!

&gt; 
&gt; If we want to continue in that direction, ObsoleteRemoteRealtimeMediaSource
&gt; might be a better name since that is the intent I think.
&gt; 
&gt; &gt; Source/WebKit/Shared/media/RealtimeMediaSourceManager.cpp:53
&gt; &gt; +    : private WebCore::RealtimeMediaSource::Observer
&gt; 
&gt; There are probably a lot of WebCore::
&gt; We could be doing using namespace WebCore.

Okay.

&gt; 
&gt; &gt; Source/WebKit/Shared/media/RealtimeMediaSourceManager.cpp:184
&gt; &gt; +    int64_t m_numberOfFrames { 0 };
&gt; 
&gt; Should be uint64_t probably

Will change.

&gt; 
&gt; &gt; Source/WebKit/Shared/media/RealtimeMediaSourceManager.cpp:237
&gt; &gt; +    case WebCore::CaptureDevice::DeviceType::Microphone:
&gt; 
&gt; This code is mostly dealing with audio (not processing video samples or
&gt; camera sandbox extensions).
&gt; Let&apos;s ASSERT_NOT_REACHED for the other cases.
&gt; We could also remove orientation code as well for now.

Will revert to audio-only and speechrecognition-only version.

&gt; 
&gt; &gt; Source/WebKit/Shared/media/RealtimeMediaSourceManager.h:49
&gt; &gt; +    RealtimeMediaSourceManager(IPC::Connection&amp;);
&gt; 
&gt; explicit, could take a Ref&lt;IPC::Connection&gt;&amp;&amp;.

Sure.

&gt; 
&gt; &gt; Source/WebKit/Shared/media/RealtimeMediaSourceManager.h:78
&gt; &gt; +    HashMap&lt;WebCore::RealtimeMediaSourceIdentifier, std::unique_ptr&lt;RealtimeMediaSource&gt;&gt; m_sources;
&gt; 
&gt; RealtimeMediaSource is not a great name since it makes think this is some
&gt; kind of WebCore::RealtimeMediaSource which are ref counted.
&gt; Let&apos;s use a shorter name like Source.

Okay.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/SpeechRecognitionServer.h:62
&gt; &gt; +    void setRealtimeMediaSourceCreateFunction(RealtimeMediaSourceCreateFunction&amp;&amp; function) { m_realtimeMediaSourceCreateFunction = WTFMove(function); }
&gt; 
&gt; Could be in SpeechRecognitionServer constructor.

Will move.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1732
&gt; &gt; +    speechRecognitionServer-&gt;setRealtimeMediaSourceCreateFunction([weakThis = makeWeakPtr(this), weakPage = makeWeakPtr(targetPage)]() {
&gt; 
&gt; If we move it to constructor, we could also make the lambda a method of
&gt; WebPageProxy to keep the lambda small enough.

I guess you mean WebProcessProxy, sure!

&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1736
&gt; &gt; +        if (!weakPage || weakPage-&gt;preferences().captureAudioInGPUProcessEnabled())
&gt; 
&gt; I would move the weakPage check with weakThis check.
&gt; And add a &quot;not implemented for GPU process&quot; specific message.
&gt;  Also, maybe only the weakPage is actually necessary since the page proxy
&gt; keeps a ref to its process proxy.

Will change.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1744
&gt; &gt; +        auto&amp; sourceManager = weakThis-&gt;ensureRemoteRealtimeMediaSourceManager();
&gt; 
&gt; sourceManager is only used once

Will remove.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1768
&gt; &gt; +        addMessageReceiver(Messages::RemoteRealtimeMediaSourceManager::messageReceiverName(), *m_remoteRealtimeMediaSourceManager);
&gt; 
&gt; It is probably safer to remove the message receiver at destruction time.

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712217</commentid>
    <comment_count>32</comment_count>
      <attachid>415477</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 17:04:27 -0800</bug_when>
    <thetext>Created attachment 415477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712236</commentid>
    <comment_count>33</comment_count>
      <attachid>415483</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 20:39:36 -0800</bug_when>
    <thetext>Created attachment 415483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712244</commentid>
    <comment_count>34</comment_count>
      <attachid>415485</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 21:51:20 -0800</bug_when>
    <thetext>Created attachment 415485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712247</commentid>
    <comment_count>35</comment_count>
      <attachid>415486</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-04 22:19:22 -0800</bug_when>
    <thetext>Created attachment 415486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712444</commentid>
    <comment_count>36</comment_count>
      <attachid>415486</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-07 06:16:57 -0800</bug_when>
    <thetext>Comment on attachment 415486
Patch

Some nits below, some tests would be good.

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Add a way to set RealtimeMediaSource member of SpeechRecognitionCaptureSourceImpl.

We should be able to add some tests with mock audio source.
Can we add/enable some tests?

&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:57
&gt; +    send(Messages::SpeechRecognitionRealtimeMediaSourceManager::AddSource(identifier, captureDevice));

I would go with createSource/deleteSource instead of addSource/removeSource (for both methods and IPC messages).

&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:54
&gt; +    SpeechRecognitionRemoteRealtimeMediaSourceManager(Ref&lt;IPC::Connection&gt;&amp;&amp;);

explicit

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1754
&gt; +        return createRealtimeMediaSourceForSpeechRecognition();

If we make ensureSpeechRecognitionRemoteRealtimeMediaSourceManager public, then we could move createRealtimeMediaSourceForSpeechRecognition in WebPageProxy and write the lambda as:
if (!weakPage)
    return error;
return weakPage? weakPage-&gt;createRealtimeMediaSourceForSpeechRecognition() : CaptureSourceOrError { &quot;Page is invalid&quot; };

That will allow removing capturing &apos;this&apos; in the lambda.

&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:41
&gt; +class SpeechRecognitionRealtimeMediaSourceManager : public CanMakeWeakPtr&lt;SpeechRecognitionRealtimeMediaSourceManager&gt;, public IPC::MessageReceiver, private IPC::MessageSender {

final?

&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:44
&gt; +    SpeechRecognitionRealtimeMediaSourceManager(Ref&lt;IPC::Connection&gt;&amp;&amp;);

explicit

&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:59
&gt; +    void didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) override;

final</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712516</commentid>
    <comment_count>37</comment_count>
      <attachid>415486</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-07 11:43:18 -0800</bug_when>
    <thetext>Comment on attachment 415486
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        Add a way to set RealtimeMediaSource member of SpeechRecognitionCaptureSourceImpl.
&gt; 
&gt; We should be able to add some tests with mock audio source.
&gt; Can we add/enable some tests?

Hmm it seems using remote source or local source have no difference in generating events for SpeechRecognition, so this change does not affect the behavior of existing tests. 
What tests do you think should be added for this?

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:57
&gt;&gt; +    send(Messages::SpeechRecognitionRealtimeMediaSourceManager::AddSource(identifier, captureDevice));
&gt; 
&gt; I would go with createSource/deleteSource instead of addSource/removeSource (for both methods and IPC messages).

Will change.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:54
&gt;&gt; +    SpeechRecognitionRemoteRealtimeMediaSourceManager(Ref&lt;IPC::Connection&gt;&amp;&amp;);
&gt; 
&gt; explicit

Okay.

&gt;&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1754
&gt;&gt; +        return createRealtimeMediaSourceForSpeechRecognition();
&gt; 
&gt; If we make ensureSpeechRecognitionRemoteRealtimeMediaSourceManager public, then we could move createRealtimeMediaSourceForSpeechRecognition in WebPageProxy and write the lambda as:
&gt; if (!weakPage)
&gt;     return error;
&gt; return weakPage? weakPage-&gt;createRealtimeMediaSourceForSpeechRecognition() : CaptureSourceOrError { &quot;Page is invalid&quot; };
&gt; 
&gt; That will allow removing capturing &apos;this&apos; in the lambda.

Sure, will move it to WebPageProxy.

&gt;&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:41
&gt;&gt; +class SpeechRecognitionRealtimeMediaSourceManager : public CanMakeWeakPtr&lt;SpeechRecognitionRealtimeMediaSourceManager&gt;, public IPC::MessageReceiver, private IPC::MessageSender {
&gt; 
&gt; final?

Okay.

&gt;&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:44
&gt;&gt; +    SpeechRecognitionRealtimeMediaSourceManager(Ref&lt;IPC::Connection&gt;&amp;&amp;);
&gt; 
&gt; explicit

Will add.

&gt;&gt; Source/WebKit/WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:59
&gt;&gt; +    void didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) override;
&gt; 
&gt; final

Will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712518</commentid>
    <comment_count>38</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-07 11:47:33 -0800</bug_when>
    <thetext>(In reply to Sihui Liu from comment #37)
&gt; Comment on attachment 415486 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415486&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/ChangeLog:9
&gt; &gt;&gt; +        Add a way to set RealtimeMediaSource member of SpeechRecognitionCaptureSourceImpl.
&gt; &gt; 
&gt; &gt; We should be able to add some tests with mock audio source.
&gt; &gt; Can we add/enable some tests?

The audio session category is changed to playrecord.
After this patch, this will be done in WebProcess, so a layout test could check this actually happens from internals API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712521</commentid>
    <comment_count>39</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-07 11:49:22 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #38)
&gt; (In reply to Sihui Liu from comment #37)
&gt; &gt; Comment on attachment 415486 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=415486&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/ChangeLog:9
&gt; &gt; &gt;&gt; +        Add a way to set RealtimeMediaSource member of SpeechRecognitionCaptureSourceImpl.
&gt; &gt; &gt; 
&gt; &gt; &gt; We should be able to add some tests with mock audio source.
&gt; &gt; &gt; Can we add/enable some tests?
&gt; 
&gt; The audio session category is changed to playrecord.
&gt; After this patch, this will be done in WebProcess, so a layout test could
&gt; check this actually happens from internals API.

I see, will add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712611</commentid>
    <comment_count>40</comment_count>
      <attachid>415582</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-07 14:09:25 -0800</bug_when>
    <thetext>Created attachment 415582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712612</commentid>
    <comment_count>41</comment_count>
      <attachid>415583</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-07 14:10:15 -0800</bug_when>
    <thetext>Created attachment 415583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712703</commentid>
    <comment_count>42</comment_count>
      <attachid>415583</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-08 01:02:04 -0800</bug_when>
    <thetext>Comment on attachment 415583
Patch

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

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:119
&gt;      m_recognizer-&gt;start(clientIdentifier);

This is a bit weird to have the return here and some code below.
I think we should rewrite it a bit:
- Remove SpeechRecognizer::start(SpeechRecognitionConnectionClientIdentifier identifier)
- Add a #else here that, in case ENABLE(MEDIA_STREAM) is not defined will send back a SpeechRecognitionErrorType::AudioCapture error.

We should probably at some point, either change compilation flags to enable RealtimeMediaSource if ENABLE(MEDIA_STREAM) &amp;&amp; ENABLE(SPEECH_API), or just disable speech api if MEDIA_STREAM is not on.
That part should be left to a follow-up patch.

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:1718
&gt;          return;

We should probably update m_speechRecognitionServerMap after getting the targetPage.

&gt; LayoutTests/fast/speechrecognition/ios/audio-capture.html:20
&gt; +    shouldBeEqualToString(&quot;internals.audioSessionCategory()&quot;, &quot;PlayAndRecord&quot;);

Can we add a negative check before, for instance in start event handler?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712704</commentid>
    <comment_count>43</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-08 01:02:42 -0800</bug_when>
    <thetext>Please check api-mac before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712984</commentid>
    <comment_count>44</comment_count>
      <attachid>415693</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-08 17:21:38 -0800</bug_when>
    <thetext>Created attachment 415693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713034</commentid>
    <comment_count>45</comment_count>
      <attachid>415719</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-08 22:47:58 -0800</bug_when>
    <thetext>Created attachment 415719
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713040</commentid>
    <comment_count>46</comment_count>
      <attachid>415722</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-08 23:16:51 -0800</bug_when>
    <thetext>Created attachment 415722
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713045</commentid>
    <comment_count>47</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-08 23:51:29 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 415722 to WebKit repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713048</commentid>
    <comment_count>48</comment_count>
      <attachid>415723</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-12-08 23:55:59 -0800</bug_when>
    <thetext>Created attachment 415723
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713054</commentid>
    <comment_count>49</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-09 00:28:44 -0800</bug_when>
    <thetext>Committed r270574: &lt;https://trac.webkit.org/changeset/270574&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415723.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415061</attachid>
            <date>2020-11-30 14:46:27 -0800</date>
            <delta_ts>2020-11-30 18:04:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201130144627.patch</filename>
            <type>text/plain</type>
            <size>77177</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM0ZjI5ZTVmOTY3Yjlk
NGU4ODU5ZGYwODJlMWEwMjcwNjYxOGFhMi4uYjVmOWNjNTc4MjkyYWYxNmVjODc1OGU5ZDE4ZTNh
MTIxNjQyNDc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5k
Q2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCk6Cisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uKToKKwogMjAyMC0xMS0yOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0JGQ10gRG8gbm90IGFzc3VtZSBmbG9hdCBhdm9pZGVycyBoYXZlIHByZS1j
b21wdXRlZCB2ZXJ0aWNhbCBwb3NpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWFiMWViNDY3OWE1M2M0NzNl
ZmRiNjI5ZDI3ZTJkYzY5YmYyMGVmOS4uMjBhOTM2YzU1MmYzZjg0MTUzN2VlYjlhZWM5Y2RkOGMy
MmYxMzY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NSBAQAorMjAyMC0xMS0zMCAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVy
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcx
ODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlU3lzdGVtLmg6CisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6bV9tYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjp+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRT
dG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUNh
cHR1cmVGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFi
bGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Rl
U291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Omhh
bmRsZVJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5oOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2V0UmVhbHRp
bWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmdyYW50U2FuZGJveEV4dGVuc2lvbnMp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OnJlbW92ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQg
Y29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMjAtMTEtMjggIFBl
ciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gU2V0
IGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uIGluIHRoZSBOZXR3b3JraW5nIHByb2Nlc3Mgb24gYmVo
YWxmIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
Y3BwCmluZGV4IGM5M2I2ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLjJlNTZh
OTE4ZTM5OWZkNzAzZmUyZmNkNDNkNzMxMDk3MmYzOGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmNwcApAQCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxs
YmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpmaW5kQ2FwdHVyZURldmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2Fw
dHVyZURldmljZTsKICAgICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFu
YWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMp
IHsKQEAgLTUxLDI2ICs1MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9
CiAKLSAgICBpZiAoIWNhcHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVj
aFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0
dXJlLCAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3Rh
dGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xp
ZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVT
b3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRp
bWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAg
IHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwg
eyB9KTsKK30KIAotICAgIGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZSgqY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAg
IGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBz
dGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihj
bGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uo
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBz
dGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7
CisgICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3Rh
dGVVcGRhdGVDYWxsYmFjayksIFdURk1vdmUoc291cmNlKSk7Cit9CiAKLSAgICBtX2ltcGwgPSBt
YWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50
aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNr
KSwgcmVzdWx0LnNvdXJjZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50
aWZpZXIpOwotICAgIFVOVVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJB
TShzdGF0ZVVwZGF0ZUNhbGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRl
MjllZDczZGU3ZGEwYTQ5ZjRlMGEuLjMyMDFhYzJlMzBiZTA4ZjU5Mjc1ZjQxZGNmZDRlYmY0N2Jk
OGI2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAg
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxs
YmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAg
ICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uo
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNr
JiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFj
ayYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXplci5jcHAKaW5kZXggNWJlYjYwNTY0N2IzMjllMjY0ZjgzYzI0OWY1N2MyYTIw
ODFjMmZkNy4uYzBlMTA0OTljOTNmNTFkNDZhN2FmZmQ0MWQ1MDgxNDA0NzNiNTkzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAK
QEAgLTkwLDcgKzkwLDMwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgp
CiAgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CiAgICAgfTsKIAotICAgIG1fc291cmNl
ID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElk
ZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxi
YWNrKSk7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBhdXRvIGNhcHR1cmVEZXZpY2Ug
PSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCk7Cisg
ICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9KSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVu
Y3Rpb24pIHsKKyAgICAgICAgYXV0byByZWFsdGltZVNvdXJjZSA9IG1fcmVhbHRpbWVNZWRpYVNv
dXJjZUNyZWF0ZUZ1bmN0aW9uKCpjYXB0dXJlRGV2aWNlKTsKKyAgICAgICAgaWYgKCFyZWFsdGlt
ZVNvdXJjZSkgeworICAgICAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIkZh
aWxlZCB0byBjcmVhdGUgcmVhbHRpbWUgc291cmNlIiB9KSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJh
Y2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBtYWtlUmVmKCpyZWFsdGltZVNvdXJj
ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKmNhcHR1
cmVEZXZpY2UpOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpB
dWRpb0NhcHR1cmUsIHJlc3VsdC5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92
ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgpKTsKKyNlbmRpZgogfQogCiB2
b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91
bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXplci5oCmluZGV4IGU2ZjEzZmVlODRhNTMzYWYwZjA0ZTA3NjljMWFl
MDk1YmU1YmZmM2YuLjZmMTEyOWM1NDQ1YWRjY2U3NDA1NDFhOTdkZmYzNjA2YjJjYzBhYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgK
QEAgLTQ1LDYgKzQ1LDExIEBAIHB1YmxpYzoKIAogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIHVzaW5nIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IEZ1
bmN0aW9uPFJlZlB0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPihjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJik+OworICAgIHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0
ZUZ1bmN0aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0aW9uKSB7
IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbik7
IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcmVzZXQoKTsKICAgICB2b2lkIHN0YXJ0
SW50ZXJuYWwoKTsKQEAgLTUzLDYgKzU4LDEwIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlm
aWVyOwogICAgIERlbGVnYXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVu
Y3Rpb24gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAppbmRleCBlZGI2Y2E1OTc5ZDJmNGRlZjhiMmIyZTc3M2Y5ZDY5YWU3
ODZlN2U5Li44MzFjOGYwMjhhNTZlM2EzMTE1NGVkNTYyMDJjZTAwMjJhNTIzZjU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDQsNiAr
MTA0LDcgQEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xz
L0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9E
SVIpL1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CmluZGV4IDc1Njc5ZjU1ZjVhZTM5OWI1ZWFmNDc3ZjE4OTMyNTZiYzI0ODg0NGQu
LmZiMmZhZDZkNGE5YzZmYmI2MTlmMzYzYmIxNGZiMzA3NDg4YTI3ODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjYwLDYgKzI2MCwx
MiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBs
aWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzNzcwMWIwMWMzYzFhMmMzMDBlMWRkMmQ3
MmU2Yjg1MjM3ZjQyNGI1Li44NTI4Nzg0OTczM2QzYTgxM2JmNDQzMTA2MjU0NDI0NmYxM2E3ZjMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0g
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNl
Q2FjaGUgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TcGVlY2ggXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9TdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRl
bnQgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0x
NjcsNiArMTY4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sIFwKIAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vz
cy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbiBcCkBAIC0yMDEsNiArMjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMg
PSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwK
IAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
biBcCisJV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlciBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlX
ZWJQcm9jZXNzL1dlYlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29vcmRpbmF0ZVN5c3RlbS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZVN5c3Rl
bS5oCmluZGV4IDE4ZjY1N2I4NjMyMmFjZmUwNzk2ZjEyNmUxNjhmZDBjNjRiNTQwOGEuLjczN2Fk
MmI2ZDEzYjFmODg1NzMxMTUzZTkzYjE1NTI3MzMyNWI3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db29yZGluYXRlU3lzdGVtLmgKQEAgLTM4LDcgKzM4LDcgQEAgZW51bSBjbGFzcyBDb29yZGlu
YXRlU3lzdGVtIDogdWludDhfdCB7CiAKIG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6Q29vcmRpbmF0ZVN5c3RlbT4gewordGVtcGxhdGU8PiBz
dHJ1Y3QgV1RGOjpFbnVtVHJhaXRzPFdlYktpdDo6Q29vcmRpbmF0ZVN5c3RlbT4gewogICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgV2ViS2l0OjpDb29yZGluYXRlU3lzdGVtLAog
ICAgIFdlYktpdDo6Q29vcmRpbmF0ZVN5c3RlbTo6UGFnZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDA5MTdm
MDFiZTFjOWY4Y2FhMmFiZjdmMGY4OTBmODk1YTNmMmVmODYuLjg4NmRiNmM4N2ZlYTZjYTcxMjM2
MTEwMDhjZjAzODlkOThhMWVlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjkwLDYgKzI5MCw4IEBAIFVJ
UHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIu
Y3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvUmVzcG9u
c2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvU3lz
dGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCkBAIC02MzUsNiArNjM3LDggQEAgV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBAbm8tdW5pZnkKIFdlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAgQG5vLXVuaWZ5CiBXZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwIEBuby11bmlm
eQogCitXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNw
cAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTlkYWVmZDY1ZTJjYTU5
OGY5M2M5YWI5MWExYTRmMzVlNGI3YzA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0
dXJlRGV2aWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmljZSkpOworfQorCitTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0
dXJlRGV2aWNlKQorICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURldmljZS5s
YWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkKKyAgICAs
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1h
bmFnZXIpKQoreworICAgIG1fbWFuYWdlci0+YWRkU291cmNlKCp0aGlzLCBjYXB0dXJlRGV2aWNl
KTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKK3sKKyAgICBpZiAobV9t
YW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnJlbW92ZVNvdXJjZSgqdGhpcyk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1
Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+Y29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpTdGFydCB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRh
KCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6U3RvcCB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVt
b3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgbV9kZXNj
cmlwdGlvbiA9IGRlc2NyaXB0aW9uOworCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5
OworICAgIGlmICghaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1lbW9yeSA9IFNoYXJlZE1l
bW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Cisg
ICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IGZvciByZW1v
dGUgc291cmNlIik7CisgICAgfQorCisgICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOworICAgIGlm
ICghbWVtb3J5KSB7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOworICAgICAg
ICBzdG9yYWdlLnNldFJlYWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZS5zZXRTdG9yYWdl
KG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcmFnZS5zZXRTdG9y
YWdlKG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBzdG9yYWdlLnNldFJlYWRPbmx5KHRy
dWUpOworICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKKyAgICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNj
cmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
VGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgaWYgKCFtX2J1ZmZlcikgeworICAgICAgICBMT0df
RVJST1IoIkJ1ZmZlciBmb3IgcmVtb3RlIHNvdXJjZSBpcyBudWxsIik7CisgICAgICAgIGNhcHR1
cmVGYWlsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghV2ViQXVkaW9C
dWZmZXJMaXN0Ojppc1N1cHBvcnRlZERlc2NyaXB0aW9uKG1fZGVzY3JpcHRpb24sIG51bWJlck9m
RnJhbWVzKSkgeworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBzdXBwb3J0IGRlc2NyaXB0
aW9uIHdpdGggZ2l2ZW4gbnVtYmVyIG9mIGZyYW1lcyBmb3IgcmVtb3RlIHNvdXJjZSIpOworICAg
ICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2J1
ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmluZ0J1ZmZlci0+
c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBtX3JpbmdC
dWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVW
YWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1fYnVmZmVyLCBtX2Rl
c2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKCkKK3sKKyAgICBj
YXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVkKCkKK3sKKyAgICBzdG9wKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNkMDBlNjYxMWFlNzBmYTYwMzVjNjQ3ZjY0ZWQ4
Yjg3N2U4MGRjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEsNzEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7
CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKKyAgICB2b2lkIHNldFN0b3JhZ2Uo
Y29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisgICAgdm9pZCByZW1vdGVB
dWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywg
dWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3Rl
Q2FwdHVyZUZhaWxlZCgpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOworCitwcml2
YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmKTsKKworICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2b2lkIHN0
YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBm
aW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
JiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIGNv
bnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5h
bCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX21hbmFnZXI7CisgICAgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKKyAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKyAgICBXZWJD
b3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4gbV9idWZmZXI7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ZjliMTI1NDhhYmRh
ZTI2NDg1MWM3Y2Q5OWIxYjQ5NzE5NjRkMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVj
dGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3Vy
Y2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsICZzb3VyY2UpOworCisgICAgaWYg
KCFtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworI2lmIEVOQUJMRShTQU5EQk9YX0VY
VEVOU0lPTlMpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JUQ0NE
OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJj
b20uYXBwbGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCksIGhhbmRsZUZv
clRDQ0QpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yTWljcm9w
aG9uZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4
dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9zLCBoYW5kbGVGb3JNaWNyb3Bo
b25lKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6R3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhoYW5kbGVGb3JUQ0NELCBo
YW5kbGVGb3JNaWNyb3Bob25lKSk7CisjZW5kaWYKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJv
eEV4dGVuc2lvbnMgPSB0cnVlOworICAgIH0KKworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFkZFNvdXJjZShpZGVudGlmaWVy
LCBjYXB0dXJlRGV2aWNlKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9
IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fc291cmNlcy5nZXQoaWRlbnRpZmll
cikgPT0gJnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKKworICAg
IGlmIChtX3NvdXJjZXMuaXNFbXB0eSgpICYmIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25z
KSB7CisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICAgICAgc2VuZChNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tlU2Fu
ZGJveEV4dGVuc2lvbnMoKSk7CisjZW5kaWYKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJveEV4
dGVuc2lvbnMgPSBmYWxzZTsKKyAgICB9CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdmVTb3VyY2UoaWRlbnRpZmll
cikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRsZSwg
Y29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNl
cy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUu
aGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIGlmIChh
dXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2Ut
PnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRG
cmFtZSwgZW5kRnJhbWUpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogc291
cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVD
YXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvKiBzb3Vy
Y2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZVNv
dXJjZVN0b3BwZWQoKTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKK30KKwordWludDY0X3Qg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2Fn
ZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM0YmYxZGY4MzkyY2NhYTJhZWFl
NmQ3OTE2ODBhMTM3ZmFiZGIwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVk
ZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdU
RiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENh
cHR1cmVEZXZpY2U7CitjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgdm9pZCBhZGRTb3VyY2Uo
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOworCisgICAgdm9pZCBzZXRTdG9yYWdlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWls
YWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV1RGOjpN
ZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdGVTb3VyY2VT
dG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKworICAgIElQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsg
fQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7
CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNz
YWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
Kj4gbV9zb3VyY2VzOworICAgIGJvb2wgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgeyBm
YWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWQ5YjAzMTQwNThhODkyM2ZmNmQxMTBmYWE2MjM2ZTY3NDNhYWE0
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisj
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgU2V0U3RvcmFn
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJL
aXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMp
CisgICAgUmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAg
UmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQorICAgIFJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKaW5kZXgg
OWY2MDBkM2Y1Y2RjNmMzMmM1NDhhMGEwOWFiMDJiYzE0NTM0NTI0NC4uZGQzODc4YWQwNDlhZGFh
MGZjZjZhYzViMjIzNDk1NTI2ZmMzN2JhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtOTEsNiArOTEsMTQgQEAgdm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24KIAogICAgICAgICAgICAgc2VuZFVwZGF0ZSh1cGRhdGUpOwog
ICAgICAgICB9KTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgICAgIGlmIChtX3Jl
YWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbikgeworICAgICAgICAgICAgbV9yZWNvZ25p
emVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXNdKGF1dG8mIGRl
dmljZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVh
dGVGdW5jdGlvbihkZXZpY2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyNlbmRpZgog
ICAgIH0KIAogICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAppbmRl
eCBhN2Y3NmQzOGVlNTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li43YjA2ZmYxMzc1OWU0
ZDgyNzc0NmJkMzhiZDVkODI0NmU3YjNhNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTU3LDYgKzU3LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKIAorI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXplcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9u
JiYgZnVuY3Rpb24pIHsgbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBXVEZN
b3ZlKGZ1bmN0aW9uKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVy
bWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CiAg
ICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIpOwpAQCAtNzUsNiArNzksMTAgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3Jl
cXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9wZXJtaXNz
aW9uQ2hlY2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXpl
cj4gbV9yZWNvZ25pemVyOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyOjpSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gbV9y
ZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKaW5kZXggZTdkOWNkZmU1NTM1YzI3YzQ1MDRmMDEwYTZlZGY4ZTRjNWUzY2E2YS4uYmU5Nzcx
MWQ1Yjk2NGRlM2U0NGYzODVmYTk1NTBjODIwODJkNzJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zOCw2ICszOCw4IEBACiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5o
IgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0
ZS5oIgpAQCAtMTcwMiw4ICsxNzA0LDggQEAgUEFMOjpTZXNzaW9uSUQgV2ViUHJvY2Vzc1Byb3h5
OjpzZXNzaW9uSUQoKSBjb25zdAogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpCiB7Ci0gICAgYXV0byBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpOwotICAgIEFTU0VSVChz
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5pc05ld0VudHJ5KTsKKyAgICBBU1NFUlQoIW1fc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNYXAuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1dG8mIHNw
ZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQo
aWRlbnRpZmllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogICAgIFdlYlBhZ2VQcm94eSog
dGFyZ2V0UGFnZSA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMoKSkgewog
ICAgICAgICBpZiAocGFnZSAmJiBwYWdlLT53ZWJQYWdlSUQoKSA9PSBpZGVudGlmaWVyKSB7CkBA
IC0xNzE1LDcgKzE3MTcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogICAgIGlmICghdGFy
Z2V0UGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aXRlcmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFr
ZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIo
dGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRh
YmxlIHsKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFr
UGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21w
bGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1BhZ2UpIHsKICAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lz
aW9uOjpEZW55KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3MjMsNyArMTcyNSwxNyBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudAogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogICAgIH0pOwotICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgYWRkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOworCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkgJiYgUExBVEZPUk0oSU9TKQorICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVy
LT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyldKGF1dG8mIGRldmljZSkgeworICAgICAgICBpZiAoIXdlYWtUaGlz
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8mIHNvdXJjZU1hbmFnZXIgPSBl
bnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7
CisgICAgICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNyZWF0ZShzb3VyY2VNYW5hZ2VyLCBkZXZpY2UpOworICAgIH0pOworI2VuZGlmCiB9CiAK
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xNzMzLDYgKzE3
NDUsMjAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW4KICAgICBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
IFdlYlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpjb25uZWN0
aW9uKCkpKTsKKyAgICAgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIpOworICAgIH0KKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENI
T1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1
bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CmluZGV4IGMxMGIzOTQ4ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLjc3ZDMwOWM1
Y2RkNGYxM2JkYjA0M2Q3NDE4OTk2ODM0NGJlY2IzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3Qg
V2Vic2l0ZURhdGE7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBlbnVt
IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBSZWZDb3VudGVy
PEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQcm9jZXNzQ291
bnRlcjsKIHR5cGVkZWYgRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBGb3JlZ3Jv
dW5kV2ViUHJvY2Vzc1Rva2VuOwpAQCAtNTA1LDYgKzUwOSw5IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVy
SWRlbnRpZmllcik7CiAgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
IGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIo
KTsKKyNlbmRpZgogCiAgICAgdm9pZCBzeXN0ZW1CZWVwKCk7CiAgICAgCkBAIC02NDMsNiArNjUw
LDkgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0g
SGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
TWFwIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0NjEx
YmQxZDNmMzJjNTI2MzE1NTFmMzk2ZTFmODQwNDBlNDg4YmQuLjg2YTAzNzZkMmIzMTEzZWJkNGYx
NzQwNjA3MzlkMDYxY2UwYzg3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQzMSw2ICsxNDMxLDExIEBACiAJCTkzQTg4QjMzMUJD
NkU5Q0QwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8q
IFdlYkhpdFRlc3RSZXN1bHREYXRhLmggKi87IH07CiAJCTkzQTg4QjNCMUJDNzEwRDkwMEFCQTVD
MiAvKiBfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRU
ZXN0UmVzdWx0SW50ZXJuYWwuaCAqLzsgfTsKIAkJOTNBODhCNDYxQkM4ODI5MzAwQUJBNUMyIC8q
IEFQSUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0Lmgg
Ki87IH07CisJCTkzQUI5QjRDMjU3NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0RDI1NzU2
N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDIyNTc0OTI4QzAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICov
OyB9OworCQk5M0FCOUI1NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CisJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjUx
MjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNCMjYxNEQyMjdEMTQ5
RTAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1h
bmFnZXIuaCAqLzsgfTsKIAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFn
ZURhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0IyNjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsg
fTsKIAkJOTNCMjYxNEYyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNC
MjYxNDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICov
OyB9OwpAQCAtNDU4MSw2ICs0NTg2LDIwIEBACiAJCTkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAv
KiBfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQTg4QjQyMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIg
LyogQVBJSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
UElIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQy
MjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQUI5QjQzMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBQjlCNDkyNTc0QzYxRTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QjI1NzRD
NjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTEy
NTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
QjlCNTMyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTQyNTc1ODkxMjAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFi
YXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFi
YXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ2MjI3RDE0NzEwMEI5
N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ3MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTg5NDksNiArODk2OCwxNiBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVl
Y2ggKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzQUI5
QjRCMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ5
MjU3NEM2MUUwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBTcGVlY2g7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk5M0IyNjE0MzIyN0QxNDMxMDBCOTdBNzYgLyog
V2ViU3RvcmFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBA
IC05MTUzLDYgKzkxODIsNyBAQAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3
b3JrICovLAogCQkJCTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChV
c2VyKSAqLywKIAkJCQkxQTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKKwkJ
CQk5M0FCOUI0ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovLAogCQkJCTUxMThFOTk4MUYy
OTUyNTkwMDNFRjlGNSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2Mzkw
QyAvKiBVc2VyQ29udGVudCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2Vi
QXV0aGVudGljYXRpb24gKi8sCkBAIC05MzY2LDYgKzkzOTYsMTEgQEAKIAkJCQk5M0Q2QjdCMDI1
NTI2OEExMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAg
Ki8sCiAJCQkJOTNENkI3QjIyNTUyNjhBMjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvbk1hbmFnZXIuaCAqLywKIAkJCQk5M0Q2QjdBRjI1NTI2OEExMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTkzQUI5QjQzMjU3NDky
OEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwICovLAorCQkJCTkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5M0FCOUI0NDI1NzQ5MjhEMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHAgKi8sCisJCQkJOTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0NjI1
NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAogCQkJCTkzRDZCNzZDMjU0Qjg5NTgw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTkzRDZCNzdBMjU0
Qzk4NEQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywK
QEAgLTEwNTEwLDYgKzEwNTQ1LDEyIEBACiAJCQkJMUREMkE2NzIyNTYyMzI0RjAwRkY3QjZGIC8q
IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFE
RDJBNjczMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZXMuaCAqLywKIAkJCQkxREQyQTY3MTI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjRGMjU3NTg5MTEwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJ
OTNBQjlCNTAyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI1MTI1NzU4OTEx
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTMyNTc1ODkxMjAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oICovLAorCQkJCTkzQUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8s
CiAJCQkJOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovLAogCQkJCTkzRDZCNzdGMjU0Q0NB
QkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICov
LApAQCAtMTE1NzgsNiArMTE2MTksOSBAQAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAv
KiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdCNTI1
NTI2OEQ3MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3QjQyNTUyNjhENTAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjRDMjU3
NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5M0FCOUI0RDI1NzU2N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzIy
NTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0Q2Qjc4NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODUyNTRDQ0Q0MzAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAq
LywKQEAgLTEzMzQ1LDYgKzEzMzg5LDggQEAKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEg
LyogU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5
NDNEMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJBNjc0MjU2MjMyQTEwMEZGN0I2
RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTkzQUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzRDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMzNERFRDE2
REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2Vy
U2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODkx
ZjAxMTA3NzY2MDdhYjBlNzU1MGUxNzM5ZGE4MGRjZGRhZTIzZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwyMDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1
ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisKKyNpZiBQTEFURk9STShD
T0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICA6IHByaXZhdGUgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgorICAgICwgcHVibGljIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlOjpDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+
JiYgc291cmNlLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgICAgIDog
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3Vy
Y2UpKQorICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgIHsK
KyAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2Ut
PmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5SZWFsdGltZU1l
ZGlhU291cmNlKCkKKyAgICB7CisgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisgICAg
ICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAg
bV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0
KCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5zdGFydCgpOworICAgIH0KKworICAgIHZvaWQg
c3RvcCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0KKworICAgIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsgfQorCitwcml2
YXRlOgorICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsCisgICAgeworICAgICAgICBpZiAo
bV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJl
bW90ZVNvdXJjZVN0b3BwZWQobV9pZGVudGlmaWVyKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBh
dWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYg
KG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNj
cmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9u
OjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAq
V1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24u
cGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgbV9udW1i
ZXJPZkZyYW1lcyA9IG1fZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgICAg
IG1fcmluZ0J1ZmZlci5hbGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCks
IG1fbnVtYmVyT2ZGcmFtZXMpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdlYkF1
ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKSk7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zdG9yZShk
b3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZy
YW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7Cisg
ICAgICAgIHVpbnQ2NF90IGVuZEZyYW1lOworICAgICAgICBtX3JpbmdCdWZmZXIuZ2V0Q3VycmVu
dEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICAgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZGVudGlmaWVyLCB0aW1l
LCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyAgICB9CisKKyAg
ICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwKKyAgICB7
CisgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKHN0b3Jh
Z2UpCisgICAgICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpTZXRTdG9yYWdlKG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZN
b3ZlKGhhbmRsZSksICAwIH0sIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsK
KyAgICB9CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lk
ZW50aWZpZXI7CisgICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNl
OworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBDQVJpbmdCdWZm
ZXIgbV9yaW5nQnVmZmVyOworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0
aW9uIHsgfTsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07Cit9OworCitTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQor
CitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+U3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKworI2lmIEVOQUJM
RShTQU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiYgc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7CisgICAgbV9zYW5kYm94RXh0ZW5zaW9u
Rm9yVENDRCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVG
b3JUQ0NEKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKQorICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIHRjY2QiKTsK
KyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPmNvbnN1bWUoKTsK
KworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgIGlmICgh
bV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWls
ZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBtaWNyb3Bob25lIik7CisgICAgZWxz
ZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5jb25zdW1lKCk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2
b2tlU2FuZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JU
Q0NEKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPnJldm9rZSgpOworICAg
ICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBp
ZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkgeworICAgICAgICBtX3NhbmRib3hF
eHRlbnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uRm9yTWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQorfQorCisjZW5kaWYKKwordm9pZCBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmlj
ZSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3Jl
YXRlIHJlYWx0aW1lIHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFp
bGVkKGlkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VS
VCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlk
ZW50aWZpZXIsIG1ha2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZT4oaWRlbnRpZmllciwgcmVz
dWx0LnNvdXJjZSgpLCBtYWtlUmVmKCptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKSkpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92
ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RhcnQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBz
b3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0YXJ0
KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6c3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisg
ICAgICAgIHNvdXJjZS0+c3RvcCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAor
eworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYxZjViMTllMzcwZjViZTBhNDY4NGQ5ZTFjZDI3ZTAyNzBjMDkwN2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDc3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1
cmVEZXZpY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgflNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAg
dm9pZCBncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9pZCByZXZva2VTYW5kYm94RXh0ZW5z
aW9ucygpOworI2VuZGlmCisKKyAgICB2b2lkIGFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAg
IHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
KTsKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
KTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIp
OworCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7
CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNz
YWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBjbGFzcyBSZWFsdGltZU1l
ZGlhU291cmNlOworICAgIGZyaWVuZCBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIEhh
c2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworCisjaWYgRU5BQkxFKFNBTkRC
T1hfRVhURU5TSU9OUykKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0
ZW5zaW9uRm9yVENDRDsKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0
ZW5zaW9uRm9yTWljcm9waG9uZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3NzM5YTlkZjYwYzI3
ZTBkY2ZlZjY1YWM4NjE2MmYzMjgwYzVmNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2Vz
IC0+IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291
bnRlZCB7CisgICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhXZWJLaXQ6OlNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yVENDRCwgV2ViS2l0OjpTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZvck1pY3JvcGhvbmUpCisg
ICAgUmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorICAgIEFkZFNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlIGRldmljZSkKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKaW5kZXggM2YzNTMxOTRh
MzJjM2U2NzliY2EyOWZiZWE4NTAzMWM5MjFlNGZjNC4uZTBkMmE1OTg1NTViOTg5Nzg1ODU4YWI2
YzY0YTc1NGFmZGExMTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDEwIEBAIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9u
CiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9pZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpDcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihtX2lkZW50aWZpZXIpLCAwKTsKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlm
CiB9CiAKIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggZjJmMjI4MjJjN2IyMjNmY2E1OWY5NTU3M2QxMWRjOTliMTAzNDgxMS4uYjEyMzljNTc3YmI4
NDZhOGNjNGRmY2YyOGJkMmQzMDQwNGQzZGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NBc3NlcnRp
b24uaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVM
ZWdhY3lDRE1GYWN0b3J5LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAjaW5jbHVk
ZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCkBA
IC0xOTY5LDYgKzE5NzAsMTYgQEAgdm9pZCBXZWJQcm9jZXNzOjplbmFibGVWUDlTV0RlY29kZXIo
KQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1fc3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4oKTsKKworICAgIHJldHVybiAq
bV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZTljNDdkYjRjNDQ3YzBm
NGFiNjI3YzA5NGI1ZjY4ZGI1NjVhOWE2Yy4uN2U1YTRjYWE0YzVkMmUyMzc4ODEzZWI0ZjJmNDIy
OGJkZTRjYzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xNDIs
NiArMTQyLDEwIEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIGNsYXNzIExh
eWVySG9zdGluZ0NvbnRleHQ7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlm
CisKIGNsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcwogewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMzYwLDYgKzM2NCwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRXcml0ZVRvUGFzdGVib2FyZEFzeW5jaHJvbm91c2x5KGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJvY2VzcygpOwpAQCAtNjkzLDYgKzcwMSwx
MCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92cDlEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3ZwOVNXRGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415086</attachid>
            <date>2020-11-30 18:04:15 -0800</date>
            <delta_ts>2020-11-30 18:22:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201130180415.patch</filename>
            <type>text/plain</type>
            <size>77821</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM0ZjI5ZTVmOTY3Yjlk
NGU4ODU5ZGYwODJlMWEwMjcwNjYxOGFhMi4uYjVmOWNjNTc4MjkyYWYxNmVjODc1OGU5ZDE4ZTNh
MTIxNjQyNDc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5k
Q2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCk6Cisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uKToKKwogMjAyMC0xMS0yOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0JGQ10gRG8gbm90IGFzc3VtZSBmbG9hdCBhdm9pZGVycyBoYXZlIHByZS1j
b21wdXRlZCB2ZXJ0aWNhbCBwb3NpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWFiMWViNDY3OWE1M2M0NzNl
ZmRiNjI5ZDI3ZTJkYzY5YmYyMGVmOS4uNjFkZjY2MDJkNzRhYmViMDlhMjU5MDFkZjkzMGQ5Njhm
ZGNmMzlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAyMC0xMS0zMCAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVy
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcx
ODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6Om1fbWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVj
aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxh
YmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlv
bklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Y29ubmVjdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1l
TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVhbHRpbWVNZWRpYVNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3JhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFu
dFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDIwLTExLTI4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbbWFjT1NdIFNldCBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbiBpbiB0aGUgTmV0d29y
a2luZyBwcm9jZXNzIG9uIGJlaGFsZiBvZiB0aGUgV2ViQ29udGVudCBwcm9jZXNzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmNwcAppbmRleCBjOTNiNmYzOGJjNjIzOGRhMWRiYTg2OGUyOWUx
ZTViMWU2ZjY2YjZiLi4yZTU2YTkxOGUzOTlmZDcwM2ZlMmZjZDQzZDczMTA5NzJmMzhhZGQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTM0LDkgKzM0LDEwIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJh
Y2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrKQotewogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKK09wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKQorewogICAgIE9wdGlvbmFs
PENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CiAgICAgYXV0byBkZXZpY2VzID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOwogICAgIGZvciAoYXV0
byBkZXZpY2UgOiBkZXZpY2VzKSB7CkBAIC01MSwyNiArNTIsMTkgQEAgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVj
b2duaXRpb24KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVy
biBjYXB0dXJlRGV2aWNlOworfQogCi0gICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7Ci0gICAgICAg
IGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1
cmUiIH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9CitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2Fw
dHVyZURldmljZSkKK3sKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShj
YXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7Cit9CiAKLSAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVh
dGVBdWRpb0NhcHR1cmVTb3VyY2UoKmNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKLSAgICBpZiAo
IXJlc3VsdCkgewotICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJlc3VsdC5lcnJvck1l
c3NhZ2UgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0
ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYgc291cmNlKQoreworICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2Fs
bGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkpOwor
fQogCi0gICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUo
c3RhdGVVcGRhdGVDYWxsYmFjayksIHJlc3VsdC5zb3VyY2UoKSk7Ci0jZWxzZQotICAgIFVOVVNF
RF9QQVJBTShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBVTlVTRURfUEFSQU0oZGF0YUNhbGxiYWNr
KTsKLSAgICBVTlVTRURfUEFSQU0oc3RhdGVVcGRhdGVDYWxsYmFjayk7CiAjZW5kaWYKLX0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCA3
Mzg2Y2VlZTI3NDA3Y2M2MTA0ZTI5ZWQ3M2RlN2RhMGE0OWY0ZTBhLi4zMjAxYWMyZTMwYmUwOGY1
OTI3NWY0MWRjZmQ0ZWJmNDdiZDhiNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApA
QCAtNDIsMTAgKzQyLDE2IEBAIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOwogY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRl
ZmF1bHQ7CiAgICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsK
ICAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFU
aW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgc2l6ZV90KT47CiAgICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47Ci0gICAgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYpOworCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYs
IFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAg
IHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBmaW5kQ2FwdHVyZURldmlj
ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyNlbmRpZgogCiBw
cml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCmluZGV4IDViZWI2MDU2NDdiMzI5
ZTI2NGY4M2MyNDlmNTdjMmEyMDgxYzJmZDcuLmMwZTEwNDk5YzkzZjUxZDQ2YTdhZmZkNDFkNTA4
MTQwNDczYjU5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuY3BwCkBAIC05MCw3ICs5MCwzMCBAQCB2b2lkIFNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0SW50ZXJuYWwoKQogICAgICAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOwogICAg
IH07CiAKLSAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1v
dmUoc3RhdGVVcGRhdGVDYWxsYmFjaykpOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
YXV0byBjYXB0dXJlRGV2aWNlID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5k
Q2FwdHVyZURldmljZSgpOworICAgIGlmICghY2FwdHVyZURldmljZSkgeworICAgICAgICBtX2Rl
bGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKCptX2Ns
aWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2Fw
dHVyZSIgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKSB7CisgICAgICAgIGF1dG8gcmVhbHRpbWVTb3VyY2Ug
PSBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbigqY2FwdHVyZURldmljZSk7Cisg
ICAgICAgIGlmICghcmVhbHRpbWVTb3VyY2UpIHsKKyAgICAgICAgICAgIG1fZGVsZWdhdGVDYWxs
YmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OjpBdWRpb0NhcHR1cmUsICJGYWlsZWQgdG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIgfSkpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fc291cmNlID0gbWFrZVVu
aXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIs
IFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgbWFr
ZVJlZigqcmVhbHRpbWVTb3VyY2UpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGlt
ZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAg
ICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9y
KCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCByZXN1bHQuZXJyb3JNZXNzYWdlIH0pKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRh
dGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIHJlc3VsdC5zb3VyY2Uo
KSk7CisjZW5kaWYKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVy
YXRlRmluYWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAppbmRleCBlNmYxM2ZlZTg0
YTUzM2FmMGYwNGUwNzY5YzFhZTA5NWJlNWJmZjNmLi42ZjExMjljNTQ0NWFkY2NlNzQwNTQxYTk3
ZGZmMzYwNmIyY2MwYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXplci5oCkBAIC00NSw2ICs0NSwxMSBAQCBwdWJsaWM6CiAKICAgICBPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50
Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQog
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB1c2luZyBSZWFsdGltZU1lZGlhU291cmNl
Q3JlYXRlRnVuY3Rpb24gPSBGdW5jdGlvbjxSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZT4oY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpPjsKKyAgICB2b2lkIHNldFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVu
Y3Rpb24mJiBmdW5jdGlvbikgeyBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9
IFdURk1vdmUoZnVuY3Rpb24pOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0
KCk7CiAgICAgdm9pZCBzdGFydEludGVybmFsKCk7CkBAIC01Myw2ICs1OCwxMCBAQCBwcml2YXRl
OgogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVD
YWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlPiBtX3NvdXJjZTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAppbmRleCA2Mjg0NDUzMjUwMzM1MTA3ZmQ1NDk4MjIzMmI4YjllYWVjOGU2OGNiLi42OGY3ZWQ4
NjVjNzMxMjI5MjhjMDZjNzE3MmIzNzY5NmNiMjJjZTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAg
LTEwMyw2ICsxMDMsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtX
RUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUmVz
b3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1NwZWVjaCIKICAgICAi
JHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0IgpAQCAtMTgzLDYgKzE4NCw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklM
RVMKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlcgogCiAgICAgVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgogICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlCiAgICAgVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQpAQCAtMjU0LDYgKzI1Niw4IEBAIHNldChXZWJLaXRf
TUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5CiAKKyAg
ICBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyCisKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uCiAg
ICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBlZGI2
Y2E1OTc5ZDJmNGRlZjhiMmIyZTc3M2Y5ZDY5YWU3ODZlN2U5Li44MzFjOGYwMjhhNTZlM2EzMTE1
NGVkNTYyMDJjZTAwMjJhNTIzZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDQsNiArMTA0LDcgQEAgJChQUk9KRUNUX0RJUikvVUlQ
cm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
clByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluCiskKFBS
T0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3Mv
VXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4K
QEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDc1Njc5ZjU1ZjVh
ZTM5OWI1ZWFmNDc3ZjE4OTMyNTZiYzI0ODg0NGQuLmZiMmZhZDZkNGE5YzZmYmI2MTlmMzYzYmIx
NGZiMzA3NDg4YTI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdApAQCAtMjYwLDYgKzI2MCwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2Fn
ZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2Vz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCAzNzcwMWIwMWMzYzFhMmMzMDBlMWRkMmQ3MmU2Yjg1MjM3ZjQyNGI1Li44NTI4Nzg0OTcz
M2QzYTgxM2JmNDQzMTA2MjU0NDI0NmYxM2E3ZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9PcmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAorCSQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9TcGVlY2ggXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0xNjcsNiArMTY4LDcgQEAgTUVTU0FHRV9SRUNF
SVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sIFwKIAlVSVByb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbiBcCkBAIC0yMDEs
NiArMjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCisJV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1dlYlByb2Nlc3MgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKaW5kZXggMDkxN2YwMWJlMWM5ZjhjYWEyYWJmN2YwZjg5MGY4OTVhM2YyZWY4Ni4uODg2
ZGI2Yzg3ZmVhNmNhNzEyMzYxMTAwOGNmMDM4OWQ5OGExZWUyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0y
OTAsNiArMjkwLDggQEAgVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCiBVSVByb2Nlc3Mv
UHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAK
IFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAorVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAogVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5j
cHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHAKQEAgLTYzNSw2ICs2Mzcs
OCBAQCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3Bw
IEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNw
cCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0
cmVhbS5jcHAgQG5vLXVuaWZ5CiAKK1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMxOWRhZWZkNjVlMmNhNTk4ZjkzYzlhYjkxYTFhNGYzNWU0YjdjMDgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2
aWNlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcg
eyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0
ZW50SWQoKSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFn
ZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCit7CisgICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRo
aXMsIGNhcHR1cmVEZXZpY2UpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
KQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+cmVtb3ZlU291cmNl
KCp0aGlzKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAg
ICAgbV9tYW5hZ2VyLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0IHsgbV9pZGVudGlmaWVyIH0sIDAp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFu
YWdlci0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFn
ZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisKKyAgICBSZWZQdHI8U2hh
cmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAg
bWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHNoYXJl
ZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2UiKTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdl
ID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0
b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFs
bG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBz
dG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0b3Jh
Z2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlw
dGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRp
b0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBs
ZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50
NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBpZiAoIW1fYnVmZmVy
KSB7CisgICAgICAgIExPR19FUlJPUigiQnVmZmVyIGZvciByZW1vdGUgc291cmNlIGlzIG51bGwi
KTsKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKCFXZWJBdWRpb0J1ZmZlckxpc3Q6OmlzU3VwcG9ydGVkRGVzY3JpcHRpb24obV9kZXNj
cmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpKSB7CisgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRv
IHN1cHBvcnQgZGVzY3JpcHRpb24gd2l0aCBnaXZlbiBudW1iZXIgb2YgZnJhbWVzIGZvciByZW1v
dGUgc291cmNlIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7Cisg
ICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJh
bWUpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZG
cmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1l
LCAqbV9idWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUNhcHR1cmVG
YWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJjZVN0b3BwZWQoKQorewor
ICAgIHN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2QwMGU2NjExYWU3
MGZhNjAzNWM2NDdmNjRlZDhiODc3ZTgwZGM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIH5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworICAg
IHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsK
KyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7
CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKCk7CisgICAgdm9pZCByZW1vdGVTb3VyY2VT
dG9wcGVkKCk7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYpOworCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9w
UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJp
bGl0aWVzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
JiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKworICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBXZWFrUHRy
PFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fbWFu
YWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2Fw
YWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3Nl
dHRpbmdzOworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0
aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1
ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBt
X2J1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzZmOWIxMjU0OGFiZGFlMjY0ODUxYzdjZDk5YjFiNDk3MTk2NGQxZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTEyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
KQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCit7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291
cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIGF1dG8g
aWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKCFtX3NvdXJjZXMu
Y29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgJnNv
dXJjZSk7CisKKyAgICBpZiAoIW1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zKSB7CisjaWYg
RU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIGhhbmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX2Nvbm5lY3Rpb24tPmdldEF1ZGl0
VG9rZW4oKSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBoYW5kbGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhvbmUiX3Ms
IGhhbmRsZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpHcmFudFNhbmRib3hFeHRlbnNpb25z
KGhhbmRsZUZvclRDQ0QsIGhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyNlbmRpZgorICAgICAgICBt
X2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IHRydWU7CisgICAgfQorCisgICAgc2VuZChN
ZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6QWRk
U291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7CisgICAg
YXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQobV9zb3Vy
Y2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAgICBtX3NvdXJjZXMucmVtb3ZlKGlk
ZW50aWZpZXIpOworCisgICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkgJiYgbV9oYXNHcmFudGVk
U2FuZGJveEV4dGVuc2lvbnMpIHsKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAg
ICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpKTsKKyNlbmRpZgorICAgICAgICBtX2hh
c0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0KKworICAgIHNlbmQoTWVz
c2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW92
ZVNvdXJjZShpZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hh
bmRsZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAoYXV0byog
c291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zZXRT
dG9yYWdlKGlwY0hhbmRsZS5oYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikp
CisgICAgICAgIHNvdXJjZS0+cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJl
ck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxl
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAg
ICBzb3VyY2UtPnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVk
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigp
OworfQorCit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzRi
ZjFkZjgzOTJjY2FhMmFlYWU2ZDc5MTY4MGExMzdmYWJkYjAxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVt
b3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5o
PgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAg
ICB2b2lkIGFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UmLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3Vy
Y2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJik7CisKKyAgICB2
b2lkIHNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNv
bnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworICAgIHZvaWQgcmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50
NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCByZW1vdGVDYXB0
dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2
b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIpOworCisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9j
b25uZWN0aW9uLnB0cigpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6
OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAg
dWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAg
IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UqPiBtX3NvdXJjZXM7CisgICAgYm9vbCBtX2hhc0dyYW50ZWRTYW5k
Ym94RXh0ZW5zaW9ucyB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDliMDMxNDA1OGE4OTIzZmY2ZDEx
MGZhYTYyMzZlNjc0M2FhYTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVk
IHsKKyAgICBTZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRs
ZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRf
dCBudW1iZXJPZkZyYW1lcykKKyAgICBSZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lIHRp
bWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRf
dCBlbmRGcmFtZSkKKyAgICBSZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgUmVtb3RlU291cmNlU3RvcHBlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2YzMyYzU0OGEwYTA5YWIwMmJjMTQ1MzQ1MjQ0
Li5kZDM4NzhhZDA0OWFkYWEwZmNmNmFjNWIyMjM0OTU1MjZmYzM3YmE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC05
MSw2ICs5MSwxNCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgogCiAgICAgICAgICAgICBzZW5k
VXBkYXRlKHVwZGF0ZSk7CiAgICAgICAgIH0pOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICAgICAgaWYgKG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKSB7CisgICAg
ICAgICAgICBtX3JlY29nbml6ZXItPnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bihbdGhpc10oYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fcmVhbHRp
bWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKGRldmljZSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJ
ZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oCmluZGV4IGE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhm
ZDcuLjdiMDZmZjEzNzU5ZTRkODI3NzQ2YmQzOGJkNWQ4MjQ2ZTdiM2E0MWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtNTcs
NiArNTcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgYWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBpbnZhbGlkYXRlKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwogCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIHNldFJlYWx0aW1lTWVkaWFTb3VyY2VD
cmVhdGVGdW5jdGlvbihXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpSZWFsdGltZU1lZGlhU291
cmNlQ3JlYXRlRnVuY3Rpb24mJiBmdW5jdGlvbikgeyBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVh
dGVGdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QmKTsKICAgICB2b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CkBAIC03NSw2ICs3OSwxMCBAQCBw
cml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
Q2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
cmVhdGVGdW5jdGlvbiBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlN2Q5Y2RmZTU1MzVjMjdjNDUwNGYwMTBhNmVkZjhl
NGM1ZTNjYTZhLi5hMDc4NDBlODdiNzk0ZjEwNTdkNGE1NmQ3MjlhYmNhYjkyN2YxMmFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM4LDYgKzM4
LDkgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIlByb3Zp
c2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRl
ICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC0xNzAyLDggKzE3MDUsOCBAQCBQQUw6OlNlc3Npb25J
RCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgpIGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0
cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0aW9uU2VydmVyLmlzTmV3RW50cnkpOworICAg
IEFTU0VSVCghbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlucyhpZGVudGlmaWVy
KSk7CisgICAgYXV0byYgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0
aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAg
ICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdlID0gbnVsbHB0cjsKICAgICBmb3IgKGF1dG8qIHBh
Z2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlmIChwYWdlICYmIHBhZ2UtPndlYlBhZ2VJRCgpID09
IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsNyArMTcxOCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklk
ZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBzcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29n
bml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1Bh
Z2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxl
dGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbWFr
ZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwg
aWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9y
aWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3
ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTcy
Myw3ICsxNzI2LDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAKICAgICAgICAgd2Vha1Bh
Z2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7Ci0gICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVu
dGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlKTsKKyAgICBh
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlcik7
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1MpCisgICAgc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXItPnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oYXV0byYgZGV2aWNlKSB7CisgICAg
ICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byYg
c291cmNlTWFuYWdlciA9IGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKTsKKyAgICAgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKHNvdXJjZU1hbmFnZXIsIGRldmljZSk7CisgICAg
fSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKQEAgLTE3MzMsNiArMTc0NiwyMCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNw
ZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbgogICAgIG1f
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAucmVtb3ZlKGlkZW50aWZpZXIpOwogfQogCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzc1Byb3h5OjplbnN1cmVTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcikgeworICAgICAgICBt
X3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtl
VW5pcXVlPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+
KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSkpOworICAgICAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKm1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcik7CisgICAgfQorCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisKKyNlbmRpZgorCiAj
aWYgUExBVEZPUk0oV0FUQ0hPUykKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0QmFja2dy
b3VuZEFjdGl2aXR5Rm9yRnVsbHNjcmVlbklucHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzEwYjM5NDhkNzc2NzYzNzE0ZDE2NDc5YjU5MzYyODJh
Njk3MzNkYS4uNzdkMzA5YzVjZGQ0ZjEzYmRiMDQzZDc0MTg5OTY4MzQ0YmVjYjMyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEwMyw2ICsxMDMsMTAg
QEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZTsKIHN0cnVjdCBXZWJzaXRlRGF0YTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OworI2VuZGlmCisKIGVudW0gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyVHlwZSB7IH07CiB0
eXBlZGVmIFJlZkNvdW50ZXI8Rm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyVHlwZT4gRm9yZWdy
b3VuZFdlYlByb2Nlc3NDb3VudGVyOwogdHlwZWRlZiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50
ZXI6OlRva2VuIEZvcmVncm91bmRXZWJQcm9jZXNzVG9rZW47CkBAIC01MDUsNiArNTA5LDkgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGRlc3Ryb3lTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiAKICAgICB2b2lkIHN5c3RlbUJlZXAoKTsKICAg
ICAKQEAgLTY0Myw2ICs2NTAsOSBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmll
ciwgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPj47CiAgICAgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcDsKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMjQ2MTFiZDFkM2YzMmM1MjYzMTU1MWYzOTZlMWY4NDA0MGU0ODhiZC4uODZh
MDM3NmQyYjMxMTNlYmQ0ZjE3NDA2MDczOWQwNjFjZTBjODdkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDMxLDYgKzE0MzEsMTEg
QEAKIAkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIzMTFC
QzZFOUMwMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuaCAqLzsgfTsKIAkJOTNBODhC
M0IxQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhCM0ExQkM3MTBEOTAw
QUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5oICovOyB9OwogCQk5M0E4OEI0NjFC
Qzg4MjkzMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhCNDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQ
SUhpdFRlc3RSZXN1bHQuaCAqLzsgfTsKKwkJOTNBQjlCNEMyNTc1NjNGMzAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjRBMjU3NEM2MUYwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07
CisJCTkzQUI5QjREMjU3NTY3REMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0
RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmggKi87IH07CisJCTkzQUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjRG
MjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTNBQjlCNTYyNTc1QTI4QjAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9Owog
CQk5M0IyNjE0RDIyN0QxNDlFMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ5MjI3RDE0NzIwMEI5
N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQk5M0IyNjE0RTIyN0QxNEIxMDBCOTdB
NzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ1MjI3RDE0NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZS5oICovOyB9OwogCQk5M0IyNjE0RjIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0
YWJhc2VUcmFja2VyLmggKi87IH07CkBAIC00NTgxLDYgKzQ1ODYsMjAgQEAKIAkJOTNBODhCM0Ex
QkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODhCNDIxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhp
dFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJ
SGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4QjQz
MUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDMyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0NDI1NzQ5MjhE
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0NjI1NzQ5
MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0OTI1NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QTI1
NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQUI5QjRCMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTAyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTIyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0FCOUI1MzI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0NTIyN0QxNDcwMDBCOTdBNzYgLyog
TG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9jYWxTdG9yYWdlRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNC
MjYxNDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNr
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMjYxNDcyMjdEMTQ3MTAwQjk3
QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODk0OSw2ICs4OTY4LDE2IEBACiAJCQlwYXRoID0g
bWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOTNBQjlCNDgyNTc0QzVD
RTAwOThCMTBFIC8qIFNwZWVjaCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJOTNBQjlCNEIyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkzQUI5QjRBMjU3NEM2MUYw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgg
Ki8sCisJCQkJOTNBQjlCNDkyNTc0QzYxRTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9
IFNwZWVjaDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTkzQjI2MTQzMjI3
RDE0MzEwMEI5N0E3NiAvKiBXZWJTdG9yYWdlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTkxNTMsNiArOTE4Miw3IEBACiAJCQkJNTEwNUIwRDIxNjJGN0E1
RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEwOTk5NzQxNDZDOEFBODAwMjlERUI5IC8q
IE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAogCQkJCTFBNkZCN0FBMTFFNjRCNDkwMERCMTM3MSAv
KiBQbHVnaW5zICovLAorCQkJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVlY2ggKi8s
CiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4
QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJDb250ZW50ICovLAogCQkJCTU3NjA4MjhBMjAyOTg0
QzkwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdGlvbiAqLywKQEAgLTkzNjYsNiArOTM5NiwxMSBA
QAogCQkJCTkzRDZCN0IwMjU1MjY4QTEwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5M0Q2QjdCMjI1NTI2OEEyMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oICovLAogCQkJCTkzRDZCN0FGMjU1MjY4
QTEwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCisJ
CQkJOTNBQjlCNDMyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovLAorCQkJCTkz
QUI5QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICov
LAorCQkJCTkzQUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTkzRDZCNzZC
MjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgKi8sCiAJCQkJ
OTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8s
CiAJCQkJOTNENkI3N0EyNTRDOTg0RDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
Lm1lc3NhZ2VzLmluICovLApAQCAtMTA1MTAsNiArMTA1NDUsMTIgQEAKIAkJCQkxREQyQTY3MjI1
NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJMUREMkE2NzMyNTYyMzI0RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGVNZXNzYWdlcy5oICovLAogCQkJCTFERDJBNjcxMjU2MjMyNEYwMEZGN0I2RiAv
KiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJOTNB
QjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzQUI5QjU0MjU3NTg5MTIw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MDI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJ
CTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk5M0FCOUI1
MzI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNBQjlCNTIyNTc1ODkxMjAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCAqLywKIAkJCQk5M0Q2Qjc4MTI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTkzRDZCNzgwMjU0
Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi8sCiAJ
CQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMTU3OCw2ICsxMTYxOSw5IEBACiAJCQkJNTdGRDMxODUy
MkIzNTE2OTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzRDZCN0I1MjU1MjY4RDcwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdCNDI1NTI2OEQ1MDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTNBQjlCNEMyNTc1NjNGMzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjRFMjU3NTY3
RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjREMjU3NTY3REMwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzg0MjU0Q0NEMEUwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc4
NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxp
ZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTMzNDUsNiArMTMzODksOCBAQAogCQkJCTU3NUIxQkI5
MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlv
bkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUREMkE2
NzQyNTYyMzJBMTAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBQjlCNTUyNTc1QTI3NjAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBQjlCNTYyNTc1QTI4QjAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzY4RUVERTIzMDNBOTAyMDBCREIxMUEg
LyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44OTFmMDExMDc3NjYwN2FiMGU3NTUwZTE3MzlkYTgwZGNkZGFlMjNkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDIwNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4K
KworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIDogcHJpdmF0
ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHJpdmF0ZSBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgLCBw
dWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAgICAgLCBtX3Nv
dXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29u
bmVjdGlvbikpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgfQor
CisgICAgflJlYWx0aW1lTWVkaWFTb3VyY2UoKQorICAgIHsKKyAgICAgICAgc3RvcmFnZSgpLmlu
dmFsaWRhdGUoKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIo
KnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0K
KworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0YXJ0KCk7Cisg
ICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5zdG9wKCk7
CisgICAgfQorCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9y
YWdlKCkpOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwKKyAg
ICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRlbnRpZmll
ciksIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAg
ICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRp
bWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsCisg
ICAgeworICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgeworICAgICAg
ICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBs
YXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAgICAgICAg
bV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisg
ICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkg
KiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKG1fZGVzY3JpcHRpb24uc3Ry
ZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAgICAgIH0KKworICAgICAg
ICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAgICAgICAgbV9y
aW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5s
aXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICAgICAgdWludDY0
X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJhbWU7CisgICAgICAgIG1fcmlu
Z0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSht
X2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSks
IDApOworICAgIH0KKworICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9y
YWdlKSBmaW5hbAorICAgIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwor
ICAgICAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZSho
YW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OlNldFN0b3JhZ2UobV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgIDAgfSwgbV9kZXNjcmlwdGlvbiwgbV9udW1i
ZXJPZkZyYW1lcyksIDApOworICAgIH0KKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OworICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CisgICAgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7
IDAgfTsKK307CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCAqdGhpcyk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sK
KyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoKnRoaXMp
OworfQorCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25z
KFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JUQ0NELCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkKK3sKKyAgICBt
X3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1v
dmUoc2FuZGJveEhhbmRsZUZvclRDQ0QpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZv
clRDQ0QpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVu
c2lvbiBmb3IgdGNjZCIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9y
VENDRC0+Y29uc3VtZSgpOworCisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JNaWNyb3Bo
b25lKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKQorICAgICAg
ICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIG1pY3Jv
cGhvbmUiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhv
bmUtPmNvbnN1bWUoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCit7CisgICAgaWYgKG1fc2Fu
ZGJveEV4dGVuc2lvbkZvclRDQ0QpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVEND
RC0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBudWxscHRy
OworICAgIH0KKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKSB7Cisg
ICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPnJldm9rZSgpOworICAgICAg
ICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gbnVsbHB0cjsKKyAgICB9Cit9CisK
KyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OmFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCit7CisgICAgYXV0
byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoZGV2aWNlKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBjcmVhdGUgcmVhbHRpbWUgc291cmNlIik7CisgICAgICAgIHNlbmQoTWVz
c2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlbW90ZUNhcHR1cmVGYWlsZWQoaWRlbnRpZmllciksIDApOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAg
IG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNl
PihpZGVudGlmaWVyLCByZXN1bHQuc291cmNlKCksIG1ha2VSZWYoKm1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpz
dGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAg
ICAgIHNvdXJjZS0+c3RhcnQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdl
dChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVj
dGlvbiogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOworfQorCit1aW50NjRfdCBTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGlu
YXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFmNWIxOWUzNzBmNWJlMGE0Njg0ZDllMWNkMjdl
MDI3MGMwOTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0w
LDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5k
ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyAgICB+U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworCisjaWYgRU5BQkxFKFNBTkRCT1hf
RVhURU5TSU9OUykKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKKyAgICB2b2lkIHJl
dm9rZVNhbmRib3hFeHRlbnNpb25zKCk7CisjZW5kaWYKKworICAgIHZvaWQgYWRkU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6
OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAg
dWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAg
IGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CisgICAgZnJpZW5kIGNsYXNzIFJlYWx0aW1lTWVk
aWFTb3VyY2U7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllciwgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBtX3NvdXJjZXM7CisK
KyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5z
aW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEOworICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5z
aW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lOworI2VuZGlmCit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDc3MzlhOWRmNjBjMjdlMGRjZmVmNjVhYzg2MTYyZjMyODBjNWY0NQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM1IEBACisj
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBHcmFudFNhbmRib3hFeHRlbnNpb25zKFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVGb3JUQ0NE
LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
Rm9yTWljcm9waG9uZSkKKyAgICBSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCisgICAgQWRkU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlKQorICAgIFJlbW92ZVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFN0YXJ0KFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworICAgIFN0b3Ao
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7Cit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cAppbmRleCAzZjM1MzE5NGEzMmMzZTY3OWJjYTI5ZmJlYTg1MDMxYzkyMWU0ZmM0Li5lMGQyYTU5
ODU1NWI5ODk3ODU4NThhYjZjNjRhNzU0YWZkYTExMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsMTAgQEAgV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24o
U3BlZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0aGlzKTsKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKG1faWRl
bnRpZmllciksIDApOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKCk7CisjZW5kaWYKIH0KIAogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAppbmRleCBmMmYyMjgyMmM3YjIyM2ZjYTU5Zjk1NTczZDExZGM5OWIxMDM0
ODExLi5iMTIzOWM1NzdiYjg0NmE4Y2M0ZGZjZjI4YmQyZDMwNDA0ZDNkZjQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiUHJvY2Vzc0Fzc2VydGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgog
I2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFy
ZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkuaCIKQEAgLTE5NjksNiArMTk3MCwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmVu
YWJsZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNz
OjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sK
KyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcikK
KyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPigp
OworCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxF
QVNFX0xPR19TRVNTSU9OX0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRl
eCBlOWM0N2RiNGM0NDdjMGY0YWI2MjdjMDk0YjVmNjhkYjU2NWE5YTZjLi43ZTVhNGNhYTRjNWQy
ZTIzNzg4MTNlYjRmMmY0MjI4YmRlNGNjNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKQEAgLTE0Miw2ICsxNDIsMTAgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI7CisjZW5kaWYKKwogY2xhc3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlhcnlQ
cm9jZXNzCiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNjAsNiArMzY0LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFdyaXRlVG9QYXN0ZWJvYXJkQXN5bmNocm9ub3VzbHko
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOwor
I2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogICAgIH5XZWJQcm9jZXNzKCk7
CkBAIC02OTMsNiArNzAxLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ZwOURlY29kZXJFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fdnA5U1dEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07
CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRy
PFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415088</attachid>
            <date>2020-11-30 18:22:42 -0800</date>
            <delta_ts>2020-11-30 20:29:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201130182241.patch</filename>
            <type>text/plain</type>
            <size>78526</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM0ZjI5ZTVmOTY3Yjlk
NGU4ODU5ZGYwODJlMWEwMjcwNjYxOGFhMi4uYjVmOWNjNTc4MjkyYWYxNmVjODc1OGU5ZDE4ZTNh
MTIxNjQyNDc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5k
Q2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCk6Cisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uKToKKwogMjAyMC0xMS0yOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0JGQ10gRG8gbm90IGFzc3VtZSBmbG9hdCBhdm9pZGVycyBoYXZlIHByZS1j
b21wdXRlZCB2ZXJ0aWNhbCBwb3NpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWFiMWViNDY3OWE1M2M0NzNl
ZmRiNjI5ZDI3ZTJkYzY5YmYyMGVmOS4uNjFkZjY2MDJkNzRhYmViMDlhMjU5MDFkZjkzMGQ5Njhm
ZGNmMzlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAyMC0xMS0zMCAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVy
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcx
ODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6Om1fbWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVj
aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxh
YmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlv
bklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Y29ubmVjdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1l
TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVhbHRpbWVNZWRpYVNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3JhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFu
dFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDIwLTExLTI4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbbWFjT1NdIFNldCBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbiBpbiB0aGUgTmV0d29y
a2luZyBwcm9jZXNzIG9uIGJlaGFsZiBvZiB0aGUgV2ViQ29udGVudCBwcm9jZXNzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQppbmRleCAzNzg5YWEzODM5NDBkMjU3NDEyNGJjMmZmNDNlN2VlYzRhZTk1MGQ1Li44
NjkzMzE3MjAwNjQ4MDc5MjdlYjdlZjZlM2JjY2E2OGRlMDYzZTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKQEAgLTEzMjIsNiArMTMyMiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5oCisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAppbmRleCBjOTNiNmYz
OGJjNjIzOGRhMWRiYTg2OGUyOWUxZTViMWU2ZjY2YjZiLi4yZTU2YTkxOGUzOTlmZDcwM2ZlMmZj
ZDQzZDczMTA5NzJmMzhhZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAg
LTM0LDkgKzM0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRh
Q2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0
ZUNhbGxiYWNrKQotewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK09wdGlvbmFsPENhcHR1
cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZp
Y2UoKQorewogICAgIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CiAgICAg
YXV0byBkZXZpY2VzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2
aWNlcygpOwogICAgIGZvciAoYXV0byBkZXZpY2UgOiBkZXZpY2VzKSB7CkBAIC01MSwyNiArNTIs
MTkgQEAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb24KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgfQorICAgIHJldHVybiBjYXB0dXJlRGV2aWNlOworfQogCi0gICAgaWYgKCFjYXB0
dXJlRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5vIGRldmljZSBp
cyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2so
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVy
cm9yKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICByZXR1cm4gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7Cit9CiAKLSAgICBh
dXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoKmNhcHR1cmVEZXZpY2Us
IHsgfSwgeyB9KTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBhdXRvIGVycm9yID0gU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsIHJlc3VsdC5lcnJvck1lc3NhZ2UgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNr
JiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFj
aywgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQoreworICAgIG1faW1wbCA9IG1h
a2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRp
ZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2sp
LCBXVEZNb3ZlKHNvdXJjZSkpOworfQogCi0gICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRh
dGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIHJlc3VsdC5zb3VyY2Uo
KSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBVTlVT
RURfUEFSQU0oZGF0YUNhbGxiYWNrKTsKLSAgICBVTlVTRURfUEFSQU0oc3RhdGVVcGRhdGVDYWxs
YmFjayk7CiAjZW5kaWYKLX0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuaAppbmRleCA3Mzg2Y2VlZTI3NDA3Y2M2MTA0ZTI5ZWQ3M2RlN2RhMGE0OWY0
ZTBhLi4zMjAxYWMyZTMwYmUwOGY1OTI3NWY0MWRjZmQ0ZWJmNDdiZDhiNjgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtNDIsMTAgKzQyLDE2IEBAIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOwogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2
b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CiAgICAgdXNpbmcgU3RhdGVVcGRh
dGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUm
KT47Ci0gICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNh
bGxiYWNrJiYpOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiBmaW5kQ2FwdHVyZURldmljZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmKTsKKyNlbmRpZgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3Bw
CmluZGV4IDViZWI2MDU2NDdiMzI5ZTI2NGY4M2MyNDlmNTdjMmEyMDgxYzJmZDcuLmMwZTEwNDk5
YzkzZjUxZDQ2YTdhZmZkNDFkNTA4MTQwNDczYjU5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCkBAIC05MCw3ICs5MCwzMCBA
QCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQogICAgICAgICAgICAgbV9z
b3VyY2UgPSBudWxscHRyOwogICAgIH07CiAKLSAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3Zl
KGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjaykpOworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgYXV0byBjYXB0dXJlRGV2aWNlID0gU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpOworICAgIGlmICghY2FwdHVyZURl
dmljZSkgeworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKSB7CisgICAgICAg
IGF1dG8gcmVhbHRpbWVTb3VyY2UgPSBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bigqY2FwdHVyZURldmljZSk7CisgICAgICAgIGlmICghcmVhbHRpbWVTb3VyY2UpIHsKKyAgICAg
ICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJGYWlsZWQgdG8gY3JlYXRlIHJl
YWx0aW1lIHNvdXJjZSIgfSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+
KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0
ZVVwZGF0ZUNhbGxiYWNrKSwgbWFrZVJlZigqcmVhbHRpbWVTb3VyY2UpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICBp
ZiAoIXJlc3VsdCkgeworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCByZXN1
bHQuZXJyb3JNZXNzYWdlIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3NvdXJj
ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJ
ZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxs
YmFjayksIHJlc3VsdC5zb3VyY2UoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25p
emVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJl
c3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuaAppbmRleCBlNmYxM2ZlZTg0YTUzM2FmMGYwNGUwNzY5YzFhZTA5NWJlNWJmZjNmLi42ZjEx
MjljNTQ0NWFkY2NlNzQwNTQxYTk3ZGZmMzYwNmIyY2MwYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC00NSw2ICs0NSwxMSBA
QCBwdWJsaWM6CiAKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xpZW50SWRlbnRpZmllcjsgfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB1c2lu
ZyBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBGdW5jdGlvbjxSZWZQdHI8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4oY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYp
PjsKKyAgICB2b2lkIHNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihSZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJiBmdW5jdGlvbikgeyBtX3JlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pOyB9CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICB2b2lkIHJlc2V0KCk7CiAgICAgdm9pZCBzdGFydEludGVybmFsKCk7CkBAIC01
Myw2ICs1OCwxMCBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBEZWxlZ2F0
ZUNhbGxiYWNrIG1fZGVsZWdhdGVDYWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA2Mjg0NDUzMjUwMzM1MTA3ZmQ1NDk4MjIzMmI4
YjllYWVjOGU2OGNiLi42OGY3ZWQ4NjVjNzMxMjI5MjhjMDZjNzE3MmIzNzY5NmNiMjJjZTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKQEAgLTEwMyw2ICsxMDMsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1NwZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRf
RElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTgzLDYgKzE4NCw3IEBAIHNldChX
ZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlcgogCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgogICAg
IFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVk
TGlua1N0b3JlCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQpAQCAtMjU0LDYg
KzI1Niw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5CiAKKyAgICBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAppbmRleCBlZGI2Y2E1OTc5ZDJmNGRlZjhiMmIyZTc3M2Y5ZDY5YWU3ODZlN2U5
Li44MzFjOGYwMjhhNTZlM2EzMTE1NGVkNTYyMDJjZTAwMjJhNTIzZjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDQsNiArMTA0LDcg
QEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXIubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVz
c2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IDc1Njc5ZjU1ZjVhZTM5OWI1ZWFmNDc3ZjE4OTMyNTZiYzI0ODg0NGQuLmZiMmZh
ZDZkNGE5YzZmYmI2MTlmMzYzYmIxNGZiMzA3NDg4YTI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjYwLDYgKzI2MCwxMiBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmlj
YXRpb25Db250cm9sbGVyTWVzc2FnZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGVNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzNzcwMWIwMWMzYzFhMmMzMDBlMWRkMmQ3MmU2Yjg1
MjM3ZjQyNGI1Li44NTI4Nzg0OTczM2QzYTgxM2JmNDQzMTA2MjU0NDI0NmYxM2E3ZjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0gXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUg
XAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TcGVlY2ggXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9TdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQgXAog
ICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0xNjcsNiAr
MTY4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
IFwKIAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
Q29ubmVjdGlvbiBcCkBAIC0yMDEsNiArMjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJ
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCisJ
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
IFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDkxN2YwMWJlMWM5ZjhjYWEyYWJmN2Yw
Zjg5MGY4OTVhM2YyZWY4Ni4uODg2ZGI2Yzg3ZmVhNmNhNzEyMzYxMTAwOGNmMDM4OWQ5OGExZWUy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CkBAIC0yOTAsNiArMjkwLDggQEAgVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAor
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
K1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNz
L1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxl
ci5jcHAKQEAgLTYzNSw2ICs2MzcsOCBAQCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVCcm93c2VyRnVuY3MuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgQG5vLXVuaWZ5CiAKK1dlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxOWRhZWZkNjVlMmNhNTk4ZjkzYzlhYjkxYTFhNGYzNWU0
YjdjMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTI0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFn
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
LCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFn
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsg
Y2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCisgICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCit7CisgICAgbV9t
YW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNhcHR1cmVEZXZpY2UpOworfQorCitTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1f
bWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlzKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAg
aWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0
IHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21h
bmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVu
dGlmaWVyIH0sIDApOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxl
LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRp
b247CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYgKCFoYW5kbGUu
aXNOdWxsKCkpIHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9HX0VSUk9SKCJV
bmFibGUgdG8gY3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2UiKTsKKyAgICB9
CisKKyAgICBhdXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAg
ICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9u
bHkoZmFsc2UpOworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VO
b25OdWxsKCkpOworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVm
ZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVy
ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZy
YW1lcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkK
K3sKKyAgICBpZiAoIW1fYnVmZmVyKSB7CisgICAgICAgIExPR19FUlJPUigiQnVmZmVyIGZvciBy
ZW1vdGUgc291cmNlIGlzIG51bGwiKTsKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFXZWJBdWRpb0J1ZmZlckxpc3Q6OmlzU3VwcG9y
dGVkRGVzY3JpcHRpb24obV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpKSB7CisgICAgICAg
IExPR19FUlJPUigiVW5hYmxlIHRvIHN1cHBvcnQgZGVzY3JpcHRpb24gd2l0aCBnaXZlbiBudW1i
ZXIgb2YgZnJhbWVzIGZvciByZW1vdGUgc291cmNlIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3Vu
dChudW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3Vu
ZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZm
ZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlv
U2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9idWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9m
RnJhbWVzKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnJlbW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90
ZVNvdXJjZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40M2QwMGU2NjExYWU3MGZhNjAzNWM2NDdmNjRlZDhiODc3ZTgwZGM0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVy
ZURldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIH5TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X2lkZW50aWZpZXI7IH0KKworICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6
OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzKTsKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1l
LCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKCk7Cisg
ICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKCk7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworCisgICAgLy8gV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkg
ZmluYWw7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZp
bmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGlu
Z3M7IH0KKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI+IG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpD
QVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2J1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZmOWIxMjU0OGFiZGFlMjY0ODUxYzdjZDk5YjFiNDk3
MTk2NGQxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAg
KzEsMTEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVj
dGlvbikpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZSYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJl
RGV2aWNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7Cisg
ICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNl
cy5hZGQoaWRlbnRpZmllciwgJnNvdXJjZSk7CisKKyAgICBpZiAoIW1faGFzR3JhbnRlZFNhbmRi
b3hFeHRlbnNpb25zKSB7CisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBt
X2Nvbm5lY3Rpb24tPmdldEF1ZGl0VG9rZW4oKSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUu
d2Via2l0Lm1pY3JvcGhvbmUiX3MsIGhhbmRsZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpH
cmFudFNhbmRib3hFeHRlbnNpb25zKGhhbmRsZUZvclRDQ0QsIGhhbmRsZUZvck1pY3JvcGhvbmUp
KTsKKyNlbmRpZgorICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IHRydWU7
CisgICAgfQorCisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6QWRkU291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpyZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlJiBzb3VyY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIo
KTsKKyAgICBBU1NFUlQobV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAg
ICBtX3NvdXJjZXMucmVtb3ZlKGlkZW50aWZpZXIpOworCisgICAgaWYgKG1fc291cmNlcy5pc0Vt
cHR5KCkgJiYgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyNpZiBFTkFCTEUoU0FO
REJPWF9FWFRFTlNJT05TKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpKTsK
KyNlbmRpZgorICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IGZhbHNlOwor
ICAgIH0KKworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OlJlbW92ZVNvdXJjZShpZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFn
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cykKK3sKKyAgICBpZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5zZXRTdG9yYWdlKGlwY0hhbmRsZS5oYW5kbGUsIGRlc2NyaXB0aW9u
LCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6
TWVkaWFUaW1lJiB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRG
cmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291
cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVtb3RlQXVkaW9TYW1wbGVz
QXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6cmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0
KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpyZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQo
aWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQor
CitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMzRiZjFkZjgzOTJjY2FhMmFlYWU2ZDc5MTY4MGExMzdmYWJkYjAx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsNzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgi
CisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGlt
ZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK2NsYXNz
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVz
c2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBD
OjpDb25uZWN0aW9uPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7
CisgICAgdm9pZCByZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlJik7CisKKyAgICB2b2lkIHNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3Qg
V2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMpOworICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7
CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworCisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisKK3ByaXZhdGU6CisgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVz
c2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkgY29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQo
KSBjb25zdCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsK
KyAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UqPiBtX3NvdXJjZXM7CisgICAg
Ym9vbCBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyB7IGZhbHNlIH07Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZDliMDMxNDA1OGE4OTIzZmY2ZDExMGZhYTYyMzZlNjc0M2FhYTQ2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMzIEBACisjIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBTZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJ
UENIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
IGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICBSZW1vdGVBdWRpb1Nh
bXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICBSZW1vdGVDYXB0dXJlRmFpbGVk
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
UmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2YzMyYzU0
OGEwYTA5YWIwMmJjMTQ1MzQ1MjQ0Li5kZDM4NzhhZDA0OWFkYWEwZmNmNmFjNWIyMjM0OTU1MjZm
YzM3YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwCkBAIC05MSw2ICs5MSwxNCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bgogCiAgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CiAgICAgICAgIH0pOworCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAgICAgaWYgKG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNy
ZWF0ZUZ1bmN0aW9uKSB7CisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnNldFJlYWx0aW1lTWVk
aWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpc10oYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKGRldmljZSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgbV9yZWNv
Z25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCmluZGV4IGE3Zjc2ZDM4ZWU1MDFlNTgy
Zjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcuLjdiMDZmZjEzNzU5ZTRkODI3NzQ2YmQzOGJkNWQ4MjQ2
ZTdiM2E0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaApAQCAtNTcsNiArNTcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgYWJvcnQo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAg
ICAgdm9pZCBpbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIHNl
dFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyOjpSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJiBmdW5jdGlvbikgeyBtX3Jl
YWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pOyB9Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKICAgICB2b2lkIGhhbmRsZVJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7
CkBAIC03NSw2ICs3OSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CisK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBtX3JlYWx0aW1lTWVkaWFTb3VyY2VD
cmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlN2Q5Y2RmZTU1
MzVjMjdjNDUwNGYwMTBhNmVkZjhlNGM1ZTNjYTZhLi5hMDc4NDBlODdiNzk0ZjEwNTdkNGE1NmQ3
MjlhYmNhYjkyN2YxMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDkgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVGV4
dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC0xNzAyLDggKzE3
MDUsOCBAQCBQQUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgpIGNvbnN0
CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBhdXRv
IHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5h
ZGQoaWRlbnRpZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLmlzTmV3RW50cnkpOworICAgIEFTU0VSVCghbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1h
cC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byYgc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRy
KS5pdGVyYXRvci0+dmFsdWU7CiAgICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdlID0gbnVsbHB0
cjsKICAgICBmb3IgKGF1dG8qIHBhZ2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlmIChwYWdlICYm
IHBhZ2UtPndlYlBhZ2VJRCgpID09IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsNyArMTcxOCw3IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBt
YWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkp
LCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYg
b3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNwZWVjaFJl
Y29nbml0aW9uU2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFr
ZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIo
dGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMTcyMyw3ICsxNzI2LDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklk
ZW50CiAKICAgICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7Ci0gICAgYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRl
cmF0b3ItPnZhbHVlKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFU
Rk9STShJT1MpCisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPnNldFJlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0o
YXV0byYgZGV2aWNlKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgYXV0byYgc291cmNlTWFuYWdlciA9IGVuc3VyZVNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyAgICAgICAgcmV0dXJuIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKHNvdXJjZU1h
bmFnZXIsIGRldmljZSk7CisgICAgfSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKQEAgLTE3MzMsNiArMTc0NiwyMCBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbgogICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAucmVtb3ZlKGlk
ZW50aWZpZXIpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzc1Byb3h5Ojpl
bnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkK
K3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcikgeworICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSkpOworICAgICAgICBh
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKm1fc3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik7CisgICAgfQorCisgICAg
cmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI7Cit9CisKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKIAogdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVsbHNjcmVlbklucHV0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzEwYjM5NDhkNzc2
NzYzNzE0ZDE2NDc5YjU5MzYyODJhNjk3MzNkYS4uNzdkMzA5YzVjZGQ0ZjEzYmRiMDQzZDc0MTg5
OTY4MzQ0YmVjYjMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7
CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKIHN0cnVjdCBXZWJzaXRlRGF0YTsKIAorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGVudW0gRm9yZWdyb3VuZFdlYlByb2Nl
c3NDb3VudGVyVHlwZSB7IH07CiB0eXBlZGVmIFJlZkNvdW50ZXI8Rm9yZWdyb3VuZFdlYlByb2Nl
c3NDb3VudGVyVHlwZT4gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOwogdHlwZWRlZiBGb3Jl
Z3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI6OlRva2VuIEZvcmVncm91bmRXZWJQcm9jZXNzVG9rZW47
CkBAIC01MDUsNiArNTA5LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKICAgICB2
b2lkIGRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cklkZW50aWZpZXIpOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiAKICAgICB2
b2lkIHN5c3RlbUJlZXAoKTsKICAgICAKQEAgLTY0Myw2ICs2NTAsOSBAQCBwcml2YXRlOgogCiAg
ICAgdXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNwZWVjaFJlY29n
bml0aW9uU2VydmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9u
U2VydmVyPj47CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1hcDsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVl
X3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBt
X3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjQ2MTFiZDFkM2YzMmM1MjYzMTU1MWYz
OTZlMWY4NDA0MGU0ODhiZC4uODZhMDM3NmQyYjMxMTNlYmQ0ZjE3NDA2MDczOWQwNjFjZTBjODdk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNDMxLDYgKzE0MzEsMTEgQEAKIAkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8qIFdl
YkhpdFRlc3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0E4OEIzMTFCQzZFOUMwMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERh
dGEuaCAqLzsgfTsKIAkJOTNBODhCM0IxQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1
bHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5o
ICovOyB9OwogCQk5M0E4OEI0NjFCQzg4MjkzMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhCNDMx
QkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLzsgfTsKKwkJOTNBQjlCNEMy
NTc1NjNGMzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmggKi87IH07CisJCTkzQUI5QjREMjU3NTY3REMwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0NTI1NzQ5MjhEMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oICovOyB9OworCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi87IH07CisJCTkzQUI5QjU1MjU3
NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJ
OTNBQjlCNTYyNTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQk5M0IyNjE0RDIyN0QxNDlFMDBCOTdBNzYgLyogU3RvcmFn
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQjI2MTQ5MjI3RDE0NzIwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQk5
M0IyNjE0RTIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ1MjI3RDE0NzAw
MEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovOyB9OwogCQk5M0IyNjE0RjIyN0Qx
NEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NjIyN0QxNDcxMDBCOTdB
NzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggKi87IH07CkBAIC00NTgxLDYgKzQ1
ODYsMjAgQEAKIAkJOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJ
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVz
dWx0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODhCNDIxQkM4
ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzQTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDMyNTc0OTI4
QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDUyNTc0OTI4RDAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0OTI1NzRD
NjFFMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRCMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0RjI1
NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTAyNTc1ODkx
MTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTIyNTc1ODkxMjAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MzI1NzU4OTEyMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0
NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMjYxNDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFn
ZURhdGFiYXNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNCMjYxNDcyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODk0OSw2ICs4
OTY4LDE2IEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8qIFNwZWVjaCAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNBQjlCNEIyNTc0QzYxRjAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAor
CQkJCTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDkyNTc0QzYxRTAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8sCisJCQkpOworCQkJcGF0aCA9IFNwZWVjaDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCTkzQjI2MTQzMjI3RDE0MzEwMEI5N0E3NiAvKiBXZWJTdG9yYWdlICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkxNTMsNiArOTE4Miw3IEBA
CiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEwOTk5
NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAogCQkJCTFBNkZC
N0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAorCQkJCTkzQUI5QjQ4MjU3NEM1Q0Uw
MDk4QjEwRSAvKiBTcGVlY2ggKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0
b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJDb250ZW50ICov
LAogCQkJCTU3NjA4MjhBMjAyOTg0QzkwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdGlvbiAqLywK
QEAgLTkzNjYsNiArOTM5NiwxMSBAQAogCQkJCTkzRDZCN0IwMjU1MjY4QTEwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5M0Q2QjdCMjI1
NTI2OEEyMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oICov
LAogCQkJCTkzRDZCN0FGMjU1MjY4QTEwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmggKi8sCisJCQkJOTNBQjlCNDMyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJOTNBQjlC
NDIyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oICovLAorCQkJCTkzQUI5QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5M0FC
OUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovLAogCQkJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5jcHAgKi8sCiAJCQkJOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmggKi8sCiAJCQkJOTNENkI3N0EyNTRDOTg0RDAwNThERDNBIC8qIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluICovLApAQCAtMTA1MTAsNiArMTA1NDUs
MTIgQEAKIAkJCQkxREQyQTY3MjI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0
ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUREMkE2NzMyNTYyMzI0RjAwRkY3
QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oICovLAogCQkJCTFERDJB
NjcxMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNS
ZXBsaWVzLmggKi8sCisJCQkJOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAor
CQkJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MDI1NzU4OTExMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKKwkJCQk5M0FCOUI1MzI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNB
QjlCNTIyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk5M0Q2Qjc4MTI1NEND
QUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAogCQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VzLmggKi8sCiAJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMTU3OCw2ICsxMTYx
OSw5IEBACiAJCQkJNTdGRDMxODUyMkIzNTE2OTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlvblNl
c3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I1MjU1MjY4RDcwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0Q2QjdCNDI1NTI2OEQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEMyNTc1NjNGMzAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjREMjU3NTY3
REMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzg0MjU0
Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTMzNDUsNiArMTMz
ODksOCBAQAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERp
c3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1
IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUREMkE2NzQyNTYyMzJBMTAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBQjlC
NTUyNTc1QTI3NjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBQjlCNTYy
NTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNENkI3
ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAvKiBT
dG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzY4
RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTFmMDExMDc3NjYwN2FiMGU3NTUw
ZTE3MzlkYTgwZGNkZGFlMjNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcApAQCAtMCwwICsxLDIwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgi
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPFdl
YkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJB
dWRpb0J1ZmZlckxpc3QuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRp
YVNvdXJjZQorICAgIDogcHJpdmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpPYnNl
cnZlcgorICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1Nh
bXBsZU9ic2VydmVyCisgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVu
dCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UsIFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRp
ZmllcikKKyAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgbV9j
b25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+
YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNl
cnZlcigqdGhpcyk7CisgICAgfQorCisgICAgflJlYWx0aW1lTWVkaWFTb3VyY2UoKQorICAgIHsK
KyAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92
ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2Jz
ZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAg
bV9zb3VyY2UtPnN0YXJ0KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAg
ICAgIG1fc291cmNlLT5zdG9wKCk7CisgICAgfQorCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3Vy
Y2VTdG9wcGVkKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURp
ZEZhaWwoKSkgeworICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0
dXJlRmFpbGVkKG1faWRlbnRpZmllciksIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZCht
X2lkZW50aWZpZXIpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0Rh
dGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVt
YmVyT2ZGcmFtZXMpIGZpbmFsCisgICAgeworICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBk
ZXNjcmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVz
Y3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNp
Y1R5cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9u
KCkuZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNj
cmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9j
YXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7
CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRp
b0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1
ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5k
RnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRG
cmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJhbWVzLCBz
dGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworICAgIH0KKworICAgIHZvaWQgc3RvcmFnZUNoYW5n
ZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbAorICAgIHsKKyAgICAgICAgU2hhcmVkTWVt
b3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAgIHN0
b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVh
ZE9ubHkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNldFN0b3JhZ2UobV9pZGVu
dGlmaWVyLCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgIDAgfSwg
bV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyksIDApOworICAgIH0KKworICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7Cisg
ICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworICAgIGludDY0
X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKK307CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoKnRoaXMpOworfQorCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9O
UykKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpn
cmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hI
YW5kbGVGb3JUQ0NELCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9y
TWljcm9waG9uZSkKK3sKKyAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJveEhhbmRsZUZvclRDQ0QpKTsKKyAgICBpZiAo
IW1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRv
IGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgdGNjZCIpOworICAgIGVsc2UKKyAgICAgICAg
bV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+Y29uc3VtZSgpOworCisgICAgbV9zYW5kYm94RXh0
ZW5zaW9uRm9yTWljcm9waG9uZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNh
bmRib3hIYW5kbGVGb3JNaWNyb3Bob25lKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25G
b3JNaWNyb3Bob25lKQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJv
eCBleHRlbnNpb24gZm9yIG1pY3JvcGhvbmUiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJv
eEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPmNvbnN1bWUoKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9u
cygpCit7CisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpIHsKKyAgICAgICAgbV9z
YW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVu
c2lvbkZvclRDQ0QgPSBudWxscHRyOworICAgIH0KKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNp
b25Gb3JNaWNyb3Bob25lKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhv
bmUtPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0g
bnVsbHB0cjsKKyAgICB9Cit9CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBkZXZpY2UpCit7CisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlKTsKKyAgICBpZiAoIXJlc3Vs
dCkgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgcmVhbHRpbWUgc291cmNl
Iik7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQoaWRlbnRpZmllciksIDAp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFp
bnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1
ZTxSZWFsdGltZU1lZGlhU291cmNlPihpZGVudGlmaWVyLCByZXN1bHQuc291cmNlKCksIG1ha2VS
ZWYoKm1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zb3VyY2Vz
LnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5n
ZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RhcnQoKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8g
c291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9w
KCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJl
dHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOwor
fQorCit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFmNWIxOWUz
NzBmNWJlMGE0Njg0ZDllMWNkMjdlMDI3MGMwOTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIo
KTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOwor
CisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4
dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSYmKTsKKyAgICB2b2lkIHJldm9rZVNhbmRib3hFeHRlbnNpb25zKCk7CisjZW5kaWYKKwor
ICAgIHZvaWQgYWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RhcnQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RvcChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVz
c2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkgY29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQo
KSBjb25zdCBmaW5hbDsKKworICAgIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CisgICAgZnJp
ZW5kIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiBtX3NvdXJjZXM7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAg
IFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEOworICAg
IFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25l
OworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc3MzlhOWRmNjBjMjdlMGRjZmVmNjVhYzg2MTYyZjMy
ODBjNWY0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDM1IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBHcmFudFNh
bmRib3hFeHRlbnNpb25zKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hF
eHRlbnNpb25IYW5kbGVGb3JUQ0NELCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yTWljcm9waG9uZSkKKyAgICBSZXZva2VTYW5kYm94RXh0
ZW5zaW9ucygpCisgICAgQWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlKQorICAgIFJl
bW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQorICAgIFN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIpOworICAgIFN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcik7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmNwcAppbmRleCAzZjM1MzE5NGEzMmMzZTY3OWJjYTI5ZmJlYTg1
MDMxYzkyMWU0ZmM0Li5lMGQyYTU5ODU1NWI5ODk3ODU4NThhYjZjNjRhNzU0YWZkYTExMDkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAt
NDYsNiArNDYsMTAgQEAgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0
aGlzKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNwZWVjaFJl
Y29nbml0aW9uU2VydmVyKG1faWRlbnRpZmllciksIDApOworCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIH0KIAogV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBmMmYyMjgyMmM3YjIyM2Zj
YTU5Zjk1NTczZDExZGM5OWIxMDM0ODExLi5iMTIzOWM1NzdiYjg0NmE4Y2M0ZGZjZjI4YmQyZDMw
NDA0ZDNkZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00
NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc0Fzc2VydGlvbi5oIgogI2luY2x1ZGUgIlJl
bW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgogI2lu
Y2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKQEAgLTE5NjksNiArMTk3MCwxNiBA
QCB2b2lkIFdlYlByb2Nlc3M6OmVuYWJsZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyJiBXZWJQcm9jZXNzOjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyPigpOworCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9OX0lECmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlOWM0N2RiNGM0NDdjMGY0YWI2MjdjMDk0YjVmNjhkYjU2
NWE5YTZjLi43ZTVhNGNhYTRjNWQyZTIzNzg4MTNlYjRmMmY0MjI4YmRlNGNjNTI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE0Miw2ICsxNDIsMTAgQEAgc3RydWN0
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKKwogY2xhc3MgV2ViUHJvY2Vz
cyA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzCiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CkBAIC0zNjAsNiArMzY0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFdyaXRlVG9QYXN0
ZWJvYXJkQXN5bmNocm9ub3VzbHkoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUHJvY2Vzcygp
OwogICAgIH5XZWJQcm9jZXNzKCk7CkBAIC02OTMsNiArNzAxLDEwIEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3ZwOURlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fdnA5U1dEZWNv
ZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI+IG1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsK
KyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415092</attachid>
            <date>2020-11-30 20:29:32 -0800</date>
            <delta_ts>2020-11-30 20:43:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201130202931.patch</filename>
            <type>text/plain</type>
            <size>78995</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM0ZjI5ZTVmOTY3Yjlk
NGU4ODU5ZGYwODJlMWEwMjcwNjYxOGFhMi4uYjVmOWNjNTc4MjkyYWYxNmVjODc1OGU5ZDE4ZTNh
MTIxNjQyNDc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5k
Q2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCk6Cisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uKToKKwogMjAyMC0xMS0yOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0JGQ10gRG8gbm90IGFzc3VtZSBmbG9hdCBhdm9pZGVycyBoYXZlIHByZS1j
b21wdXRlZCB2ZXJ0aWNhbCBwb3NpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWFiMWViNDY3OWE1M2M0NzNl
ZmRiNjI5ZDI3ZTJkYzY5YmYyMGVmOS4uNjFkZjY2MDJkNzRhYmViMDlhMjU5MDFkZjkzMGQ5Njhm
ZGNmMzlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAyMC0xMS0zMCAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVy
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcx
ODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6Om1fbWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVj
aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxh
YmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlv
bklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Y29ubmVjdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1l
TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVhbHRpbWVNZWRpYVNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3JhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFu
dFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDIwLTExLTI4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbbWFjT1NdIFNldCBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbiBpbiB0aGUgTmV0d29y
a2luZyBwcm9jZXNzIG9uIGJlaGFsZiBvZiB0aGUgV2ViQ29udGVudCBwcm9jZXNzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQppbmRleCAzNzg5YWEzODM5NDBkMjU3NDEyNGJjMmZmNDNlN2VlYzRhZTk1MGQ1Li44
NjkzMzE3MjAwNjQ4MDc5MjdlYjdlZjZlM2JjY2E2OGRlMDYzZTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKQEAgLTEzMjIsNiArMTMyMiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5oCisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAppbmRleCBjOTNiNmYz
OGJjNjIzOGRhMWRiYTg2OGUyOWUxZTViMWU2ZjY2YjZiLi4yZTU2YTkxOGUzOTlmZDcwM2ZlMmZj
ZDQzZDczMTA5NzJmMzhhZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAg
LTM0LDkgKzM0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRh
Q2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0
ZUNhbGxiYWNrKQotewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK09wdGlvbmFsPENhcHR1
cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZp
Y2UoKQorewogICAgIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CiAgICAg
YXV0byBkZXZpY2VzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2
aWNlcygpOwogICAgIGZvciAoYXV0byBkZXZpY2UgOiBkZXZpY2VzKSB7CkBAIC01MSwyNiArNTIs
MTkgQEAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb24KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgfQorICAgIHJldHVybiBjYXB0dXJlRGV2aWNlOworfQogCi0gICAgaWYgKCFjYXB0
dXJlRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5vIGRldmljZSBp
cyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2so
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVy
cm9yKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICByZXR1cm4gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7Cit9CiAKLSAgICBh
dXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoKmNhcHR1cmVEZXZpY2Us
IHsgfSwgeyB9KTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBhdXRvIGVycm9yID0gU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsIHJlc3VsdC5lcnJvck1lc3NhZ2UgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNr
JiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFj
aywgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQoreworICAgIG1faW1wbCA9IG1h
a2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRp
ZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2sp
LCBXVEZNb3ZlKHNvdXJjZSkpOworfQogCi0gICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRh
dGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIHJlc3VsdC5zb3VyY2Uo
KSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBVTlVT
RURfUEFSQU0oZGF0YUNhbGxiYWNrKTsKLSAgICBVTlVTRURfUEFSQU0oc3RhdGVVcGRhdGVDYWxs
YmFjayk7CiAjZW5kaWYKLX0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuaAppbmRleCA3Mzg2Y2VlZTI3NDA3Y2M2MTA0ZTI5ZWQ3M2RlN2RhMGE0OWY0
ZTBhLi4zMjAxYWMyZTMwYmUwOGY1OTI3NWY0MWRjZmQ0ZWJmNDdiZDhiNjgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtNDIsMTAgKzQyLDE2IEBAIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOwogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2
b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CiAgICAgdXNpbmcgU3RhdGVVcGRh
dGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUm
KT47Ci0gICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNh
bGxiYWNrJiYpOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiBmaW5kQ2FwdHVyZURldmljZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmKTsKKyNlbmRpZgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3Bw
CmluZGV4IDViZWI2MDU2NDdiMzI5ZTI2NGY4M2MyNDlmNTdjMmEyMDgxYzJmZDcuLmMwZTEwNDk5
YzkzZjUxZDQ2YTdhZmZkNDFkNTA4MTQwNDczYjU5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCkBAIC05MCw3ICs5MCwzMCBA
QCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQogICAgICAgICAgICAgbV9z
b3VyY2UgPSBudWxscHRyOwogICAgIH07CiAKLSAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3Zl
KGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjaykpOworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgYXV0byBjYXB0dXJlRGV2aWNlID0gU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpOworICAgIGlmICghY2FwdHVyZURl
dmljZSkgeworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKSB7CisgICAgICAg
IGF1dG8gcmVhbHRpbWVTb3VyY2UgPSBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bigqY2FwdHVyZURldmljZSk7CisgICAgICAgIGlmICghcmVhbHRpbWVTb3VyY2UpIHsKKyAgICAg
ICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJGYWlsZWQgdG8gY3JlYXRlIHJl
YWx0aW1lIHNvdXJjZSIgfSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+
KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0
ZVVwZGF0ZUNhbGxiYWNrKSwgbWFrZVJlZigqcmVhbHRpbWVTb3VyY2UpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICBp
ZiAoIXJlc3VsdCkgeworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCByZXN1
bHQuZXJyb3JNZXNzYWdlIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3NvdXJj
ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJ
ZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxs
YmFjayksIHJlc3VsdC5zb3VyY2UoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25p
emVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJl
c3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuaAppbmRleCBlNmYxM2ZlZTg0YTUzM2FmMGYwNGUwNzY5YzFhZTA5NWJlNWJmZjNmLi42ZjEx
MjljNTQ0NWFkY2NlNzQwNTQxYTk3ZGZmMzYwNmIyY2MwYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC00NSw2ICs0NSwxMSBA
QCBwdWJsaWM6CiAKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xpZW50SWRlbnRpZmllcjsgfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB1c2lu
ZyBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBGdW5jdGlvbjxSZWZQdHI8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4oY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYp
PjsKKyAgICB2b2lkIHNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihSZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJiBmdW5jdGlvbikgeyBtX3JlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pOyB9CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICB2b2lkIHJlc2V0KCk7CiAgICAgdm9pZCBzdGFydEludGVybmFsKCk7CkBAIC01
Myw2ICs1OCwxMCBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBEZWxlZ2F0
ZUNhbGxiYWNrIG1fZGVsZWdhdGVDYWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA2Mjg0NDUzMjUwMzM1MTA3ZmQ1NDk4MjIzMmI4
YjllYWVjOGU2OGNiLi42OGY3ZWQ4NjVjNzMxMjI5MjhjMDZjNzE3MmIzNzY5NmNiMjJjZTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKQEAgLTEwMyw2ICsxMDMsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1NwZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRf
RElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTgzLDYgKzE4NCw3IEBAIHNldChX
ZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlcgogCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgogICAg
IFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVk
TGlua1N0b3JlCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQpAQCAtMjU0LDYg
KzI1Niw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5CiAKKyAgICBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAppbmRleCBlZGI2Y2E1OTc5ZDJmNGRlZjhiMmIyZTc3M2Y5ZDY5YWU3ODZlN2U5
Li44MzFjOGYwMjhhNTZlM2EzMTE1NGVkNTYyMDJjZTAwMjJhNTIzZjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDQsNiArMTA0LDcg
QEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXIubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVz
c2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IDc1Njc5ZjU1ZjVhZTM5OWI1ZWFmNDc3ZjE4OTMyNTZiYzI0ODg0NGQuLmZiMmZh
ZDZkNGE5YzZmYmI2MTlmMzYzYmIxNGZiMzA3NDg4YTI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjYwLDYgKzI2MCwxMiBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmlj
YXRpb25Db250cm9sbGVyTWVzc2FnZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGVNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzNzcwMWIwMWMzYzFhMmMzMDBlMWRkMmQ3MmU2Yjg1
MjM3ZjQyNGI1Li44NTI4Nzg0OTczM2QzYTgxM2JmNDQzMTA2MjU0NDI0NmYxM2E3ZjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0gXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUg
XAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TcGVlY2ggXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9TdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQgXAog
ICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0xNjcsNiAr
MTY4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
IFwKIAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
Q29ubmVjdGlvbiBcCkBAIC0yMDEsNiArMjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJ
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCisJ
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
IFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDkxN2YwMWJlMWM5ZjhjYWEyYWJmN2Yw
Zjg5MGY4OTVhM2YyZWY4Ni4uODg2ZGI2Yzg3ZmVhNmNhNzEyMzYxMTAwOGNmMDM4OWQ5OGExZWUy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CkBAIC0yOTAsNiArMjkwLDggQEAgVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAor
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
K1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNz
L1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxl
ci5jcHAKQEAgLTYzNSw2ICs2MzcsOCBAQCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVCcm93c2VyRnVuY3MuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgQG5vLXVuaWZ5CiAKK1dlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1OTQ5MTc5ODg2NGY2NGI3NjQ3YjRlNTJjMGY3Nzg5OWI4
ZGU2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTI5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFn
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
LCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFn
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsg
Y2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCisgICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCit7CisgICAgbV9t
YW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNhcHR1cmVEZXZpY2UpOworfQorCitTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1f
bWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlzKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAg
aWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0
IHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21h
bmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVu
dGlmaWVyIH0sIDApOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIG1f
ZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1l
bW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtZW1vcnkgPSBTaGFy
ZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkp
OworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3Ig
cmVtb3RlIHNvdXJjZSIpOworICAgIH0KKworICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNfY2Fz
dDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAg
ICBpZiAoIW1lbW9yeSkgeworICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKKyAg
ICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2Uuc2V0U3Rv
cmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0b3JhZ2Uuc2V0
U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAgc3RvcmFnZS5zZXRSZWFkT25s
eSh0cnVlKTsKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7CisgICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4o
ZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNB
dmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBpZiAoIW1fYnVmZmVyKSB7CisgICAgICAgIExPR19FUlJPUigiQnVmZmVyIGZvciByZW1v
dGUgc291cmNlIGlzIG51bGwiKTsKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbV9idWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJh
bWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1l
LCBlbmRGcmFtZSk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChtX2J1ZmZlci0+bGlzdCgpLCBu
dW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgYXVkaW9TYW1wbGVzQXZhaWxh
YmxlKHRpbWUsICptX2J1ZmZlciwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0odGltZSk7CisgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJh
bWVzKTsKKyAgICBVTlVTRURfUEFSQU0oc3RhcnRGcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKGVu
ZEZyYW1lKTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCgpCit7CisgICAgY2FwdHVyZUZhaWxl
ZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVtb3RlU291cmNlU3RvcHBlZCgpCit7CisgICAgc3RvcCgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3YmMwZDEzMWYyY2RiMTVmOTI1Y2UwOTAxOTU3ZWZhNGQ0NDBjYmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBDYXB0dXJlRGV2aWNlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAg
flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOworCisgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBz
ZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlm
CisKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFt
ZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKCk7CisgICAgdm9pZCByZW1vdGVTb3Vy
Y2VTdG9wcGVkKCk7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBz
dG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2Fw
YWJpbGl0aWVzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKworICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBXZWFr
UHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1f
bWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1f
Y2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBt
X3NldHRpbmdzOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworI2VuZGlmCit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0YmQ3YTg3YTQwODQzOWU0ODcz
MzU0YzU1NGY3MGY5YWZmNTJmYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihX
VEZNb3ZlKGNvbm5lY3Rpb24pKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRl
bnRpZmllcigpOworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
KyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsICZzb3VyY2UpOworCisgICAgaWYgKCFtX2hh
c0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lP
TlMpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JUQ0NEOworICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBw
bGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCksIGhhbmRsZUZvclRDQ0Qp
OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yTWljcm9waG9uZTsK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lv
bigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9zLCBoYW5kbGVGb3JNaWNyb3Bob25lKTsK
KyAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6R3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhoYW5kbGVGb3JUQ0NELCBoYW5kbGVG
b3JNaWNyb3Bob25lKSk7CisjZW5kaWYKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVu
c2lvbnMgPSB0cnVlOworICAgIH0KKworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFkZFNvdXJjZShpZGVudGlmaWVyLCBjYXB0
dXJlRGV2aWNlKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJj
ZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikgPT0g
JnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKKworICAgIGlmICht
X3NvdXJjZXMuaXNFbXB0eSgpICYmIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zKSB7Cisj
aWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tlU2FuZGJveEV4
dGVuc2lvbnMoKSk7CisjZW5kaWYKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lv
bnMgPSBmYWxzZTsKKyAgICB9CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdmVTb3VyY2UoaWRlbnRpZmllcikpOwor
fQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hh
bmRsZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAoYXV0byog
c291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zZXRT
dG9yYWdlKGlwY0hhbmRsZS5oYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9
CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYg
dGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2
NF90IGVuZEZyYW1lKQoreworICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlk
ZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0
aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUNh
cHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBpZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVy
KSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVDYXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291
cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIp
KQorICAgICAgICBzb3VyY2UtPnJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKK30KKworSVBDOjpDb25u
ZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVj
dGlvbi5wdHIoKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAor
eworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWE4NTk3ZDcyYzE0ZWI4MDg2MDc0NmFkODgyODNiOWE2YTEyYzJlMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUg
IlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CisKKyNpZiBQTEFURk9STShD
T0NPQSkKK2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKKyNlbmRpZgorfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIHZvaWQgYWRkU291cmNl
KFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHZvaWQgc2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKwor
ICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAg
dm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOworCisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
KCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29u
c3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UqPiBtX3NvdXJjZXM7CisgICAgYm9vbCBt
X2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGUzZjZj
ZjYwMTkxZmUxZDgxMDVlZTM0MWU4OGJlZjNkNGZmOTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM2IEBACisjIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisj
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVz
c2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciBOb3RSZWZDb3VudGVkIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTZXRTdG9yYWdlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyNl
bmRpZgorCisgICAgUmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRf
dCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUp
CisgICAgUmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKQorICAgIFJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAK
aW5kZXggOWY2MDBkM2Y1Y2RjNmMzMmM1NDhhMGEwOWFiMDJiYzE0NTM0NTI0NC4uZGQzODc4YWQw
NDlhZGFhMGZjZjZhYzViMjIzNDk1NTI2ZmMzN2JhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtOTEsNiArOTEsMTQg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24KIAogICAgICAgICAgICAgc2VuZFVwZGF0ZSh1cGRh
dGUpOwogICAgICAgICB9KTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgICAgIGlm
IChtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbikgeworICAgICAgICAgICAgbV9y
ZWNvZ25pemVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXNdKGF1
dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBtX3JlYWx0aW1lTWVkaWFTb3Vy
Y2VDcmVhdGVGdW5jdGlvbihkZXZpY2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyNl
bmRpZgogICAgIH0KIAogICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aAppbmRleCBhN2Y3NmQzOGVlNTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li43YjA2ZmYx
Mzc1OWU0ZDgyNzc0NmJkMzhiZDVkODI0NmU3YjNhNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTU3LDYgKzU3LDEwIEBA
IHB1YmxpYzoKICAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKIAorI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rp
b24oV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1
bmN0aW9uJiYgZnVuY3Rpb24pIHsgbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24g
PSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Jik7CiAgICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwpAQCAtNzUsNiArNzksMTAgQEAgcHJpdmF0ZToKICAg
ICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+
PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9w
ZXJtaXNzaW9uQ2hlY2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXplcj4gbV9yZWNvZ25pemVyOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rp
b24gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggZTdkOWNkZmU1NTM1YzI3YzQ1MDRmMDEwYTZlZGY4ZTRjNWUzY2E2YS4u
NWIzYmU0MmIwMGY3YzlhZWViYjQ1NjJhNjFiMmMxYzAzOWRhMTM5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zOCw2ICszOCw5IEBACiAjaW5j
bHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQ
cm94eS5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXJTdGF0ZS5oIgpAQCAtMTcwMiw4ICsxNzA1LDggQEAgUEFMOjpTZXNzaW9uSUQgV2ViUHJvY2Vz
c1Byb3h5OjpzZXNzaW9uSUQoKSBjb25zdAogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRl
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpOwotICAgIEFT
U0VSVChzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pc05ld0VudHJ5KTsKKyAgICBBU1NFUlQoIW1f
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1
dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1h
cC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogICAgIFdlYlBhZ2VQ
cm94eSogdGFyZ2V0UGFnZSA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMo
KSkgewogICAgICAgICBpZiAocGFnZSAmJiBwYWdlLT53ZWJQYWdlSUQoKSA9PSBpZGVudGlmaWVy
KSB7CkBAIC0xNzE1LDcgKzE3MTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogICAgIGlm
ICghdGFyZ2V0UGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdl
YWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVy
KSBtdXRhYmxlIHsKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1ha2VVbmlxdWU8U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIs
IFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXShhdXRvJiBvcmlnaW4sIGF1dG8m
JiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1BhZ2UpIHsK
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkRlY2lzaW9uOjpEZW55KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3MjMsNyArMTcyNiwx
NyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogICAgIH0pOwotICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOworCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oSU9TKQorICAgIHNwZWVjaFJlY29nbml0aW9u
U2VydmVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGF1dG8mIGRldmljZSkgLT4gUmVmUHRyPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIGF1dG8mIHNvdXJjZU1hbmFnZXIgPSBlbnN1
cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7Cisg
ICAgICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmNyZWF0ZShzb3VyY2VNYW5hZ2VyLCBkZXZpY2UpOworICAgIH0pOworI2VuZGlmCiB9CiAKIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xNzMzLDYgKzE3NDYs
MjAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW4KICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyTWFwLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdl
YlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpjb25uZWN0aW9u
KCkpKTsKKyAgICAgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OworICAgIH0KKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1Mp
CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxz
Y3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IGMxMGIzOTQ4ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLjc3ZDMwOWM1Y2Rk
NGYxM2JkYjA0M2Q3NDE4OTk2ODM0NGJlY2IzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2Vi
c2l0ZURhdGE7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBlbnVtIEZv
cmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBSZWZDb3VudGVyPEZv
cmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRl
cjsKIHR5cGVkZWYgRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBGb3JlZ3JvdW5k
V2ViUHJvY2Vzc1Rva2VuOwpAQCAtNTA1LDYgKzUwOSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRl
bnRpZmllcik7CiAgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVu
c3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsK
KyNlbmRpZgogCiAgICAgdm9pZCBzeXN0ZW1CZWVwKCk7CiAgICAgCkBAIC02NDMsNiArNjUwLDkg
QEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFz
aE1hcDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFw
IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0NjExYmQx
ZDNmMzJjNTI2MzE1NTFmMzk2ZTFmODQwNDBlNDg4YmQuLjg2YTAzNzZkMmIzMTEzZWJkNGYxNzQw
NjA3MzlkMDYxY2UwYzg3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTQzMSw2ICsxNDMxLDExIEBACiAJCTkzQTg4QjMzMUJDNkU5
Q0QwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8qIFdl
YkhpdFRlc3RSZXN1bHREYXRhLmggKi87IH07CiAJCTkzQTg4QjNCMUJDNzEwRDkwMEFCQTVDMiAv
KiBfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaCAqLzsgfTsKIAkJOTNBODhCNDYxQkM4ODI5MzAwQUJBNUMyIC8qIEFQ
SUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggKi87
IH07CisJCTkzQUI5QjRDMjU3NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0RDI1NzU2N0RD
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
QjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDIyNTc0OTI4QzAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9
OworCQk5M0FCOUI1NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CisJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjUxMjU3
NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNCMjYxNEQyMjdEMTQ5RTAw
Qjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFn
ZXIuaCAqLzsgfTsKIAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURh
dGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0IyNjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsgfTsK
IAkJOTNCMjYxNEYyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYx
NDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICovOyB9
OwpAQCAtNDU4MSw2ICs0NTg2LDIwIEBACiAJCTkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBf
V0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQTg4QjQyMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIgLyog
QVBJSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElI
aXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQyMjU3
NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjQzMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNBQjlCNDkyNTc0QzYxRTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QjI1NzRDNjFG
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTEyNTc1
ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5
QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlC
NTMyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTQyNTc1ODkxMjAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3
NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ3MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTg5NDksNiArODk2OCwxNiBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CiAJCX07CisJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVlY2gg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzQUI5QjRC
MjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcCAqLywKKwkJCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ5MjU3
NEM2MUUwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBTcGVlY2g7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk5M0IyNjE0MzIyN0QxNDMxMDBCOTdBNzYgLyogV2Vi
U3RvcmFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05
MTUzLDYgKzkxODIsNyBAQAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3Jr
ICovLAogCQkJCTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2Vy
KSAqLywKIAkJCQkxQTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKKwkJCQk5
M0FCOUI0ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovLAogCQkJCTUxMThFOTk4MUYyOTUy
NTkwMDNFRjlGNSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAv
KiBVc2VyQ29udGVudCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2ViQXV0
aGVudGljYXRpb24gKi8sCkBAIC05MzY2LDYgKzkzOTYsMTEgQEAKIAkJCQk5M0Q2QjdCMDI1NTI2
OEExMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAgKi8s
CiAJCQkJOTNENkI3QjIyNTUyNjhBMjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbk1hbmFnZXIuaCAqLywKIAkJCQk5M0Q2QjdBRjI1NTI2OEExMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTkzQUI5QjQzMjU3NDkyOEMw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
ICovLAorCQkJCTkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHAgKi8sCisJCQkJOTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0NjI1NzQ5
MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAogCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTkzRDZCNzdBMjU0Qzk4
NEQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKQEAg
LTEwNTEwLDYgKzEwNTQ1LDEyIEBACiAJCQkJMUREMkE2NzIyNTYyMzI0RjAwRkY3QjZGIC8qIFNv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFERDJB
NjczMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMu
aCAqLywKIAkJCQkxREQyQTY3MTI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0
ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjRGMjU3NTg5MTEwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKKwkJCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNB
QjlCNTAyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI1MTI1NzU4OTExMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTMyNTc1ODkxMjAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oICovLAorCQkJCTkzQUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJ
CQkJOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovLAogCQkJCTkzRDZCNzdGMjU0Q0NBQkIw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovLApA
QCAtMTE1NzgsNiArMTE2MTksOSBAQAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBT
T0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdCNTI1NTI2
OEQ3MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNENkI3QjQyNTUyNjhENTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjRDMjU3NTYz
RjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0FCOUI0RDI1NzU2N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzIyNTRC
QjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5M0Q2Qjc4NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODUyNTRDQ0Q0MzAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywK
QEAgLTEzMzQ1LDYgKzEzMzg5LDggQEAKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyog
U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNE
MThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJBNjc0MjU2MjMyQTEwMEZGN0I2RiAv
KiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTkzQUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMzNERFRDE2REU4
Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI4ZjRi
NmNlOGFjY2JlMjJiZGJjNjZhMTBmNjcyNDM0MjlkMDRiZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwyMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
IlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisKKyNpZiBQTEFURk9STShDT0NP
QSkKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICA6IHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgorICAgICwgcHVibGljIFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlOjpDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+JiYg
c291cmNlLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2Up
KQorICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgIHsKKyAg
ICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPmFk
ZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5SZWFsdGltZU1lZGlh
U291cmNlKCkKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0b3JhZ2UoKS5p
bnZhbGlkYXRlKCk7CisjZW5kaWYKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxl
T2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMp
OworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0
YXJ0KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1fc291cmNl
LT5zdG9wKCk7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7CisgICAg
fQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwKKyAg
ICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRlbnRpZmll
ciksIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAg
ICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRp
bWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsCisg
ICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBk
ZXNjcmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVz
Y3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNp
Y1R5cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9u
KCkuZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNj
cmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9j
YXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7
CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRp
b0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1
ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5k
RnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRG
cmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJhbWVzLCBz
dGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRp
bWUpOworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsKKyAgICAgICAgVU5VU0VEX1BB
UkFNKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJhbWVzKTsK
KyNlbmRpZgorICAgIH0KKworICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBz
dG9yYWdlKSBmaW5hbAorICAgIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxl
OworICAgICAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRs
ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNldFN0b3JhZ2UobV9pZGVudGlmaWVyLCBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgIDAgfSwgbV9kZXNjcmlwdGlvbiwgbV9u
dW1iZXJPZkZyYW1lcyksIDApOworICAgIH0KKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CisgICAgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworI2VuZGlmCit9OworCitTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKworI2lmIEVOQUJMRShTQU5E
Qk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2Fu
ZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7CisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVEND
RCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JUQ0NE
KSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKQorICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIHRjY2QiKTsKKyAgICBl
bHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPmNvbnN1bWUoKTsKKworICAg
IG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgIGlmICghbV9zYW5k
Ym94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8g
Y3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBtaWNyb3Bob25lIik7CisgICAgZWxzZQorICAg
ICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5jb25zdW1lKCk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2Fu
ZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKSB7
CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPnJldm9rZSgpOworICAgICAgICBt
X3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobV9z
YW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkgeworICAgICAgICBtX3NhbmRib3hFeHRlbnNp
b25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9y
TWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQorfQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7Cisg
ICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHJl
YWx0aW1lIHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKGlk
ZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCghbV9z
b3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZp
ZXIsIG1ha2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZT4oaWRlbnRpZmllciwgcmVzdWx0LnNv
dXJjZSgpLCBtYWtlUmVmKCptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKSkpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2Ug
PSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0YXJ0KCk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3Rv
cChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+c3RvcCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYxZjViMTllMzcwZjViZTBhNDY4NGQ5ZTFjZDI3ZTAyNzBjMDkwN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUg
IlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZp
Y2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKCk7CisgICAgflNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIoKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgdm9pZCBn
cmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9pZCByZXZva2VTYW5kYm94RXh0ZW5zaW9ucygp
OworI2VuZGlmCisKKyAgICB2b2lkIGFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHZvaWQg
cmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIHN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworCitw
cml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJE
ZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBjbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlOworICAgIGZyaWVuZCBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIEhhc2hNYXA8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxS
ZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhU
RU5TSU9OUykKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9u
Rm9yVENDRDsKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9u
Rm9yTWljcm9waG9uZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3NzM5YTlkZjYwYzI3ZTBkY2Zl
ZjY1YWM4NjE2MmYzMjgwYzVmNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7
CisgICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yVENDRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZvck1pY3JvcGhvbmUpCisgICAgUmV2
b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorICAgIEFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRl
dmljZSkKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllcikKKyAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKaW5kZXggM2YzNTMxOTRhMzJjM2U2
NzliY2EyOWZiZWE4NTAzMWM5MjFlNGZjNC4uZTBkMmE1OTg1NTViOTg5Nzg1ODU4YWI2YzY0YTc1
NGFmZGExMTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDEwIEBAIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uCiB7CiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9p
ZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpD
cmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihtX2lkZW50aWZpZXIpLCAwKTsKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiB9CiAK
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZjJm
MjI4MjJjN2IyMjNmY2E1OWY5NTU3M2QxMWRjOTliMTAzNDgxMS4uYjEyMzljNTc3YmI4NDZhOGNj
NGRmY2YyOGJkMmQzMDQwNGQzZGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NBc3NlcnRpb24uaCIK
ICNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lD
RE1GYWN0b3J5LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAjaW5jbHVkZSAiVXNl
ckRhdGEuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCkBAIC0xOTY5
LDYgKzE5NzAsMTYgQEAgdm9pZCBXZWJQcm9jZXNzOjplbmFibGVWUDlTV0RlY29kZXIoKQogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1fc3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4oKTsKKworICAgIHJldHVybiAqbV9zcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZTljNDdkYjRjNDQ3YzBmNGFiNjI3
YzA5NGI1ZjY4ZGI1NjVhOWE2Yy4uN2U1YTRjYWE0YzVkMmUyMzc4ODEzZWI0ZjJmNDIyOGJkZTRj
YzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xNDIsNiArMTQy
LDEwIEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIGNsYXNzIExheWVySG9z
dGluZ0NvbnRleHQ7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGNs
YXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcwogewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtMzYwLDYgKzM2NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRXcml0ZVRvUGFzdGVib2FyZEFzeW5jaHJvbm91c2x5KGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJvY2VzcygpOwpAQCAtNjkzLDYgKzcwMSwxMCBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV92cDlEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX3ZwOVNXRGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415093</attachid>
            <date>2020-11-30 20:43:42 -0800</date>
            <delta_ts>2020-12-01 08:57:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201130204341.patch</filename>
            <type>text/plain</type>
            <size>79037</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM0ZjI5ZTVmOTY3Yjlk
NGU4ODU5ZGYwODJlMWEwMjcwNjYxOGFhMi4uYjVmOWNjNTc4MjkyYWYxNmVjODc1OGU5ZDE4ZTNh
MTIxNjQyNDc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5k
Q2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCk6Cisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uKToKKwogMjAyMC0xMS0yOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0JGQ10gRG8gbm90IGFzc3VtZSBmbG9hdCBhdm9pZGVycyBoYXZlIHByZS1j
b21wdXRlZCB2ZXJ0aWNhbCBwb3NpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWFiMWViNDY3OWE1M2M0NzNl
ZmRiNjI5ZDI3ZTJkYzY5YmYyMGVmOS4uNjFkZjY2MDJkNzRhYmViMDlhMjU5MDFkZjkzMGQ5Njhm
ZGNmMzlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAyMC0xMS0zMCAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVy
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcx
ODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6Om1fbWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVj
aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxh
YmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlv
bklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Y29ubmVjdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1l
TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVhbHRpbWVNZWRpYVNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3JhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFu
dFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDIwLTExLTI4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbbWFjT1NdIFNldCBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbiBpbiB0aGUgTmV0d29y
a2luZyBwcm9jZXNzIG9uIGJlaGFsZiBvZiB0aGUgV2ViQ29udGVudCBwcm9jZXNzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQppbmRleCAzNzg5YWEzODM5NDBkMjU3NDEyNGJjMmZmNDNlN2VlYzRhZTk1MGQ1Li44
NjkzMzE3MjAwNjQ4MDc5MjdlYjdlZjZlM2JjY2E2OGRlMDYzZTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKQEAgLTEzMjIsNiArMTMyMiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5oCisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAppbmRleCBjOTNiNmYz
OGJjNjIzOGRhMWRiYTg2OGUyOWUxZTViMWU2ZjY2YjZiLi4yZTU2YTkxOGUzOTlmZDcwM2ZlMmZj
ZDQzZDczMTA5NzJmMzhhZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAg
LTM0LDkgKzM0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRh
Q2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0
ZUNhbGxiYWNrKQotewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK09wdGlvbmFsPENhcHR1
cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZp
Y2UoKQorewogICAgIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CiAgICAg
YXV0byBkZXZpY2VzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2
aWNlcygpOwogICAgIGZvciAoYXV0byBkZXZpY2UgOiBkZXZpY2VzKSB7CkBAIC01MSwyNiArNTIs
MTkgQEAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb24KICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgfQorICAgIHJldHVybiBjYXB0dXJlRGV2aWNlOworfQogCi0gICAgaWYgKCFjYXB0
dXJlRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5vIGRldmljZSBp
cyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2so
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVy
cm9yKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICByZXR1cm4gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7Cit9CiAKLSAgICBh
dXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoKmNhcHR1cmVEZXZpY2Us
IHsgfSwgeyB9KTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBhdXRvIGVycm9yID0gU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsIHJlc3VsdC5lcnJvck1lc3NhZ2UgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNr
JiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFj
aywgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQoreworICAgIG1faW1wbCA9IG1h
a2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRp
ZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2sp
LCBXVEZNb3ZlKHNvdXJjZSkpOworfQogCi0gICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRh
dGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIHJlc3VsdC5zb3VyY2Uo
KSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBVTlVT
RURfUEFSQU0oZGF0YUNhbGxiYWNrKTsKLSAgICBVTlVTRURfUEFSQU0oc3RhdGVVcGRhdGVDYWxs
YmFjayk7CiAjZW5kaWYKLX0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuaAppbmRleCA3Mzg2Y2VlZTI3NDA3Y2M2MTA0ZTI5ZWQ3M2RlN2RhMGE0OWY0
ZTBhLi4zMjAxYWMyZTMwYmUwOGY1OTI3NWY0MWRjZmQ0ZWJmNDdiZDhiNjgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtNDIsMTAgKzQyLDE2IEBAIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOwogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2
b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CiAgICAgdXNpbmcgU3RhdGVVcGRh
dGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUm
KT47Ci0gICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNh
bGxiYWNrJiYpOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiBmaW5kQ2FwdHVyZURldmljZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmKTsKKyNlbmRpZgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3Bw
CmluZGV4IDViZWI2MDU2NDdiMzI5ZTI2NGY4M2MyNDlmNTdjMmEyMDgxYzJmZDcuLmMwZTEwNDk5
YzkzZjUxZDQ2YTdhZmZkNDFkNTA4MTQwNDczYjU5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCkBAIC05MCw3ICs5MCwzMCBA
QCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQogICAgICAgICAgICAgbV9z
b3VyY2UgPSBudWxscHRyOwogICAgIH07CiAKLSAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3Zl
KGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjaykpOworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgYXV0byBjYXB0dXJlRGV2aWNlID0gU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpOworICAgIGlmICghY2FwdHVyZURl
dmljZSkgeworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKSB7CisgICAgICAg
IGF1dG8gcmVhbHRpbWVTb3VyY2UgPSBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bigqY2FwdHVyZURldmljZSk7CisgICAgICAgIGlmICghcmVhbHRpbWVTb3VyY2UpIHsKKyAgICAg
ICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJGYWlsZWQgdG8gY3JlYXRlIHJl
YWx0aW1lIHNvdXJjZSIgfSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+
KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0
ZVVwZGF0ZUNhbGxiYWNrKSwgbWFrZVJlZigqcmVhbHRpbWVTb3VyY2UpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICBp
ZiAoIXJlc3VsdCkgeworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCByZXN1
bHQuZXJyb3JNZXNzYWdlIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3NvdXJj
ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJ
ZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxs
YmFjayksIHJlc3VsdC5zb3VyY2UoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25p
emVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJl
c3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuaAppbmRleCBlNmYxM2ZlZTg0YTUzM2FmMGYwNGUwNzY5YzFhZTA5NWJlNWJmZjNmLi42ZjEx
MjljNTQ0NWFkY2NlNzQwNTQxYTk3ZGZmMzYwNmIyY2MwYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC00NSw2ICs0NSwxMSBA
QCBwdWJsaWM6CiAKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xpZW50SWRlbnRpZmllcjsgfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB1c2lu
ZyBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBGdW5jdGlvbjxSZWZQdHI8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4oY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYp
PjsKKyAgICB2b2lkIHNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihSZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJiBmdW5jdGlvbikgeyBtX3JlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pOyB9CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICB2b2lkIHJlc2V0KCk7CiAgICAgdm9pZCBzdGFydEludGVybmFsKCk7CkBAIC01
Myw2ICs1OCwxMCBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBEZWxlZ2F0
ZUNhbGxiYWNrIG1fZGVsZWdhdGVDYWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA2Mjg0NDUzMjUwMzM1MTA3ZmQ1NDk4MjIzMmI4
YjllYWVjOGU2OGNiLi42OGY3ZWQ4NjVjNzMxMjI5MjhjMDZjNzE3MmIzNzY5NmNiMjJjZTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKQEAgLTEwMyw2ICsxMDMsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1NwZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRf
RElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTgzLDYgKzE4NCw3IEBAIHNldChX
ZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlcgogCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgogICAg
IFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVk
TGlua1N0b3JlCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQpAQCAtMjU0LDYg
KzI1Niw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5CiAKKyAgICBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAppbmRleCBlZGI2Y2E1OTc5ZDJmNGRlZjhiMmIyZTc3M2Y5ZDY5YWU3ODZlN2U5
Li44MzFjOGYwMjhhNTZlM2EzMTE1NGVkNTYyMDJjZTAwMjJhNTIzZjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDQsNiArMTA0LDcg
QEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXIubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVz
c2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IDc1Njc5ZjU1ZjVhZTM5OWI1ZWFmNDc3ZjE4OTMyNTZiYzI0ODg0NGQuLmZiMmZh
ZDZkNGE5YzZmYmI2MTlmMzYzYmIxNGZiMzA3NDg4YTI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjYwLDYgKzI2MCwxMiBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmlj
YXRpb25Db250cm9sbGVyTWVzc2FnZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGVNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzNzcwMWIwMWMzYzFhMmMzMDBlMWRkMmQ3MmU2Yjg1
MjM3ZjQyNGI1Li44NTI4Nzg0OTczM2QzYTgxM2JmNDQzMTA2MjU0NDI0NmYxM2E3ZjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0gXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUg
XAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TcGVlY2ggXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9TdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQgXAog
ICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0xNjcsNiAr
MTY4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
IFwKIAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
Q29ubmVjdGlvbiBcCkBAIC0yMDEsNiArMjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJ
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCisJ
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
IFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDkxN2YwMWJlMWM5ZjhjYWEyYWJmN2Yw
Zjg5MGY4OTVhM2YyZWY4Ni4uODg2ZGI2Yzg3ZmVhNmNhNzEyMzYxMTAwOGNmMDM4OWQ5OGExZWUy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CkBAIC0yOTAsNiArMjkwLDggQEAgVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAor
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
K1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNz
L1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxl
ci5jcHAKQEAgLTYzNSw2ICs2MzcsOCBAQCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVCcm93c2VyRnVuY3MuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgQG5vLXVuaWZ5CiAKK1dlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1OTQ5MTc5ODg2NGY2NGI3NjQ3YjRlNTJjMGY3Nzg5OWI4
ZGU2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTI5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFn
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
LCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFn
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsg
Y2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCisgICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCit7CisgICAgbV9t
YW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNhcHR1cmVEZXZpY2UpOworfQorCitTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1f
bWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlzKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAg
aWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0
IHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21h
bmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVu
dGlmaWVyIH0sIDApOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIG1f
ZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1l
bW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtZW1vcnkgPSBTaGFy
ZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkp
OworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3Ig
cmVtb3RlIHNvdXJjZSIpOworICAgIH0KKworICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNfY2Fz
dDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAg
ICBpZiAoIW1lbW9yeSkgeworICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKKyAg
ICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2Uuc2V0U3Rv
cmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0b3JhZ2Uuc2V0
U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAgc3RvcmFnZS5zZXRSZWFkT25s
eSh0cnVlKTsKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7CisgICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4o
ZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNB
dmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBpZiAoIW1fYnVmZmVyKSB7CisgICAgICAgIExPR19FUlJPUigiQnVmZmVyIGZvciByZW1v
dGUgc291cmNlIGlzIG51bGwiKTsKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbV9idWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJh
bWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1l
LCBlbmRGcmFtZSk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChtX2J1ZmZlci0+bGlzdCgpLCBu
dW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgYXVkaW9TYW1wbGVzQXZhaWxh
YmxlKHRpbWUsICptX2J1ZmZlciwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0odGltZSk7CisgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJh
bWVzKTsKKyAgICBVTlVTRURfUEFSQU0oc3RhcnRGcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKGVu
ZEZyYW1lKTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCgpCit7CisgICAgY2FwdHVyZUZhaWxl
ZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVtb3RlU291cmNlU3RvcHBlZCgpCit7CisgICAgc3RvcCgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3YmMwZDEzMWYyY2RiMTVmOTI1Y2UwOTAxOTU3ZWZhNGQ0NDBjYmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBDYXB0dXJlRGV2aWNlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAg
flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOworCisgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBz
ZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlm
CisKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFt
ZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKCk7CisgICAgdm9pZCByZW1vdGVTb3Vy
Y2VTdG9wcGVkKCk7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBz
dG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2Fw
YWJpbGl0aWVzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKworICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBXZWFr
UHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1f
bWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1f
Y2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBt
X3NldHRpbmdzOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworI2VuZGlmCit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0YmQ3YTg3YTQwODQzOWU0ODcz
MzU0YzU1NGY3MGY5YWZmNTJmYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihX
VEZNb3ZlKGNvbm5lY3Rpb24pKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRl
bnRpZmllcigpOworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
KyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsICZzb3VyY2UpOworCisgICAgaWYgKCFtX2hh
c0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lP
TlMpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JUQ0NEOworICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBw
bGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCksIGhhbmRsZUZvclRDQ0Qp
OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yTWljcm9waG9uZTsK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lv
bigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9zLCBoYW5kbGVGb3JNaWNyb3Bob25lKTsK
KyAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6R3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhoYW5kbGVGb3JUQ0NELCBoYW5kbGVG
b3JNaWNyb3Bob25lKSk7CisjZW5kaWYKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVu
c2lvbnMgPSB0cnVlOworICAgIH0KKworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFkZFNvdXJjZShpZGVudGlmaWVyLCBjYXB0
dXJlRGV2aWNlKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJj
ZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikgPT0g
JnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKKworICAgIGlmICht
X3NvdXJjZXMuaXNFbXB0eSgpICYmIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zKSB7Cisj
aWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tlU2FuZGJveEV4
dGVuc2lvbnMoKSk7CisjZW5kaWYKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lv
bnMgPSBmYWxzZTsKKyAgICB9CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdmVTb3VyY2UoaWRlbnRpZmllcikpOwor
fQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hh
bmRsZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAoYXV0byog
c291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zZXRT
dG9yYWdlKGlwY0hhbmRsZS5oYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9
CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYg
dGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2
NF90IGVuZEZyYW1lKQoreworICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlk
ZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0
aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUNh
cHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBpZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVy
KSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVDYXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291
cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIp
KQorICAgICAgICBzb3VyY2UtPnJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKK30KKworSVBDOjpDb25u
ZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVj
dGlvbi5wdHIoKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAor
eworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWE4NTk3ZDcyYzE0ZWI4MDg2MDc0NmFkODgyODNiOWE2YTEyYzJlMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUg
IlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CisKKyNpZiBQTEFURk9STShD
T0NPQSkKK2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKKyNlbmRpZgorfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIHZvaWQgYWRkU291cmNl
KFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHZvaWQgc2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKwor
ICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAg
dm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOworCisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
KCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29u
c3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UqPiBtX3NvdXJjZXM7CisgICAgYm9vbCBt
X2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGUzZjZj
ZjYwMTkxZmUxZDgxMDVlZTM0MWU4OGJlZjNkNGZmOTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM2IEBACisjIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisj
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVz
c2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciBOb3RSZWZDb3VudGVkIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTZXRTdG9yYWdlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyNl
bmRpZgorCisgICAgUmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRf
dCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUp
CisgICAgUmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKQorICAgIFJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAK
aW5kZXggOWY2MDBkM2Y1Y2RjNmMzMmM1NDhhMGEwOWFiMDJiYzE0NTM0NTI0NC4uZGQzODc4YWQw
NDlhZGFhMGZjZjZhYzViMjIzNDk1NTI2ZmMzN2JhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtOTEsNiArOTEsMTQg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24KIAogICAgICAgICAgICAgc2VuZFVwZGF0ZSh1cGRh
dGUpOwogICAgICAgICB9KTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgICAgIGlm
IChtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbikgeworICAgICAgICAgICAgbV9y
ZWNvZ25pemVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXNdKGF1
dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBtX3JlYWx0aW1lTWVkaWFTb3Vy
Y2VDcmVhdGVGdW5jdGlvbihkZXZpY2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyNl
bmRpZgogICAgIH0KIAogICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aAppbmRleCBhN2Y3NmQzOGVlNTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li43YjA2ZmYx
Mzc1OWU0ZDgyNzc0NmJkMzhiZDVkODI0NmU3YjNhNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTU3LDYgKzU3LDEwIEBA
IHB1YmxpYzoKICAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKIAorI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rp
b24oV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1
bmN0aW9uJiYgZnVuY3Rpb24pIHsgbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24g
PSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Jik7CiAgICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwpAQCAtNzUsNiArNzksMTAgQEAgcHJpdmF0ZToKICAg
ICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+
PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9w
ZXJtaXNzaW9uQ2hlY2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXplcj4gbV9yZWNvZ25pemVyOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rp
b24gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggZTdkOWNkZmU1NTM1YzI3YzQ1MDRmMDEwYTZlZGY4ZTRjNWUzY2E2YS4u
NWIzYmU0MmIwMGY3YzlhZWViYjQ1NjJhNjFiMmMxYzAzOWRhMTM5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zOCw2ICszOCw5IEBACiAjaW5j
bHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQ
cm94eS5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXJTdGF0ZS5oIgpAQCAtMTcwMiw4ICsxNzA1LDggQEAgUEFMOjpTZXNzaW9uSUQgV2ViUHJvY2Vz
c1Byb3h5OjpzZXNzaW9uSUQoKSBjb25zdAogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRl
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpOwotICAgIEFT
U0VSVChzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pc05ld0VudHJ5KTsKKyAgICBBU1NFUlQoIW1f
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1
dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1h
cC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogICAgIFdlYlBhZ2VQ
cm94eSogdGFyZ2V0UGFnZSA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMo
KSkgewogICAgICAgICBpZiAocGFnZSAmJiBwYWdlLT53ZWJQYWdlSUQoKSA9PSBpZGVudGlmaWVy
KSB7CkBAIC0xNzE1LDcgKzE3MTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogICAgIGlm
ICghdGFyZ2V0UGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdl
YWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVy
KSBtdXRhYmxlIHsKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1ha2VVbmlxdWU8U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIs
IFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXShhdXRvJiBvcmlnaW4sIGF1dG8m
JiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1BhZ2UpIHsK
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkRlY2lzaW9uOjpEZW55KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3MjMsNyArMTcyNiwx
NyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogICAgIH0pOwotICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOworCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oSU9TKQorICAgIHNwZWVjaFJlY29nbml0aW9u
U2VydmVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGF1dG8mIGRldmljZSkgLT4gUmVmUHRyPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIGF1dG8mIHNvdXJjZU1hbmFnZXIgPSBlbnN1
cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7Cisg
ICAgICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmNyZWF0ZShzb3VyY2VNYW5hZ2VyLCBkZXZpY2UpOworICAgIH0pOworI2VuZGlmCiB9CiAKIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xNzMzLDYgKzE3NDYs
MjAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW4KICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyTWFwLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdl
YlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpjb25uZWN0aW9u
KCkpKTsKKyAgICAgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OworICAgIH0KKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1Mp
CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxz
Y3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IGMxMGIzOTQ4ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLjc3ZDMwOWM1Y2Rk
NGYxM2JkYjA0M2Q3NDE4OTk2ODM0NGJlY2IzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2Vi
c2l0ZURhdGE7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBlbnVtIEZv
cmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBSZWZDb3VudGVyPEZv
cmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRl
cjsKIHR5cGVkZWYgRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBGb3JlZ3JvdW5k
V2ViUHJvY2Vzc1Rva2VuOwpAQCAtNTA1LDYgKzUwOSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRl
bnRpZmllcik7CiAgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVu
c3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsK
KyNlbmRpZgogCiAgICAgdm9pZCBzeXN0ZW1CZWVwKCk7CiAgICAgCkBAIC02NDMsNiArNjUwLDkg
QEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFz
aE1hcDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFw
IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0NjExYmQx
ZDNmMzJjNTI2MzE1NTFmMzk2ZTFmODQwNDBlNDg4YmQuLjg2YTAzNzZkMmIzMTEzZWJkNGYxNzQw
NjA3MzlkMDYxY2UwYzg3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTQzMSw2ICsxNDMxLDExIEBACiAJCTkzQTg4QjMzMUJDNkU5
Q0QwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8qIFdl
YkhpdFRlc3RSZXN1bHREYXRhLmggKi87IH07CiAJCTkzQTg4QjNCMUJDNzEwRDkwMEFCQTVDMiAv
KiBfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaCAqLzsgfTsKIAkJOTNBODhCNDYxQkM4ODI5MzAwQUJBNUMyIC8qIEFQ
SUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggKi87
IH07CisJCTkzQUI5QjRDMjU3NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0RDI1NzU2N0RD
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
QjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDIyNTc0OTI4QzAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9
OworCQk5M0FCOUI1NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CisJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjUxMjU3
NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNCMjYxNEQyMjdEMTQ5RTAw
Qjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFn
ZXIuaCAqLzsgfTsKIAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURh
dGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0IyNjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsgfTsK
IAkJOTNCMjYxNEYyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYx
NDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICovOyB9
OwpAQCAtNDU4MSw2ICs0NTg2LDIwIEBACiAJCTkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBf
V0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQTg4QjQyMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIgLyog
QVBJSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElI
aXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQyMjU3
NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjQzMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNBQjlCNDkyNTc0QzYxRTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QjI1NzRDNjFG
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTEyNTc1
ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5
QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlC
NTMyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTQyNTc1ODkxMjAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3
NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ3MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTg5NDksNiArODk2OCwxNiBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CiAJCX07CisJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVlY2gg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzQUI5QjRC
MjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcCAqLywKKwkJCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ5MjU3
NEM2MUUwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBTcGVlY2g7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk5M0IyNjE0MzIyN0QxNDMxMDBCOTdBNzYgLyogV2Vi
U3RvcmFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05
MTUzLDYgKzkxODIsNyBAQAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3Jr
ICovLAogCQkJCTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2Vy
KSAqLywKIAkJCQkxQTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKKwkJCQk5
M0FCOUI0ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovLAogCQkJCTUxMThFOTk4MUYyOTUy
NTkwMDNFRjlGNSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAv
KiBVc2VyQ29udGVudCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2ViQXV0
aGVudGljYXRpb24gKi8sCkBAIC05MzY2LDYgKzkzOTYsMTEgQEAKIAkJCQk5M0Q2QjdCMDI1NTI2
OEExMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAgKi8s
CiAJCQkJOTNENkI3QjIyNTUyNjhBMjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbk1hbmFnZXIuaCAqLywKIAkJCQk5M0Q2QjdBRjI1NTI2OEExMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTkzQUI5QjQzMjU3NDkyOEMw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
ICovLAorCQkJCTkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHAgKi8sCisJCQkJOTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0NjI1NzQ5
MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAogCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTkzRDZCNzdBMjU0Qzk4
NEQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKQEAg
LTEwNTEwLDYgKzEwNTQ1LDEyIEBACiAJCQkJMUREMkE2NzIyNTYyMzI0RjAwRkY3QjZGIC8qIFNv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFERDJB
NjczMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMu
aCAqLywKIAkJCQkxREQyQTY3MTI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0
ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjRGMjU3NTg5MTEwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKKwkJCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNB
QjlCNTAyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI1MTI1NzU4OTExMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTMyNTc1ODkxMjAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oICovLAorCQkJCTkzQUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJ
CQkJOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovLAogCQkJCTkzRDZCNzdGMjU0Q0NBQkIw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovLApA
QCAtMTE1NzgsNiArMTE2MTksOSBAQAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBT
T0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdCNTI1NTI2
OEQ3MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNENkI3QjQyNTUyNjhENTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjRDMjU3NTYz
RjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0FCOUI0RDI1NzU2N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzIyNTRC
QjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5M0Q2Qjc4NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODUyNTRDQ0Q0MzAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywK
QEAgLTEzMzQ1LDYgKzEzMzg5LDggQEAKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyog
U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNE
MThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJBNjc0MjU2MjMyQTEwMEZGN0I2RiAv
KiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTkzQUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMzNERFRDE2REU4
Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI4ZjRi
NmNlOGFjY2JlMjJiZGJjNjZhMTBmNjcyNDM0MjlkMDRiZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwyMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
IlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisKKyNpZiBQTEFURk9STShDT0NP
QSkKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICA6IHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgorICAgICwgcHVibGljIFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlOjpDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+JiYg
c291cmNlLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2Up
KQorICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgIHsKKyAg
ICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPmFk
ZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5SZWFsdGltZU1lZGlh
U291cmNlKCkKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0b3JhZ2UoKS5p
bnZhbGlkYXRlKCk7CisjZW5kaWYKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxl
T2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMp
OworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0
YXJ0KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1fc291cmNl
LT5zdG9wKCk7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7CisgICAg
fQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwKKyAg
ICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRlbnRpZmll
ciksIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAg
ICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRp
bWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsCisg
ICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBk
ZXNjcmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVz
Y3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNp
Y1R5cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9u
KCkuZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNj
cmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9j
YXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7
CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRp
b0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1
ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5k
RnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRG
cmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJhbWVzLCBz
dGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRp
bWUpOworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsKKyAgICAgICAgVU5VU0VEX1BB
UkFNKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJhbWVzKTsK
KyNlbmRpZgorICAgIH0KKworICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBz
dG9yYWdlKSBmaW5hbAorICAgIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxl
OworICAgICAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRs
ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNldFN0b3JhZ2UobV9pZGVudGlmaWVyLCBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgIDAgfSwgbV9kZXNjcmlwdGlvbiwgbV9u
dW1iZXJPZkZyYW1lcyksIDApOworICAgIH0KKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CisgICAgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworI2VuZGlmCit9OworCitTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKworI2lmIEVOQUJMRShTQU5E
Qk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2Fu
ZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7CisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVEND
RCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JUQ0NE
KSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKQorICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIHRjY2QiKTsKKyAgICBl
bHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPmNvbnN1bWUoKTsKKworICAg
IG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgIGlmICghbV9zYW5k
Ym94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8g
Y3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBtaWNyb3Bob25lIik7CisgICAgZWxzZQorICAg
ICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5jb25zdW1lKCk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2Fu
ZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKSB7
CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPnJldm9rZSgpOworICAgICAgICBt
X3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobV9z
YW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkgeworICAgICAgICBtX3NhbmRib3hFeHRlbnNp
b25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9y
TWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQorfQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7Cisg
ICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHJl
YWx0aW1lIHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKGlk
ZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCghbV9z
b3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZp
ZXIsIG1ha2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZT4oaWRlbnRpZmllciwgcmVzdWx0LnNv
dXJjZSgpLCBtYWtlUmVmKCptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKSkpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2Ug
PSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0YXJ0KCk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3Rv
cChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+c3RvcCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYxZjViMTllMzcwZjViZTBhNDY4NGQ5ZTFjZDI3ZTAyNzBjMDkwN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUg
IlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZp
Y2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKCk7CisgICAgflNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIoKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgdm9pZCBn
cmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9pZCByZXZva2VTYW5kYm94RXh0ZW5zaW9ucygp
OworI2VuZGlmCisKKyAgICB2b2lkIGFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHZvaWQg
cmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIHN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworCitw
cml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJE
ZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBjbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlOworICAgIGZyaWVuZCBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIEhhc2hNYXA8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxS
ZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhU
RU5TSU9OUykKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9u
Rm9yVENDRDsKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9u
Rm9yTWljcm9waG9uZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxMjU3YTI4MjU5YWY1YzdkNDhh
ZjcwZDRiOGZkYjcxZDEwNDE5ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7
CisgICAgQWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlKQorICAgIFJlbW92ZVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAg
IFN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIp
OworICAgIFN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
Zmllcik7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIEdyYW50U2FuZGJv
eEV4dGVuc2lvbnMoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVu
c2lvbkhhbmRsZUZvclRDQ0QsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGVGb3JNaWNyb3Bob25lKQorICAgIFJldm9rZVNhbmRib3hFeHRlbnNp
b25zKCkKKyNlbmRpZgorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5jcHAKaW5kZXggM2YzNTMxOTRhMzJjM2U2NzliY2EyOWZiZWE4NTAz
MWM5MjFlNGZjNC4uZTBkMmE1OTg1NTViOTg5Nzg1ODU4YWI2YzY0YTc1NGFmZGExMTA5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTQ2
LDYgKzQ2LDEwIEBAIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uCiB7CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLCAqdGhp
cyk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpDcmVhdGVTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcihtX2lkZW50aWZpZXIpLCAwKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiB9CiAKIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZjJmMjI4MjJjN2IyMjNmY2E1
OWY5NTU3M2QxMWRjOTliMTAzNDgxMS4uYjEyMzljNTc3YmI4NDZhOGNjNGRmY2YyOGJkMmQzMDQw
NGQzZGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDUs
NiArNDUsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NBc3NlcnRpb24uaCIKICNpbmNsdWRlICJSZW1v
dGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNs
dWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCkBAIC0xOTY5LDYgKzE5NzAsMTYgQEAg
dm9pZCBXZWJQcm9jZXNzOjplbmFibGVWUDlTV0RlY29kZXIoKQogfQogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciYgV2ViUHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcj4oKTsKKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKaW5kZXggZTljNDdkYjRjNDQ3YzBmNGFiNjI3YzA5NGI1ZjY4ZGI1NjVh
OWE2Yy4uN2U1YTRjYWE0YzVkMmUyMzc4ODEzZWI0ZjJmNDIyOGJkZTRjYzUyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xNDIsNiArMTQyLDEwIEBAIHN0cnVjdCBX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGNsYXNzIFdlYlByb2Nlc3Mg
OiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcwogewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwpAQCAtMzYwLDYgKzM2NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRXcml0ZVRvUGFzdGVi
b2FyZEFzeW5jaHJvbm91c2x5KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsK
ICAgICB+V2ViUHJvY2VzcygpOwpAQCAtNjkzLDYgKzcwMSwxMCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV92cDlEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZwOVNXRGVjb2Rl
ckVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cisj
ZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415138</attachid>
            <date>2020-12-01 08:57:18 -0800</date>
            <delta_ts>2020-12-01 09:06:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201201085718.patch</filename>
            <type>text/plain</type>
            <size>84232</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmODE0MTZkNDI4ZDQ0N2ZlYzI1YzE1
NzBkNTM3Y2ZjMGI1Y2EyY2IuLmM0NzdlMjk0YjJjMzRiYmE4NDU1ZjdiODNkNWY1YTUzZDVjNTNm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0y
OCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09T
XSBTZXQgYXBwbGljYXRpb24gaW5mb3JtYXRpb24gaW4gdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyBv
biBiZWhhbGYgb2YgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhjNGYyOWU1
Zjk2N2I5ZDRlODg1OWRmMDgyZTFhMDI3MDY2MThhYTIuLjBhYzZlM2QyZjFhNGE1N2I4N2M4ZmMw
ZjhiYWI5ZWE1ZjFmYTg4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMC0xMi0w
MSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
YXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzcxODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gc2V0IFJlYWx0aW1lTWVkaWFTb3VyY2UgbWVt
YmVyIG9mIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS4gCisKKyAgICAgICAgTWFudWFs
bHkgdGVzdGVkIHdpdGggTW9iaWxlTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2U6OmZpbmRDYXB0dXJlRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVy
bmFsKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzZXRSZWFsdGltZU1lZGlhU291cmNlQ3Jl
YXRlRnVuY3Rpb24pOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKwogMjAyMC0xMS0yOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0JGQ10gRG8gbm90IGFzc3VtZSBmbG9hdCBhdm9pZGVycyBoYXZlIHByZS1jb21w
dXRlZCB2ZXJ0aWNhbCBwb3NpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWFiMWViNDY3OWE1M2M0NzNlZmRi
NjI5ZDI3ZTJkYzY5YmYyMGVmOS4uOWM1OWI1M2MxYmQ3MGMxNTFmNTU3NjE3YTkxOGVjNjA1ODZj
MzZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OCBAQAorMjAyMC0xMi0wMSAgU2lodWkgTGl1ICA8
c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBm
b3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxODI0
MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9u
IGlPUywgYXVkaW8gY2FwdHVyZSBpcyBkb25lIGluIHdlYiBwcm9jZXNzLiBGb3Igc3BlZWNoIHJl
Y29nbml0aW9uLCBVSSBwcm9jZXNzIHNob3VsZCBhc2sgd2ViIHByb2Nlc3MgdG8KKyAgICAgICAg
ZG8gYXVkaW8gY2FwdHVyZSBhbmQgc2VuZCBiYWNrIGRhdGEuIFRvIGltcGxlbWVudCB0aGlzLCB3
ZSBoYXZlIGludHJvZHVjZWQ6CisgICAgICAgIC0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOiBzdWJjbGFzcyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIGFu
ZCBjb25uZWN0IHRvIGEgcmVtb3RlIAorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1l
TWVkaWFTb3VyY2UpIGluIHdlYiBwcm9jZXNzLiAKKyAgICAgICAgT24gaU9TLCB3ZSB1c2UgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIGZvciBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuCisgICAgICAgIC0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjogbWFuYWdlIGFsbCBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VzIGluCisgICAgICAgIFVJIHByb2Nlc3MuCisgICAgICAgIC0g
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjogb3duIGFuZCBtYW5h
Z2UgYWxsIAorICAgICAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpSZWFsdGltZU1lZGlhU291cmNlcyBpbiB3ZWIgcHJvY2Vzcy4KKworICAgICAgICBMaWtl
IGV4aXN0aW5nIG1lZGlhIGNhcHR1cmUgaW1wbGVtZW50YXRpb24sIHdlIHVzZSBzaGFyZWQgbWVt
b3J5IHRvIHBhc3MgYXVkaW8gZGF0YSB0byBmcm9tIHdlYiBwcm9jZXNzIHRvIFVJCisgICAgICAg
IHByb2Nlc3MuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6
bV9yaW5nQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjp+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRh
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpzZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnJlbW90ZUNhcHR1cmVGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVBdWRpb1Nh
bXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3RlU291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQgY29u
c3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjb25uZWN0aW9uKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6c2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZWFsdGltZU1lZGlhU291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291
cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcmFnZSk6CisgICAgICAg
IChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmdyYW50U2FuZGJv
eEV4dGVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRl
c3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIw
MjAtMTEtMjggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFttYWNPU10gU2V0IGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uIGluIHRoZSBOZXR3b3JraW5nIHBy
b2Nlc3Mgb24gYmVoYWxmIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKaW5kZXggZjBhZjQ3MDVkMjkwNTI3OWZjMjlmZThiNGUwYmI2ZDY5YThkMjRi
OS4uMTY4YzY4OGM5NzY4YzNiYjY3NTEzZjYwNGNiY2Q1YWY0OWU2NDc3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQ6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJL
aXQ6CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAg
ZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IDM3ODlhYTM4Mzk0MGQyNTc0MTI0YmMyZmY0M2U3ZWVjNGFlOTUwZDUu
Ljg2OTMzMTcyMDA2NDgwNzkyN2ViN2VmNmUzYmNjYTY4ZGUwNjNlNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTMyMiw2ICsxMzIyLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2
ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUy
ZmNkNDNkNzMxMDk3MmYzOGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBk
YXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURl
dmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAg
ICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVE
ZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1
MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAg
IGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmlj
ZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlv
Q2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVy
LCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJh
Y2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxi
YWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
ayksIFdURk1vdmUoc291cmNlKSk7Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJj
ZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVO
VVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5
ZjRlMGEuLjMyMDFhYzJlMzBiZTA4ZjU5Mjc1ZjQxZGNmZDRlYmY0N2JkOGI2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5j
cHAKaW5kZXggNWJlYjYwNTY0N2IzMjllMjY0ZjgzYzI0OWY1N2MyYTIwODFjMmZkNy4uYzBlMTA0
OTljOTNmNTFkNDZhN2FmZmQ0MWQ1MDgxNDA0NzNiNTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTkwLDcgKzkwLDMw
IEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgpCiAgICAgICAgICAgICBt
X3NvdXJjZSA9IG51bGxwdHI7CiAgICAgfTsKIAotICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1v
dmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSk7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgaWYgKCFjYXB0dXJl
RGV2aWNlKSB7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25F
cnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZp
Y2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAobV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pIHsKKyAgICAg
ICAgYXV0byByZWFsdGltZVNvdXJjZSA9IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uKCpjYXB0dXJlRGV2aWNlKTsKKyAgICAgICAgaWYgKCFyZWFsdGltZVNvdXJjZSkgeworICAg
ICAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIkZhaWxlZCB0byBjcmVhdGUg
cmVhbHRpbWUgc291cmNlIiB9KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZT4oKm1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0
YXRlVXBkYXRlQ2FsbGJhY2spLCBtYWtlUmVmKCpyZWFsdGltZVNvdXJjZSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKmNhcHR1cmVEZXZpY2UpOworICAg
IGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJl
c3VsdC5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fc291
cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVu
dElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFs
UmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oCmluZGV4IGU2ZjEzZmVlODRhNTMzYWYwZjA0ZTA3NjljMWFlMDk1YmU1YmZmM2YuLjZm
MTEyOWM1NDQ1YWRjY2U3NDA1NDFhOTdkZmYzNjA2YjJjYzBhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTQ1LDYgKzQ1LDEx
IEBAIHB1YmxpYzoKIAogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9jbGllbnRJZGVudGlmaWVyOyB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVz
aW5nIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFJlZlB0cjxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPihjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
Jik+OworICAgIHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0aW9uKSB7IG1fcmVhbHRpbWVNZWRp
YVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbik7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIHZvaWQgcmVzZXQoKTsKICAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoKTsKQEAg
LTUzLDYgKzU4LDEwIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOwogICAgIERlbGVn
YXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAzODQ1MzljNGQ0ODEzZTVlNjg4NzI0MTgxMWJiNTQ5NzAwNDFiODE1Li40
MjhjNjY1OTExYjI3NjExMjRkYTRiOGI3ZDExZjhlNGQzNTdlNGFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzYwOSwxMyAr
MjM2MDksNiBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKLQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovID0gewotCQkJaXNh
ID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29jb2E7Ci0J
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4
NEYgLyogcGFyc2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTI1NjQ2LDcgKzI1NjM5LDYgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNw
ZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTNG
NkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUw
MDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFC
ODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJ
CQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgg
Ki8sCkBAIC0zMTIyNCw2ICszMTIxNiw3IEBACiAJCQkJMDc5RDA4NkIxNjJGMjFGOTAwREI4NjU4
IC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
N0I3MTE2RDFEODk5RTYzMDA5RjBGRkIgLyogQ2FwdHVyZURldmljZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdCNzExNkYxRDg5OUU2MzAwOUYwRkZCIC8qIENhcHR1cmVEZXZpY2VNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFNEYwQkUzMTI1NzEyRjZFMDA5RTc0MzEgLyogQ2FyZXRSZWN0
Q29tcHV0YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzczNDE1MTk3Nzg5NkQwMDQ2QkZD
NSAvKiBDQVJpbmdCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QUJBQkY1MjM2OEM2RUYw
MEZBNDM0NSAvKiBDYXNjYWRlTGV2ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkJCMjAw
NkM2RUUwMDM1NTk2NSAvKiBDQk9SQmluYXJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTM1MTIxLDcg
KzM1MTE0LDYgQEAKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1No
YWRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFM0ZBRThGMTQ3MzNGREIwMEU0MjMwNyAvKiBX
ZWJHTERlcHRoVGV4dHVyZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUIzMDY5NUUxOEIzRDM0NTAw
OTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0RjBCRTMx
MjU3MTJGNkUwMDlFNzQzMSAvKiBDYXJldFJlY3RDb21wdXRhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkVCRjBFNTUxMkE4OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OUM3QjlDRjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlGRkJGM0YxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdM
TGF5ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggNjI4NDQ1MzI1MDMz
NTEwN2ZkNTQ5ODIyMzJiOGI5ZWFlYzhlNjhjYi4uNjhmN2VkODY1YzczMTIyOTI4YzA2YzcxNzJi
Mzc2OTZjYjIyY2UwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xMDMsNiArMTAzLDcgQEAgc2V0
KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUiCisgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TcGVlY2giCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9TdG9yYWdlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQi
CiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydCIKQEAgLTE4Myw2
ICsxODQsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgU2hhcmVkL1BsdWdp
bnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5CisgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIKICAgICBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIKICAgICBV
SVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZQogICAgIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkKQEAgLTI1NCw2ICsyNTYsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAg
ICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcgogICAg
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eQogCisgICAgV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgorCiAgICAgV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbgogICAgIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZWRiNmNhNTk3OWQyZjRkZWY4YjJiMmU3
NzNmOWQ2OWFlNzg2ZTdlOS4uODMxYzhmMDI4YTU2ZTNhMzExNTRlZDU2MjAyY2UwMDIyYTUyM2Y1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApA
QCAtMTA0LDYgKzEwNCw3IEBAICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94CiAkKFBST0pFQ1RfRElS
KS9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nl
c3MvVmlld0dlc3R1cmVDb250cm9sbGVyLm1lc3NhZ2VzLmluCkBAIC0xNjEsNiArMTYyLDcgQEAg
JChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA3NTY3OWY1NWY1YWUzOTliNWVhZjQ3N2YxODkzMjU2
YmMyNDg4NDRkLi5mYjJmYWQ2ZDRhOWM2ZmJiNjE5ZjM2M2JiMTRmYjMwNzQ4OGEyNzg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI2
MCw2ICsyNjAsMTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2UKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNz
YWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1l
c3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2Vz
UmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzc3MDFiMDFjM2MxYTJj
MzAwZTFkZDJkNzJlNmI4NTIzN2Y0MjRiNS4uODUyODc4NDk3MzNkM2E4MTNiZjQ0MzEwNjI1NDQy
NDZmMTNhN2YzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNjksNiArNjksNyBA
QCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0YSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9SZXNvdXJjZUNhY2hlIFwKKwkkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3BlZWNoIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L1VzZXJDb250ZW50IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24gXApAQCAtMTY3LDYgKzE2OCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbCBcCiAJVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5IFwK
IAlVSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSBcCisJ
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIgXAogCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlciBcCiAJV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciBcCiAJV2ViUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gXApAQCAtMjAxLDYgKzIwMyw3IEBAIE1FU1NBR0Vf
UkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIg
XAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24gXAorCVdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIgXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbiBcCiAJV2ViUHJvY2Vzcy9XZWJQcm9jZXNzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDA5MTdmMDFi
ZTFjOWY4Y2FhMmFiZjdmMGY4OTBmODk1YTNmMmVmODYuLjg4NmRiNmM4N2ZlYTZjYTcxMjM2MTEw
MDhjZjAzODlkOThhMWVlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjkwLDYgKzI5MCw4IEBAIFVJUHJv
Y2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3Bw
CiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvUmVzcG9uc2l2
ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvU3lzdGVt
UHJldmlld0NvbnRyb2xsZXIuY3BwCkBAIC02MzUsNiArNjM3LDggQEAgV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwIEBuby11bmlmeQog
CitXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNw
cAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWE1ZGQyMmY2YzU4NDhmYmFh
MTVjZDJjZDlmN2IyMDlmNDNiOGFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApA
QCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBQTEFURk9STShD
T0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2VuZGlmCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIG1hbmFnZXIs
IGNhcHR1cmVEZXZpY2UpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKKyAgICA6IFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBjYXB0dXJlRGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0pCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAg
ICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJl
ZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0cikpKQorI2VuZGlmCit7CisgICAgbV9t
YW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNhcHR1cmVEZXZpY2UpOworfQorCitTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1f
bWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlzKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAg
aWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0
IHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21h
bmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVu
dGlmaWVyIH0sIDApOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIG1f
ZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1l
bW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtZW1vcnkgPSBTaGFy
ZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkp
OworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3Ig
cmVtb3RlIHNvdXJjZSIpOworICAgIH0KKworICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNfY2Fz
dDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAg
ICBpZiAoIW1lbW9yeSkgeworICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKKyAg
ICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2Uuc2V0U3Rv
cmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0b3JhZ2Uuc2V0
U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAgc3RvcmFnZS5zZXRSZWFkT25s
eSh0cnVlKTsKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7CisgICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4o
ZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNB
dmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBpZiAoIW1fYnVmZmVyKSB7CisgICAgICAgIExPR19FUlJPUigiQnVmZmVyIGZvciByZW1v
dGUgc291cmNlIGlzIG51bGwiKTsKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbV9idWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJh
bWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1l
LCBlbmRGcmFtZSk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChtX2J1ZmZlci0+bGlzdCgpLCBu
dW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgYXVkaW9TYW1wbGVzQXZhaWxh
YmxlKHRpbWUsICptX2J1ZmZlciwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0odGltZSk7CisgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJh
bWVzKTsKKyAgICBVTlVTRURfUEFSQU0oc3RhcnRGcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKGVu
ZEZyYW1lKTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCgpCit7CisgICAgY2FwdHVyZUZhaWxl
ZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVtb3RlU291cmNlU3RvcHBlZCgpCit7CisgICAgc3RvcCgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3YmMwZDEzMWYyY2RiMTVmOTI1Y2UwOTAxOTU3ZWZhNGQ0NDBjYmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBDYXB0dXJlRGV2aWNlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAg
flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOworCisgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBz
ZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlm
CisKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFt
ZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKCk7CisgICAgdm9pZCByZW1vdGVTb3Vy
Y2VTdG9wcGVkKCk7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBz
dG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2Fw
YWJpbGl0aWVzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKworICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBXZWFr
UHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1f
bWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1f
Y2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBt
X3NldHRpbmdzOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworI2VuZGlmCit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0YmQ3YTg3YTQwODQzOWU0ODcz
MzU0YzU1NGY3MGY5YWZmNTJmYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihX
VEZNb3ZlKGNvbm5lY3Rpb24pKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRl
bnRpZmllcigpOworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
KyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsICZzb3VyY2UpOworCisgICAgaWYgKCFtX2hh
c0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lP
TlMpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JUQ0NEOworICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBw
bGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCksIGhhbmRsZUZvclRDQ0Qp
OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yTWljcm9waG9uZTsK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lv
bigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9zLCBoYW5kbGVGb3JNaWNyb3Bob25lKTsK
KyAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6R3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhoYW5kbGVGb3JUQ0NELCBoYW5kbGVG
b3JNaWNyb3Bob25lKSk7CisjZW5kaWYKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVu
c2lvbnMgPSB0cnVlOworICAgIH0KKworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFkZFNvdXJjZShpZGVudGlmaWVyLCBjYXB0
dXJlRGV2aWNlKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJj
ZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikgPT0g
JnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKKworICAgIGlmICht
X3NvdXJjZXMuaXNFbXB0eSgpICYmIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zKSB7Cisj
aWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tlU2FuZGJveEV4
dGVuc2lvbnMoKSk7CisjZW5kaWYKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lv
bnMgPSBmYWxzZTsKKyAgICB9CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdmVTb3VyY2UoaWRlbnRpZmllcikpOwor
fQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hh
bmRsZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAoYXV0byog
c291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zZXRT
dG9yYWdlKGlwY0hhbmRsZS5oYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9
CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYg
dGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2
NF90IGVuZEZyYW1lKQoreworICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlk
ZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0
aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUNh
cHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBpZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVy
KSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVDYXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291
cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIp
KQorICAgICAgICBzb3VyY2UtPnJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKK30KKworSVBDOjpDb25u
ZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVj
dGlvbi5wdHIoKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAor
eworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWE4NTk3ZDcyYzE0ZWI4MDg2MDc0NmFkODgyODNiOWE2YTEyYzJlMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUg
IlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CisKKyNpZiBQTEFURk9STShD
T0NPQSkKK2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKKyNlbmRpZgorfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIHZvaWQgYWRkU291cmNl
KFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHZvaWQgc2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKwor
ICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAg
dm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOworCisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
KCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29u
c3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UqPiBtX3NvdXJjZXM7CisgICAgYm9vbCBt
X2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGUzZjZj
ZjYwMTkxZmUxZDgxMDVlZTM0MWU4OGJlZjNkNGZmOTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM2IEBACisjIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisj
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVz
c2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciBOb3RSZWZDb3VudGVkIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTZXRTdG9yYWdlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyNl
bmRpZgorCisgICAgUmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRf
dCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUp
CisgICAgUmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKQorICAgIFJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAK
aW5kZXggOWY2MDBkM2Y1Y2RjNmMzMmM1NDhhMGEwOWFiMDJiYzE0NTM0NTI0NC4uZGQzODc4YWQw
NDlhZGFhMGZjZjZhYzViMjIzNDk1NTI2ZmMzN2JhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtOTEsNiArOTEsMTQg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24KIAogICAgICAgICAgICAgc2VuZFVwZGF0ZSh1cGRh
dGUpOwogICAgICAgICB9KTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgICAgIGlm
IChtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbikgeworICAgICAgICAgICAgbV9y
ZWNvZ25pemVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXNdKGF1
dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBtX3JlYWx0aW1lTWVkaWFTb3Vy
Y2VDcmVhdGVGdW5jdGlvbihkZXZpY2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyNl
bmRpZgogICAgIH0KIAogICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aAppbmRleCBhN2Y3NmQzOGVlNTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li43YjA2ZmYx
Mzc1OWU0ZDgyNzc0NmJkMzhiZDVkODI0NmU3YjNhNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTU3LDYgKzU3LDEwIEBA
IHB1YmxpYzoKICAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKIAorI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rp
b24oV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1
bmN0aW9uJiYgZnVuY3Rpb24pIHsgbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24g
PSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Jik7CiAgICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwpAQCAtNzUsNiArNzksMTAgQEAgcHJpdmF0ZToKICAg
ICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+
PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9w
ZXJtaXNzaW9uQ2hlY2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXplcj4gbV9yZWNvZ25pemVyOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rp
b24gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggZTdkOWNkZmU1NTM1YzI3YzQ1MDRmMDEwYTZlZGY4ZTRjNWUzY2E2YS4u
ZjkwNmE5YjdiZDY5ZDYwMjQxZTAwZDkxNDQ0NjMzNWJmYjY5NTMwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zOCw2ICszOCw5IEBACiAjaW5j
bHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQ
cm94eS5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXJTdGF0ZS5oIgpAQCAtMTcwMiw4ICsxNzA1LDggQEAgUEFMOjpTZXNzaW9uSUQgV2ViUHJvY2Vz
c1Byb3h5OjpzZXNzaW9uSUQoKSBjb25zdAogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRl
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpOwotICAgIEFT
U0VSVChzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pc05ld0VudHJ5KTsKKyAgICBBU1NFUlQoIW1f
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1
dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1h
cC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogICAgIFdlYlBhZ2VQ
cm94eSogdGFyZ2V0UGFnZSA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMo
KSkgewogICAgICAgICBpZiAocGFnZSAmJiBwYWdlLT53ZWJQYWdlSUQoKSA9PSBpZGVudGlmaWVy
KSB7CkBAIC0xNzE1LDcgKzE3MTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogICAgIGlm
ICghdGFyZ2V0UGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdl
YWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVy
KSBtdXRhYmxlIHsKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1ha2VVbmlxdWU8U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIs
IFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXShhdXRvJiBvcmlnaW4sIGF1dG8m
JiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1BhZ2UpIHsK
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkRlY2lzaW9uOjpEZW55KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3MjMsNyArMTcyNiwx
NyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogICAgIH0pOwotICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOworCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzcGVlY2hSZWNv
Z25pdGlvblNlcnZlci0+c2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShhdXRvJiBkZXZpY2UpIC0+IFJlZlB0cjxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBhdXRvJiBzb3VyY2VNYW5hZ2Vy
ID0gZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpOworICAgICAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpjcmVhdGUoc291cmNlTWFuYWdlciwgZGV2aWNlKTsKKyAgICB9KTsKKyNlbmRpZgog
fQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTczMyw2
ICsxNzQ2LDIwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVuCiAgICAgbV9zcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1hcC5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyJiBXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKSB7CisgICAgICAgIG1fc3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4obWFrZVJlZigqY29u
bmVjdGlvbigpKSk7CisgICAgICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKworI2VuZGlmCisKICNpZiBQTEFURk9STShX
QVRDSE9TKQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRCYWNrZ3JvdW5kQWN0aXZpdHlG
b3JGdWxsc2NyZWVuSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAppbmRleCBjMTBiMzk0OGQ3NzY3NjM3MTRkMTY0NzliNTkzNjI4MmE2OTczM2RhLi43N2Qz
MDljNWNkZDRmMTNiZGIwNDNkNzQxODk5NjgzNDRiZWNiMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAzLDYgKzEwMywxMCBAQCBzdHJ1Y3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlOwogc3Ry
dWN0IFdlYnNpdGVEYXRhOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKKwog
ZW51bSBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBlIHsgfTsKIHR5cGVkZWYgUmVmQ291
bnRlcjxGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBlPiBGb3JlZ3JvdW5kV2ViUHJvY2Vz
c0NvdW50ZXI7CiB0eXBlZGVmIEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlcjo6VG9rZW4gRm9y
ZWdyb3VuZFdlYlByb2Nlc3NUb2tlbjsKQEAgLTUwNSw2ICs1MDksOSBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3lzdGVtQmVlcCgpOwogICAgIApAQCAtNjQzLDYg
KzY1MCw5IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1h
cCA9IEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1
ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+PjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1hcCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwOworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAy
NDYxMWJkMWQzZjMyYzUyNjMxNTUxZjM5NmUxZjg0MDQwZTQ4OGJkLi44NmEwMzc2ZDJiMzExM2Vi
ZDRmMTc0MDYwNzM5ZDA2MWNlMGM4N2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MzEsNiArMTQzMSwxMSBAQAogCQk5M0E4OEIz
MzFCQzZFOUNEMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4QjMxMUJDNkU5QzAwMEFCQTVD
MiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oICovOyB9OwogCQk5M0E4OEIzQjFCQzcxMEQ5MDBB
QkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIzQTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dL
SGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87IH07CiAJCTkzQTg4QjQ2MUJDODgyOTMwMEFCQTVD
MiAvKiBBUElIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3Vs
dC5oICovOyB9OworCQk5M0FCOUI0QzI1NzU2M0YzMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEQy
NTc1NjdEQzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJCTkzQUI5QjRFMjU3NTY3RTIwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjQyMjU3NDky
OEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aCAqLzsgfTsKKwkJOTNBQjlCNTUyNTc1QTI3NjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEYyNTc1ODkxMTAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OworCQk5M0FCOUI1NjI1NzVBMjhCMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FC
OUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTkzQjI2MTREMjI3
RDE0OUUwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDkyMjdEMTQ3MjAwQjk3QTc2IC8qIFN0b3Jh
Z2VNYW5hZ2VyLmggKi87IH07CiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0
b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmgg
Ki87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIu
aCAqLzsgfTsKQEAgLTQ1ODEsNiArNDU4NiwyMCBAQAogCQk5M0E4OEIzQTFCQzcxMEQ5MDBBQkE1
QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0E4OEI0MjFCQzg4MjhDMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElIaXRUZXN0UmVzdWx0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODhCNDMxQkM4ODI4QzAwQUJB
NUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQVBJSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FC
OUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEIy
NTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0FCOUI1MDI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5
QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0FCOUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjU0MjU3NTg5
MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ1MjI3RDE0NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VE
YXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbFN0b3JhZ2VE
YXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0NjIyN0QxNDcx
MDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0NzIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC04OTQ5LDYgKzg5NjgsMTYgQEAKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5M0FCOUI0ODI1NzRDNUNFMDA5OEIxMEUgLyog
U3BlZWNoICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5
M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FC
OUI0OTI1NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gU3BlZWNoOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTNCMjYxNDMyMjdEMTQzMTAwQjk3QTc2
IC8qIFdlYlN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtOTE1Myw2ICs5MTgyLDcgQEAKIAkJCQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyog
TmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9u
cyAoVXNlcikgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8s
CisJCQkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8qIFNwZWVjaCAqLywKIAkJCQk1MTE4RTk5
ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLywKIAkJCQkxQUFGMDhBQTE5MjY5MzBCMDBC
NjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCiAJCQkJNTc2MDgyOEEyMDI5ODRDOTAwMTE2Njc4IC8q
IFdlYkF1dGhlbnRpY2F0aW9uICovLApAQCAtOTM2Niw2ICs5Mzk2LDExIEBACiAJCQkJOTNENkI3
QjAyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIu
Y3BwICovLAogCQkJCTkzRDZCN0IyMjU1MjY4QTIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJOTNENkI3QUYyNTUyNjhBMTAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLywKKwkJCQk5M0FCOUI0MzI1
NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcCAqLywKKwkJCQk5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8sCisJCQkJOTNBQjlCNDQyNTc0OTI4
RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwICovLAorCQkJCTkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJOTNBQjlC
NDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJOTNENkI3NkIyNTRCODk1ODAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCAqLywKIAkJCQk5M0Q2Qjc2QzI1NEI4
OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLywKIAkJCQk5M0Q2Qjc3
QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4g
Ki8sCkBAIC0xMDUxMCw2ICsxMDU0NSwxMiBAQAogCQkJCTFERDJBNjcyMjU2MjMyNEYwMEZGN0I2
RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJ
CQkxREQyQTY3MzI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1l
c3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NzEyNTYyMzI0RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI0RjI1NzU4OTEx
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTQyNTc1ODkxMjAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAor
CQkJCTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJOTNBQjlCNTEyNTc1
ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzQUI5QjUzMjU3NTg5MTIwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
ICovLAogCQkJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJOTNENkI3ODAyNTRDQ0FCQzAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCAqLywKIAkJCQk5M0Q2Qjc3RjI1
NENDQUJCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMu
aCAqLywKQEAgLTExNTc4LDYgKzExNjE5LDkgQEAKIAkJCQk1N0ZEMzE4NTIyQjM1MTY5MDA4RDBF
OEIgLyogU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3
QjUyNTUyNjhENzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I0MjU1MjY4RDUwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0
QzI1NzU2M0YzMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZC
NzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTNENkI3ODQyNTRDQ0QwRTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzg1MjU0Q0NENDMwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMzM0NSw2ICsxMzM4OSw4IEBACiAJCQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2
MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
REU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxREQyQTY3NDI1NjIzMkExMDBG
RjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk5M0FCOUI1NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk5M0FCOUI1NjI1NzVBMjhCMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzMzRE
RUQxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkzNjhFRURFMjMwM0E5MDIwMEJEQjExQSAvKiBTdG9yYWdlTWFu
YWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE2NzQ1OWIyZjMzODM5NDkzOWNjYTgzZWFmNTI5ODRkZGU0MmE3MzkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMjM0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorCisjaWYgUExBVEZPUk0o
Q09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2Vi
QXVkaW9CdWZmZXJMaXN0Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVk
aWFTb3VyY2UKKyAgICA6IHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2Jz
ZXJ2ZXIKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9T
YW1wbGVPYnNlcnZlcgorICAgICwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGll
bnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAgICAgICAsIG1f
Y29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
PihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCisjZW5kaWYK
KyAgICB7CisgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1f
c291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB+UmVh
bHRpbWVNZWRpYVNvdXJjZSgpCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBz
dG9yYWdlKCkuaW52YWxpZGF0ZSgpOworI2VuZGlmCisgICAgICAgIG1fc291cmNlLT5yZW1vdmVB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2Vy
dmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KCkKKyAgICB7CisgICAgICAgIG1f
c291cmNlLT5zdGFydCgpOworICAgIH0KKworICAgIHZvaWQgc3RvcCgpCisgICAgeworICAgICAg
ICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdl
KCkpOworICAgIH0KKyNlbmRpZgorCitwcml2YXRlOgorICAgIHZvaWQgc291cmNlU3RvcHBlZCgp
IGZpbmFsCisgICAgeworICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsK
KyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZCht
X2lkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZVNvdXJjZVN0b3BwZWQobV9pZGVudGlmaWVy
KSwgMCk7CisgICAgfQorCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVk
aWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVz
KSBmaW5hbAorICAgIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKG1fZGVzY3Jp
cHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5w
bGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlv
U3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1l
cyA9IG1fZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgICAgIG1fcmluZ0J1
ZmZlci5hbGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVy
T2ZGcmFtZXMpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVy
TGlzdD4oYXVkaW9EYXRhKSk7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zdG9yZShkb3duY2FzdDxX
ZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGlt
ZS50aW1lVmFsdWUoKSk7CisgICAgICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgICAgIHVp
bnQ2NF90IGVuZEZyYW1lOworICAgICAgICBtX3JpbmdCdWZmZXIuZ2V0Q3VycmVudEZyYW1lQm91
bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpSZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZGVudGlmaWVyLCB0aW1lLCBudW1iZXJP
ZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyNlbHNlCisgICAgICAgIFVOVVNF
RF9QQVJBTSh0aW1lKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGF1ZGlvRGF0YSk7CisgICAgICAg
IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7CisgICAgICAgIFVOVVNFRF9QQVJBTShudW1iZXJP
ZkZyYW1lcyk7CisjZW5kaWYKKyAgICB9CisKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJl
ZE1lbW9yeSogc3RvcmFnZSkgZmluYWwKKyAgICB7CisgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFu
ZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKHN0b3JhZ2UpCisgICAgICAgICAgICBzdG9yYWdlLT5j
cmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsK
KyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTZXRTdG9yYWdlKG1faWRlbnRpZmllciwg
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksICAwIH0sIG1fZGVzY3Jp
cHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvVW5p
dFdpbGxTdGFydCgpIGZpbmFsCisgICAgeworICAgICAgICBhdXRvIGJ1ZmZlclNpemUgPSBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkgLyA1MDsKKyAgICAgICAgaWYg
KEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnByZWZlcnJlZEJ1ZmZlclNpemUoKSA+IGJ1
ZmZlclNpemUpCisgICAgICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQ
cmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOworICAgICAgICBBdWRpb1Nlc3Npb246OnNo
YXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQsIFJv
dXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7CisgICAgfQorCisgICAgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgQ0FSaW5nQnVmZmVyIG1fcmluZ0J1ZmZlcjsKKyAgICBDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CisjZW5kaWYKK307CisKK1Nw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6On5TcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoKnRoaXMpOworfQorCisjaWYgRU5B
QkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JUQ0NELCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmJiBzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkKK3sKKyAgICBtX3NhbmRib3hFeHRlbnNp
b25Gb3JUQ0NEID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJveEhhbmRs
ZUZvclRDQ0QpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpCisgICAgICAg
IExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgdGNjZCIp
OworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+Y29uc3VtZSgp
OworCisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JNaWNyb3Bob25lKSk7CisgICAgaWYg
KCFtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKQorICAgICAgICBMT0dfRVJST1IoIkZh
aWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIG1pY3JvcGhvbmUiKTsKKyAgICBl
bHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPmNvbnN1bWUoKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCit7CisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbkZv
clRDQ0QpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+cmV2b2tlKCk7Cisg
ICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBudWxscHRyOworICAgIH0KKworICAg
IGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKSB7CisgICAgICAgIG1fc2FuZGJv
eEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRl
bnNpb25Gb3JNaWNyb3Bob25lID0gbnVsbHB0cjsKKyAgICB9Cit9CisKKyNlbmRpZgorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCit7CisgICAgYXV0byByZXN1bHQgPSBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2
aWNlKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBj
cmVhdGUgcmVhbHRpbWUgc291cmNlIik7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVG
YWlsZWQoaWRlbnRpZmllciksIDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNT
RVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQo
aWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlPihpZGVudGlmaWVyLCBy
ZXN1bHQuc291cmNlKCksIG1ha2VSZWYoKm1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkpKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVt
b3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRv
IHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3Rh
cnQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBjb25zdAoreworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpOworfQorCit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjFmNWIxOWUzNzBmNWJlMGE0Njg0ZDllMWNkMjdlMDI3MGMwOTA3ZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsNzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisj
aW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2Fw
dHVyZURldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAg
ICB2b2lkIGdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYs
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKKyAgICB2b2lkIHJldm9rZVNhbmRib3hFeHRl
bnNpb25zKCk7CisjZW5kaWYKKworICAgIHZvaWQgYWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7Cisg
ICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlk
ZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2Fn
ZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAgIGNsYXNzIFJlYWx0aW1l
TWVkaWFTb3VyY2U7CisgICAgZnJpZW5kIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlx
dWVfcHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBtX3NvdXJjZXM7CisKKyNpZiBFTkFCTEUoU0FO
REJPWF9FWFRFTlNJT05TKQorICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hF
eHRlbnNpb25Gb3JUQ0NEOworICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hF
eHRlbnNpb25Gb3JNaWNyb3Bob25lOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzEyNTdhMjgyNTlh
ZjVjN2Q0OGFmNzBkNGI4ZmRiNzFkMTA0MTlkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM4IEBACisjIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2Fn
ZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZD
b3VudGVkIHsKKyAgICBBZGRTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgUmVt
b3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCisgICAgU3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcik7CisgICAgU3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgR3Jh
bnRTYW5kYm94RXh0ZW5zaW9ucyhXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlRm9yVENDRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZvck1pY3JvcGhvbmUpCisgICAgUmV2b2tlU2FuZGJv
eEV4dGVuc2lvbnMoKQorI2VuZGlmCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAppbmRleCAzZjM1MzE5NGEzMmMzZTY3OWJjYTI5
ZmJlYTg1MDMxYzkyMWU0ZmM0Li5lMGQyYTU5ODU1NWI5ODk3ODU4NThhYjZjNjRhNzU0YWZkYTEx
MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cApAQCAtNDYsNiArNDYsMTAgQEAgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZp
ZXIsICp0aGlzKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNw
ZWVjaFJlY29nbml0aW9uU2VydmVyKG1faWRlbnRpZmllciksIDApOworCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIH0KIAogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBmMmYyMjgyMmM3
YjIyM2ZjYTU5Zjk1NTczZDExZGM5OWIxMDM0ODExLi5iMTIzOWM1NzdiYjg0NmE4Y2M0ZGZjZjI4
YmQyZDMwNDA0ZDNkZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc0Fzc2VydGlvbi5oIgogI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3Rv
cnkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5o
IgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKQEAgLTE5NjksNiArMTk3
MCwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmVuYWJsZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzOjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPigpOworCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9OX0lECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlOWM0N2RiNGM0NDdjMGY0YWI2MjdjMDk0YjVm
NjhkYjU2NWE5YTZjLi43ZTVhNGNhYTRjNWQyZTIzNzg4MTNlYjRmMmY0MjI4YmRlNGNjNTI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE0Miw2ICsxNDIsMTAgQEAg
c3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29u
dGV4dDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKKwogY2xhc3MgV2Vi
UHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzCiB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CkBAIC0zNjAsNiArMzY0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFdyaXRl
VG9QYXN0ZWJvYXJkQXN5bmNocm9ub3VzbHkoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUHJv
Y2VzcygpOwogICAgIH5XZWJQcm9jZXNzKCk7CkBAIC02OTMsNiArNzAxLDEwIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3ZwOURlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fdnA5
U1dEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415139</attachid>
            <date>2020-12-01 09:06:35 -0800</date>
            <delta_ts>2020-12-01 09:17:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201201090634.patch</filename>
            <type>text/plain</type>
            <size>83187</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE2YTRiYzRlYWNmMzFlMjA2YmRmYmFj
Zjk4NjUzZTYyYzJjNTcyNGYuLmE3ODdlOWY5MTljZDVlMzEzYTYwNGFiYTg3MGEzY2NiMzgxNjMx
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0z
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNl
IGFuIGV4cGVyaW1lbnRhbCBmbGFnIHNwZWNpZmljIHRvIFZQOSBwcm9maWxlIDIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0Y2Y4NWNjMjk2NDNkMGVhNTZjODQxZTdlZDliNzZlYTgzYTMxN2VlLi4xZTU1MzU5NmU2
YzAwN2E2ZGEyOGI2MTBjOGJhZWMyNTUyM2M1NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHNldCBSZWFsdGltZU1l
ZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuIAorCisg
ICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIE1vYmlsZU1pbmlCcm93c2VyLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXpl
cjo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhh
cnUub2h6ZWtpQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBNb3ZlIFNoYWRvd1Jvb3RJ
bml0IHRvIGRlZGljYXRlZCBpZGwgZmlsZSBmcm9tIEVsZW1lbnQuaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1
ZDllMmFlNmJhZTAyMzgxMTQyNmNiY2JiN2U5ZDY2ODQxYjg3ZDEuLmE3MTI2ZGI1ODA4OTc5OTJi
Zjc5ZjNlODRjYTcwMTc5ZWQ2NTM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMjAt
MTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPbiBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJv
Y2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25pdGlvbiwgVUkgcHJvY2VzcyBzaG91bGQgYXNrIHdlYiBw
cm9jZXNzIHRvCisgICAgICAgIGRvIGF1ZGlvIGNhcHR1cmUgYW5kIHNlbmQgYmFjayBkYXRhLiBU
byBpbXBsZW1lbnQgdGhpcywgd2UgaGF2ZSBpbnRyb2R1Y2VkOgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4gCisgICAgICAg
IE9uIGlPUywgd2UgdXNlIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcyBpbgorICAgICAgICBVSSBw
cm9jZXNzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6IG93biBhbmQgbWFuYWdlIGFsbCAKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZXMgaW4gd2ViIHByb2Nl
c3MuCisKKyAgICAgICAgTGlrZSBleGlzdGluZyBtZWRpYSBjYXB0dXJlIGltcGxlbWVudGF0aW9u
LCB3ZSB1c2Ugc2hhcmVkIG1lbW9yeSB0byBwYXNzIGF1ZGlvIGRhdGEgdG8gZnJvbSB3ZWIgcHJv
Y2VzcyB0byBVSQorICAgICAgICBwcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6Om1fcmluZ0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2Fw
dHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6Y29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVu
c2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTAxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgogCiAgICAgICAgIElUUCBsb2dnaW5nIG1peGVzIHVwIHRoZSBVSSBwcm9j
ZXNzIElUUCBzdGF0ZSB3aXRoIHRoZSBTZXR0aW5ncyBJVFAgc3RhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKaW5kZXggZDRkYWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJm
Mi4uNTc5YWE1M2JjOWJkODEwOGRiZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQ6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJL
aXQ6CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAg
ZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGZkODUxMjk4N2I5OWExYTgyOTVjMTA3ZTE5OWU1ZjA3NTUxNTNkMjYu
LmViYTA1ZWZkMzY2OTNhMzNkMjVjMzZkM2RhOGMxMDJmMWRjZjNjMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2
ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUy
ZmNkNDNkNzMxMDk3MmYzOGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBk
YXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURl
dmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAg
ICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVE
ZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1
MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAg
IGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmlj
ZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlv
Q2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVy
LCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJh
Y2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxi
YWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
ayksIFdURk1vdmUoc291cmNlKSk7Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJj
ZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVO
VVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5
ZjRlMGEuLjMyMDFhYzJlMzBiZTA4ZjU5Mjc1ZjQxZGNmZDRlYmY0N2JkOGI2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5j
cHAKaW5kZXggNWJlYjYwNTY0N2IzMjllMjY0ZjgzYzI0OWY1N2MyYTIwODFjMmZkNy4uYzBlMTA0
OTljOTNmNTFkNDZhN2FmZmQ0MWQ1MDgxNDA0NzNiNTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTkwLDcgKzkwLDMw
IEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgpCiAgICAgICAgICAgICBt
X3NvdXJjZSA9IG51bGxwdHI7CiAgICAgfTsKIAotICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1v
dmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSk7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgaWYgKCFjYXB0dXJl
RGV2aWNlKSB7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25F
cnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZp
Y2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAobV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pIHsKKyAgICAg
ICAgYXV0byByZWFsdGltZVNvdXJjZSA9IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uKCpjYXB0dXJlRGV2aWNlKTsKKyAgICAgICAgaWYgKCFyZWFsdGltZVNvdXJjZSkgeworICAg
ICAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIkZhaWxlZCB0byBjcmVhdGUg
cmVhbHRpbWUgc291cmNlIiB9KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZT4oKm1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0
YXRlVXBkYXRlQ2FsbGJhY2spLCBtYWtlUmVmKCpyZWFsdGltZVNvdXJjZSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKmNhcHR1cmVEZXZpY2UpOworICAg
IGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJl
c3VsdC5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fc291
cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVu
dElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFs
UmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oCmluZGV4IGU2ZjEzZmVlODRhNTMzYWYwZjA0ZTA3NjljMWFlMDk1YmU1YmZmM2YuLjZm
MTEyOWM1NDQ1YWRjY2U3NDA1NDFhOTdkZmYzNjA2YjJjYzBhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTQ1LDYgKzQ1LDEx
IEBAIHB1YmxpYzoKIAogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9jbGllbnRJZGVudGlmaWVyOyB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVz
aW5nIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFJlZlB0cjxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPihjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
Jik+OworICAgIHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0aW9uKSB7IG1fcmVhbHRpbWVNZWRp
YVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbik7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIHZvaWQgcmVzZXQoKTsKICAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoKTsKQEAg
LTUzLDYgKzU4LDEwIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOwogICAgIERlbGVn
YXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAyZTdlOWZkMmI5MWViODEwMTM0NTYwZGZmZDgwYWNkMjEwYjNmZGMwLi43
NDJlMmRlNGZmN2VjZmEwNTE2MzE1NWRjNGVhMzE3ODE1NmY5YTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzYyNSwxMyAr
MjM2MjUsNiBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKLQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovID0gewotCQkJaXNh
ID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29jb2E7Ci0J
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4
NEYgLyogcGFyc2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTI1NjYyLDcgKzI1NjU1LDYgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNw
ZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTNG
NkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUw
MDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFC
ODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJ
CQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA2Mjg0NDUzMjUwMzM1MTA3ZmQ1NDk4MjIzMmI4Yjll
YWVjOGU2OGNiLi42OGY3ZWQ4NjVjNzMxMjI5MjhjMDZjNzE3MmIzNzY5NmNiMjJjZTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKQEAgLTEwMyw2ICsxMDMsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9j
ZXNzL1NwZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRfRElS
fS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTgzLDYgKzE4NCw3IEBAIHNldChXZWJL
aXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VS
ZWNlaXZlcgogCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgogICAgIFVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlu
a1N0b3JlCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQpAQCAtMjU0LDYgKzI1
Niw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5CiAKKyAgICBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAppbmRleCBlZGI2Y2E1OTc5ZDJmNGRlZjhiMmIyZTc3M2Y5ZDY5YWU3ODZlN2U5Li44
MzFjOGYwMjhhNTZlM2EzMTE1NGVkNTYyMDJjZTAwMjJhNTIzZjU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDQsNiArMTA0LDcgQEAg
JChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXIubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2Fn
ZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CmluZGV4IDc1Njc5ZjU1ZjVhZTM5OWI1ZWFmNDc3ZjE4OTMyNTZiYzI0ODg0NGQuLmZiMmZhZDZk
NGE5YzZmYmI2MTlmMzYzYmIxNGZiMzA3NDg4YTI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjYwLDYgKzI2MCwxMiBAQCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmljYXRp
b25Db250cm9sbGVyTWVzc2FnZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGVNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCAzNzcwMWIwMWMzYzFhMmMzMDBlMWRkMmQ3MmU2Yjg1MjM3
ZjQyNGI1Li44NTI4Nzg0OTczM2QzYTgxM2JmNDQzMTA2MjU0NDI0NmYxM2E3ZjMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0gXAogICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAor
CSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TcGVlY2ggXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9TdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQgXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0xNjcsNiArMTY4
LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sIFwK
IAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbiBcCkBAIC0yMDEsNiArMjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCisJV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwK
IAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNz
L1dlYlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDkxN2YwMWJlMWM5ZjhjYWEyYWJmN2YwZjg5
MGY4OTVhM2YyZWY4Ni4uODg2ZGI2Yzg3ZmVhNmNhNzEyMzYxMTAwOGNmMDM4OWQ5OGExZWUyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC0yOTAsNiArMjkwLDggQEAgVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRp
b24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAorVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKK1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNzL1N1
c3BlbmRlZFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5j
cHAKQEAgLTYzNSw2ICs2MzcsOCBAQCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVCcm93c2VyRnVuY3MuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgQG5vLXVuaWZ5CiAKK1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dPcmlnaW5UYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJhYTVkZDIyZjZjNTg0OGZiYWExNWNkMmNkOWY3YjIwOWY0M2I4
YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTM1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmljZSkpOwor
fQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlKQorICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVy
ZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkg
fSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9tYW5hZ2VyKG1ha2VX
ZWFrUHRyKG1hbmFnZXIpKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5nQnVmZmVy
KG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlPihudWxscHRyKSkpCisjZW5kaWYKK3sKKyAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgq
dGhpcywgY2FwdHVyZURldmljZSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5yZW1vdmVTb3Vy
Y2UoKnRoaXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAg
ICAgICBtX21hbmFnZXItPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RhcnQgeyBtX2lkZW50aWZpZXIgfSwg
MCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9t
YW5hZ2VyLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0b3AgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhh
bmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
biwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2Ny
aXB0aW9uOworCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5OworICAgIGlmICghaGFu
ZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRs
ZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIExPR19FUlJP
UigiVW5hYmxlIHRvIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IGZvciByZW1vdGUgc291cmNlIik7Cisg
ICAgfQorCisgICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOworICAgIGlmICghbWVtb3J5KSB7Cisg
ICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOworICAgICAgICBzdG9yYWdlLnNldFJl
YWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxl
YXNlTm9uTnVsbCgpKTsKKyAgICBzdG9yYWdlLnNldFJlYWRPbmx5KHRydWUpOworICAgIG1fcmlu
Z0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2J1
ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVy
T2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUg
dGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2
NF90IGVuZEZyYW1lKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9idWZmZXIp
IHsKKyAgICAgICAgTE9HX0VSUk9SKCJCdWZmZXIgZm9yIHJlbW90ZSBzb3VyY2UgaXMgbnVsbCIp
OworICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmluZ0J1
ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBt
X3JpbmdCdWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1l
LnRpbWVWYWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1fYnVmZmVy
LCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TSh0aW1lKTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworICAgIFVOVVNFRF9Q
QVJBTShzdGFydEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZW5kRnJhbWUpOworI2VuZGlmCit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1v
dGVDYXB0dXJlRmFpbGVkKCkKK3sKKyAgICBjYXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9w
cGVkKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdi
YzBkMTMxZjJjZGIxNWY5MjVjZTA5MDE5NTdlZmE0ZDQ0MGNiZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBj
cmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hh
cmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKworICAgIHZvaWQgcmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMs
IHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90
ZUNhcHR1cmVGYWlsZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKKworcHJp
dmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJik7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCisgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkg
ZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmlu
YWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQorCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9tYW5hZ2VyOworICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9k
ZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBt
X3JpbmdCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVy
TGlzdD4gbV9idWZmZXI7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTRiZDdhODdhNDA4NDM5ZTQ4NzMzNTRjNTU0ZjcwZjlhZmY1MmZj
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTE2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
Cit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZSYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNl
KQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNT
RVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQo
aWRlbnRpZmllciwgJnNvdXJjZSk7CisKKyAgICBpZiAoIW1faGFzR3JhbnRlZFNhbmRib3hFeHRl
bnNpb25zKSB7CisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX2Nvbm5l
Y3Rpb24tPmdldEF1ZGl0VG9rZW4oKSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0
Lm1pY3JvcGhvbmUiX3MsIGhhbmRsZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpHcmFudFNh
bmRib3hFeHRlbnNpb25zKGhhbmRsZUZvclRDQ0QsIGhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyNl
bmRpZgorICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IHRydWU7CisgICAg
fQorCisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6QWRkU291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBz
b3VyY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAg
ICBBU1NFUlQobV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAgICBtX3Nv
dXJjZXMucmVtb3ZlKGlkZW50aWZpZXIpOworCisgICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkg
JiYgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyNpZiBFTkFCTEUoU0FOREJPWF9F
WFRFTlNJT05TKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpKTsKKyNlbmRp
ZgorICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0K
KworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlJlbW92ZVNvdXJjZShpZGVudGlmaWVyKSk7Cit9CisKKyNpZiBQTEFURk9STShD
T0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpzZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMu
Z2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnNldFN0b3JhZ2UoaXBjSGFuZGxlLmhh
bmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7Cisg
ICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVz
LCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChh
dXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2Ut
PnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1
dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+
cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit1
aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTg1OTdkNzJjMTRl
YjgwODYwNzQ2YWQ4ODI4M2I5YTZhMTJjMmUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1l
c3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgQ2FwdHVyZURldmljZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uOworI2VuZGlmCit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1l
c3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJik7CisgICAgdm9pZCBhZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYp
OworICAgIHZvaWQgcmVtb3ZlU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZSYpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRTdG9yYWdl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgdm9pZCByZW1vdGVBdWRp
b1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90ZUNhcHR1cmVG
YWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
cmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5l
Y3Rpb24ucHRyKCk7IH0KKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4K
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29u
bmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50
NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSo+IG1fc291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hF
eHRlbnNpb25zIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZTNmNmNmNjAxOTFmZTFkODEwNWVlMzQx
ZTg4YmVmM2Q0ZmY5OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hh
bmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVz
Y3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorI2VuZGlmCisKKyAgICBSZW1vdGVB
dWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1
aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICBSZW1vdGVDYXB0dXJl
RmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIp
CisgICAgUmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2
YzMyYzU0OGEwYTA5YWIwMmJjMTQ1MzQ1MjQ0Li5kZDM4NzhhZDA0OWFkYWEwZmNmNmFjNWIyMjM0
OTU1MjZmYzM3YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC05MSw2ICs5MSwxNCBAQCB2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbgogCiAgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CiAgICAgICAgIH0pOwor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAgICAgaWYgKG1fcmVhbHRpbWVNZWRpYVNv
dXJjZUNyZWF0ZUZ1bmN0aW9uKSB7CisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnNldFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpc10oYXV0byYgZGV2aWNlKSB7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKGRl
dmljZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAg
bV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCmluZGV4IGE3Zjc2ZDM4ZWU1
MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcuLjdiMDZmZjEzNzU5ZTRkODI3NzQ2YmQzOGJk
NWQ4MjQ2ZTdiM2E0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtNTcsNiArNTcsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cik7CiAgICAgdm9pZCBpbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2
b2lkIHNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pemVyOjpSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJiBmdW5jdGlvbikg
eyBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24p
OyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVx
dWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKICAgICB2b2lkIGhhbmRs
ZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllcik7CkBAIC03NSw2ICs3OSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAg
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6
ZXI7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml6ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBtX3JlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlN2Q5
Y2RmZTU1MzVjMjdjNDUwNGYwMTBhNmVkZjhlNGM1ZTNjYTZhLi5mOTA2YTliN2JkNjlkNjAyNDFl
MDBkOTE0NDQ2MzM1YmZiNjk1MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKQEAgLTM4LDYgKzM4LDkgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
TWFuYWdlci5oIgogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC0xNzAy
LDggKzE3MDUsOCBAQCBQQUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgp
IGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAg
ICBhdXRvIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0
aW9uU2VydmVyLmlzTmV3RW50cnkpOworICAgIEFTU0VSVCghbV9zcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1hcC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byYgc3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBu
dWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdlID0g
bnVsbHB0cjsKICAgICBmb3IgKGF1dG8qIHBhZ2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlmIChw
YWdlICYmIHBhZ2UtPndlYlBhZ2VJRCgpID09IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsNyArMTcx
OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFs
dWUgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0
aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0o
YXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNw
ZWVjaFJlY29nbml0aW9uU2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdl
YWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVy
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTcyMyw3ICsxNzI2LDE3IEBAIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcklkZW50CiAKICAgICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7Ci0g
ICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaXRlcmF0b3ItPnZhbHVlKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIs
ICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlcik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAm
JiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLT5zZXRS
ZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyldKGF1dG8mIGRldmljZSkgLT4gUmVmUHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgICAgIGF1dG8mIHNvdXJjZU1hbmFnZXIgPSBlbnN1cmVTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgICAgIHJldHVy
biBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShzb3Vy
Y2VNYW5hZ2VyLCBkZXZpY2UpOworICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xNzMzLDYgKzE3NDYsMjAgQEAgdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcklkZW4KICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLnJlbW92
ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3NQcm94
eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpKTsKKyAgICAg
ICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICptX3NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOworICAgIH0KKwor
ICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1dCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGMxMGIzOTQ4
ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLjc3ZDMwOWM1Y2RkNGYxM2JkYjA0M2Q3
NDE4OTk2ODM0NGJlY2IzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiAK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBlbnVtIEZvcmVncm91bmRXZWJQ
cm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBSZWZDb3VudGVyPEZvcmVncm91bmRXZWJQ
cm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlcjsKIHR5cGVkZWYg
Rm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rv
a2VuOwpAQCAtNTA1LDYgKzUwOSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZVNwZWVj
aFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CiAg
ICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgogCiAg
ICAgdm9pZCBzeXN0ZW1CZWVwKCk7CiAgICAgCkBAIC02NDMsNiArNjUwLDkgQEAgcHJpdmF0ZToK
IAogICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM1MjhmNDcxZjQ2M2RmNmMxMTMw
YTNmYjgzNzc2YmYxYjJhYmVmOTQuLjdhYTQ0ZDU4NDQ1NDViODBhMTYwMGViY2JjODQ4YTFhMzFm
NWJmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTQzMSw2ICsxNDMxLDExIEBACiAJCTkzQTg4QjMzMUJDNkU5Q0QwMEFCQTVDMiAv
KiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1
bHREYXRhLmggKi87IH07CiAJCTkzQTg4QjNCMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVzdWx0SW50ZXJu
YWwuaCAqLzsgfTsKIAkJOTNBODhCNDYxQkM4ODI5MzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1
bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4
QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggKi87IH07CisJCTkzQUI5
QjRDMjU3NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0RDI1NzU2N0RDMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDUyNTc0OTI4
RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OworCQk5M0FCOUI1
NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CisJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjUxMjU3NTg5MTEwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNCMjYxNEQyMjdEMTQ5RTAwQjk3QTc2IC8qIFN0
b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsK
IAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NTIyN0Qx
NDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsgfTsKIAkJOTNCMjYxNEYy
MjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDYyMjdEMTQ3MTAw
Qjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICovOyB9OwpAQCAtNDU4Miw2
ICs0NTg3LDIwIEBACiAJCTkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVz
dWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSGl0VGVz
dFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4QjQy
MUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJl
c3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElIaXRUZXN0UmVzdWx0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQyMjU3NDkyOEMwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQzMjU3
NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ1MjU3NDky
OEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDky
NTc0QzYxRTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlC
NEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUwMjU3
NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUyMjU3NTg5MTIw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTMyNTc1ODkxMjAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTQyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNC
MjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQjI2MTQ3MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNr
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxTdG9yYWdl
RGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg5NTEs
NiArODk3MCwxNiBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVlY2ggKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzQUI5QjRCMjU3NEM2MUYwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAq
LywKKwkJCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovLAorCQkJKTsKKwkJCXBhdGggPSBTcGVlY2g7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQk5M0IyNjE0MzIyN0QxNDMxMDBCOTdBNzYgLyogV2ViU3RvcmFnZSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MTU1LDYgKzkxODQs
NyBAQAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAogCQkJCTMx
MDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywKIAkJCQkx
QTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKKwkJCQk5M0FCOUI0ODI1NzRD
NUNFMDA5OEIxMEUgLyogU3BlZWNoICovLAogCQkJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAv
KiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29udGVu
dCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRpb24g
Ki8sCkBAIC05MzY4LDYgKzkzOTgsMTEgQEAKIAkJCQk5M0Q2QjdCMDI1NTI2OEExMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOTNENkI3
QjIyNTUyNjhBMjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIu
aCAqLywKIAkJCQk5M0Q2QjdBRjI1NTI2OEExMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTkzQUI5QjQzMjU3NDkyOEMwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCTkz
QUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJ
OTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwICovLAogCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKQEAgLTEwNTEyLDYgKzEw
NTQ3LDEyIEBACiAJCQkJMUREMkE2NzIyNTYyMzI0RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFERDJBNjczMjU2MjMyNEYw
MEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCAqLywKIAkJCQkx
REQyQTY3MTI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3Nh
Z2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKKwkJCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNBQjlCNTAyNTc1ODkx
MTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTMyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJ
CTkzQUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJOTNENkI3ODEy
NTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlcy5oICovLAogCQkJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTE1ODAsNiAr
MTE2MjEsOSBAQAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6YXRp
b25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdCNTI1NTI2OEQ3MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNENkI3QjQyNTUyNjhENTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjRDMjU3NTYzRjMwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0RDI1
NzU2N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzIyNTRCQjUxOTAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc4
NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODUyNTRDQ0Q0MzAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMzQ3LDYg
KzEzMzkxLDggQEAKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxhdGVkSW5w
dXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNEMThCRDJBNjgwMDVD
MTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFERDJBNjc0MjU2MjMyQTEwMEZGN0I2RiAvKiBTb3VyY2VCdWZm
ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkz
QUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzQUI5
QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
RDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMzNERFRDE2REU4Rjg4MDA2QThFMzgg
LyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY3NDU5YjJmMzM4Mzk0OTM5
Y2NhODNlYWY1Mjk4NGRkZTQyYTczOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHAKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4K
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIDogcHJp
dmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHJpdmF0
ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAg
LCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAgICAgLCBt
X3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUo
Y29ubmVjdGlvbikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICwgbV9yaW5nQnVmZmVy
KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKSkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgbV9z
b3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5SZWFsdGltZU1lZGlhU291cmNlKCkK
KyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRl
KCk7CisjZW5kaWYKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIo
KnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0K
KworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0YXJ0KCk7Cisg
ICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5zdG9wKCk7
CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7CisgICAgfQorI2VuZGlm
CisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwKKyAgICB7CisgICAg
ICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRlbnRpZmllciksIDApOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAgICB9CisKKyAg
ICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsCisgICAgeworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlv
bikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24o
KS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwor
ICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3Jp
cHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5z
YW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKG1fZGVz
Y3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAgICAg
IH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsK
KyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4o
YXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAg
ICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJhbWU7Cisg
ICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5k
RnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1l
LCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAg
ICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGRlc2Ny
aXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgor
ICAgIH0KKworICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBm
aW5hbAorICAgIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAg
ICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUs
IFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlNldFN0b3JhZ2UobV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6OklQQ0hh
bmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgIDAgfSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZy
YW1lcyksIDApOworICAgIH0KKworICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkgZmluYWwK
KyAgICB7CisgICAgICAgIGF1dG8gYnVmZmVyU2l6ZSA9IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOworICAgICAgICBpZiAoQXVkaW9TZXNzaW9uOjpzaGFy
ZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVyU2l6ZSgpID4gYnVmZmVyU2l6ZSkKKyAgICAgICAg
ICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUo
YnVmZmVyU2l6ZSk7CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENh
dGVnb3J5KEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCwgUm91dGVTaGFyaW5nUG9saWN5OjpE
ZWZhdWx0KTsKKyAgICB9CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+
IG1fc291cmNlOworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBp
bnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBtX2Rlc2NyaXB0aW9uIHsgfTsKKyNlbmRpZgorfTsKKworU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJ
T05TKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OmdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJv
eEhhbmRsZUZvclRDQ0QsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVG
b3JNaWNyb3Bob25lKQoreworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yVENDRCkpOworICAgIGlm
ICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciB0Y2NkIik7CisgICAgZWxzZQorICAgICAg
ICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NELT5jb25zdW1lKCk7CisKKyAgICBtX3NhbmRib3hF
eHRlbnNpb25Gb3JNaWNyb3Bob25lID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUo
c2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lv
bkZvck1pY3JvcGhvbmUpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5k
Ym94IGV4dGVuc2lvbiBmb3IgbWljcm9waG9uZSIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5k
Ym94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+Y29uc3VtZSgpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNp
b25zKCkKK3sKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCkgeworICAgICAgICBt
X3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NELT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0
ZW5zaW9uRm9yVENDRCA9IG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1fc2FuZGJveEV4dGVu
c2lvbkZvck1pY3JvcGhvbmUpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9w
aG9uZS0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUg
PSBudWxscHRyOworICAgIH0KK30KKworI2VuZGlmCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmIGRldmljZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2UpOworICAgIGlmICghcmVz
dWx0KSB7CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSByZWFsdGltZSBzb3Vy
Y2UiKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZChpZGVudGlmaWVyKSwg
MCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250
YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5p
cXVlPFJlYWx0aW1lTWVkaWFTb3VyY2U+KGlkZW50aWZpZXIsIHJlc3VsdC5zb3VyY2UoKSwgbWFr
ZVJlZigqbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NvdXJj
ZXMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2Vz
LmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3AoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0
byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0
b3AoKTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7
Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MWY1YjE5
ZTM3MGY1YmUwYTQ2ODRkOWUxY2QyN2UwMjcwYzA5MDdkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTYW5kYm94RXh0
ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBw
cml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpOworICAgIH5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7
CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIHZvaWQgZ3JhbnRTYW5kYm94
RXh0ZW5zaW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJiYpOworICAgIHZvaWQgcmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKTsKKyNlbmRpZgor
CisgICAgdm9pZCBhZGRTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdGFy
dChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9w
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpN
ZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIGNvbnN0IGZpbmFsOworCisgICAgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKKyAgICBm
cmllbmQgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4+IG1fc291cmNlczsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisg
ICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Q7Cisg
ICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhv
bmU7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTI1N2EyODI1OWFmNWM3ZDQ4YWY3MGQ0YjhmZGI3
MWQxMDQxOWRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCkBAIC0wLDAgKzEsMzggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEFkZFNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSkKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBTdGFydChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICBTdG9w
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworCisj
aWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICBHcmFudFNhbmRib3hFeHRlbnNpb25z
KFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVG
b3JUQ0NELCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlRm9yTWljcm9waG9uZSkKKyAgICBSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCisjZW5k
aWYKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uY3BwCmluZGV4IDNmMzUzMTk0YTMyYzNlNjc5YmNhMjlmYmVhODUwMzFjOTIxZTRmYzQu
LmUwZDJhNTk4NTU1Yjk4OTc4NTg1OGFiNmM2NGE3NTRhZmRhMTEwOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCkBAIC00Niw2ICs0NiwxMCBA
QCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbgogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOwogICAgIHNl
bmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIobV9pZGVudGlmaWVyKSwgMCk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgogfQogCiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246On5XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGYyZjIyODIyYzdiMjIzZmNhNTlmOTU1NzNkMTFk
Yzk5YjEwMzQ4MTEuLmIxMjM5YzU3N2JiODQ2YThjYzRkZmNmMjhiZDJkMzA0MDRkM2RmNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAK
ICNpbmNsdWRlICJQcm9jZXNzQXNzZXJ0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNz
aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJT
dG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eS5oIgpAQCAtMTk2OSw2ICsxOTcwLDE2IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6ZW5hYmxlVlA5U1dEZWNvZGVyKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdl
YlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI+KCk7CisKKyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3Vu
ZGVmIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCmluZGV4IGU5YzQ3ZGI0YzQ0N2MwZjRhYjYyN2MwOTRiNWY2OGRiNTY1YTlhNmMuLjdlNWE0
Y2FhNGM1ZDJlMjM3ODgxM2ViNGYyZjQyMjhiZGU0Y2M1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaApAQCAtMTQyLDYgKzE0MiwxMCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1
eGlsaWFyeVByb2Nlc3MKIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM2MCw2
ICszNjQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hy
b25vdXNseShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7CiAgICAgfldlYlBy
b2Nlc3MoKTsKQEAgLTY5Myw2ICs3MDEsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdnA5RGVj
b2RlckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV92cDlTV0RlY29kZXJFbmFibGVkIHsg
ZmFsc2UgfTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9z
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415141</attachid>
            <date>2020-12-01 09:17:05 -0800</date>
            <delta_ts>2020-12-01 10:00:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201201091704.patch</filename>
            <type>text/plain</type>
            <size>83217</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE2YTRiYzRlYWNmMzFlMjA2YmRmYmFj
Zjk4NjUzZTYyYzJjNTcyNGYuLmE3ODdlOWY5MTljZDVlMzEzYTYwNGFiYTg3MGEzY2NiMzgxNjMx
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0z
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNl
IGFuIGV4cGVyaW1lbnRhbCBmbGFnIHNwZWNpZmljIHRvIFZQOSBwcm9maWxlIDIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0Y2Y4NWNjMjk2NDNkMGVhNTZjODQxZTdlZDliNzZlYTgzYTMxN2VlLi4xZTU1MzU5NmU2
YzAwN2E2ZGEyOGI2MTBjOGJhZWMyNTUyM2M1NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHNldCBSZWFsdGltZU1l
ZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuIAorCisg
ICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIE1vYmlsZU1pbmlCcm93c2VyLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXpl
cjo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhh
cnUub2h6ZWtpQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBNb3ZlIFNoYWRvd1Jvb3RJ
bml0IHRvIGRlZGljYXRlZCBpZGwgZmlsZSBmcm9tIEVsZW1lbnQuaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1
ZDllMmFlNmJhZTAyMzgxMTQyNmNiY2JiN2U5ZDY2ODQxYjg3ZDEuLmE3MTI2ZGI1ODA4OTc5OTJi
Zjc5ZjNlODRjYTcwMTc5ZWQ2NTM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMjAt
MTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPbiBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJv
Y2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25pdGlvbiwgVUkgcHJvY2VzcyBzaG91bGQgYXNrIHdlYiBw
cm9jZXNzIHRvCisgICAgICAgIGRvIGF1ZGlvIGNhcHR1cmUgYW5kIHNlbmQgYmFjayBkYXRhLiBU
byBpbXBsZW1lbnQgdGhpcywgd2UgaGF2ZSBpbnRyb2R1Y2VkOgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4gCisgICAgICAg
IE9uIGlPUywgd2UgdXNlIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcyBpbgorICAgICAgICBVSSBw
cm9jZXNzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6IG93biBhbmQgbWFuYWdlIGFsbCAKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZXMgaW4gd2ViIHByb2Nl
c3MuCisKKyAgICAgICAgTGlrZSBleGlzdGluZyBtZWRpYSBjYXB0dXJlIGltcGxlbWVudGF0aW9u
LCB3ZSB1c2Ugc2hhcmVkIG1lbW9yeSB0byBwYXNzIGF1ZGlvIGRhdGEgdG8gZnJvbSB3ZWIgcHJv
Y2VzcyB0byBVSQorICAgICAgICBwcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6Om1fcmluZ0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2Fw
dHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6Y29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVu
c2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTAxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgogCiAgICAgICAgIElUUCBsb2dnaW5nIG1peGVzIHVwIHRoZSBVSSBwcm9j
ZXNzIElUUCBzdGF0ZSB3aXRoIHRoZSBTZXR0aW5ncyBJVFAgc3RhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKaW5kZXggZDRkYWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJm
Mi4uNTc5YWE1M2JjOWJkODEwOGRiZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQ6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJL
aXQ6CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAg
ZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGZkODUxMjk4N2I5OWExYTgyOTVjMTA3ZTE5OWU1ZjA3NTUxNTNkMjYu
LmViYTA1ZWZkMzY2OTNhMzNkMjVjMzZkM2RhOGMxMDJmMWRjZjNjMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2
ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUy
ZmNkNDNkNzMxMDk3MmYzOGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBk
YXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURl
dmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAg
ICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVE
ZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1
MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAg
IGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmlj
ZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlv
Q2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVy
LCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJh
Y2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxi
YWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
ayksIFdURk1vdmUoc291cmNlKSk7Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJj
ZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVO
VVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5
ZjRlMGEuLjMyMDFhYzJlMzBiZTA4ZjU5Mjc1ZjQxZGNmZDRlYmY0N2JkOGI2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5j
cHAKaW5kZXggNWJlYjYwNTY0N2IzMjllMjY0ZjgzYzI0OWY1N2MyYTIwODFjMmZkNy4uYzBlMTA0
OTljOTNmNTFkNDZhN2FmZmQ0MWQ1MDgxNDA0NzNiNTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTkwLDcgKzkwLDMw
IEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgpCiAgICAgICAgICAgICBt
X3NvdXJjZSA9IG51bGxwdHI7CiAgICAgfTsKIAotICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1v
dmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSk7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgaWYgKCFjYXB0dXJl
RGV2aWNlKSB7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25F
cnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZp
Y2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAobV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pIHsKKyAgICAg
ICAgYXV0byByZWFsdGltZVNvdXJjZSA9IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uKCpjYXB0dXJlRGV2aWNlKTsKKyAgICAgICAgaWYgKCFyZWFsdGltZVNvdXJjZSkgeworICAg
ICAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIkZhaWxlZCB0byBjcmVhdGUg
cmVhbHRpbWUgc291cmNlIiB9KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZT4oKm1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0
YXRlVXBkYXRlQ2FsbGJhY2spLCBtYWtlUmVmKCpyZWFsdGltZVNvdXJjZSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKmNhcHR1cmVEZXZpY2UpOworICAg
IGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJl
c3VsdC5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fc291
cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVu
dElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFs
UmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oCmluZGV4IGU2ZjEzZmVlODRhNTMzYWYwZjA0ZTA3NjljMWFlMDk1YmU1YmZmM2YuLjZm
MTEyOWM1NDQ1YWRjY2U3NDA1NDFhOTdkZmYzNjA2YjJjYzBhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTQ1LDYgKzQ1LDEx
IEBAIHB1YmxpYzoKIAogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9jbGllbnRJZGVudGlmaWVyOyB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVz
aW5nIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFJlZlB0cjxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPihjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
Jik+OworICAgIHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0aW9uKSB7IG1fcmVhbHRpbWVNZWRp
YVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbik7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIHZvaWQgcmVzZXQoKTsKICAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoKTsKQEAg
LTUzLDYgKzU4LDEwIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOwogICAgIERlbGVn
YXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAyZTdlOWZkMmI5MWViODEwMTM0NTYwZGZmZDgwYWNkMjEwYjNmZGMwLi43
NDJlMmRlNGZmN2VjZmEwNTE2MzE1NWRjNGVhMzE3ODE1NmY5YTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzYyNSwxMyAr
MjM2MjUsNiBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKLQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovID0gewotCQkJaXNh
ID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29jb2E7Ci0J
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4
NEYgLyogcGFyc2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTI1NjYyLDcgKzI1NjU1LDYgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNw
ZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTNG
NkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUw
MDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFC
ODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJ
CQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA2Mjg0NDUzMjUwMzM1MTA3ZmQ1NDk4MjIzMmI4Yjll
YWVjOGU2OGNiLi42OGY3ZWQ4NjVjNzMxMjI5MjhjMDZjNzE3MmIzNzY5NmNiMjJjZTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKQEAgLTEwMyw2ICsxMDMsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9j
ZXNzL1NwZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRfRElS
fS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTgzLDYgKzE4NCw3IEBAIHNldChXZWJL
aXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VS
ZWNlaXZlcgogCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgogICAgIFVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlu
a1N0b3JlCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQpAQCAtMjU0LDYgKzI1
Niw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5CiAKKyAgICBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAppbmRleCBlZGI2Y2E1OTc5ZDJmNGRlZjhiMmIyZTc3M2Y5ZDY5YWU3ODZlN2U5Li44
MzFjOGYwMjhhNTZlM2EzMTE1NGVkNTYyMDJjZTAwMjJhNTIzZjU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDQsNiArMTA0LDcgQEAg
JChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXIubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2Fn
ZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CmluZGV4IDc1Njc5ZjU1ZjVhZTM5OWI1ZWFmNDc3ZjE4OTMyNTZiYzI0ODg0NGQuLmZiMmZhZDZk
NGE5YzZmYmI2MTlmMzYzYmIxNGZiMzA3NDg4YTI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjYwLDYgKzI2MCwxMiBAQCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmljYXRp
b25Db250cm9sbGVyTWVzc2FnZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGVNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCAzNzcwMWIwMWMzYzFhMmMzMDBlMWRkMmQ3MmU2Yjg1MjM3
ZjQyNGI1Li44NTI4Nzg0OTczM2QzYTgxM2JmNDQzMTA2MjU0NDI0NmYxM2E3ZjMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0gXAogICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAor
CSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TcGVlY2ggXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9TdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQgXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0xNjcsNiArMTY4
LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sIFwK
IAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbiBcCkBAIC0yMDEsNiArMjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCisJV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwK
IAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNz
L1dlYlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDkxN2YwMWJlMWM5ZjhjYWEyYWJmN2YwZjg5
MGY4OTVhM2YyZWY4Ni4uODg2ZGI2Yzg3ZmVhNmNhNzEyMzYxMTAwOGNmMDM4OWQ5OGExZWUyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC0yOTAsNiArMjkwLDggQEAgVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRp
b24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAorVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKK1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNzL1N1
c3BlbmRlZFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5j
cHAKQEAgLTYzNSw2ICs2MzcsOCBAQCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVCcm93c2VyRnVuY3MuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgQG5vLXVuaWZ5CiAKK1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dPcmlnaW5UYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJhYTVkZDIyZjZjNTg0OGZiYWExNWNkMmNkOWY3YjIwOWY0M2I4
YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTM1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmljZSkpOwor
fQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlKQorICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVy
ZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkg
fSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9tYW5hZ2VyKG1ha2VX
ZWFrUHRyKG1hbmFnZXIpKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5nQnVmZmVy
KG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlPihudWxscHRyKSkpCisjZW5kaWYKK3sKKyAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgq
dGhpcywgY2FwdHVyZURldmljZSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5yZW1vdmVTb3Vy
Y2UoKnRoaXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAg
ICAgICBtX21hbmFnZXItPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RhcnQgeyBtX2lkZW50aWZpZXIgfSwg
MCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9t
YW5hZ2VyLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0b3AgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhh
bmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
biwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2Ny
aXB0aW9uOworCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5OworICAgIGlmICghaGFu
ZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRs
ZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIExPR19FUlJP
UigiVW5hYmxlIHRvIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IGZvciByZW1vdGUgc291cmNlIik7Cisg
ICAgfQorCisgICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOworICAgIGlmICghbWVtb3J5KSB7Cisg
ICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOworICAgICAgICBzdG9yYWdlLnNldFJl
YWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxl
YXNlTm9uTnVsbCgpKTsKKyAgICBzdG9yYWdlLnNldFJlYWRPbmx5KHRydWUpOworICAgIG1fcmlu
Z0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2J1
ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVy
T2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUg
dGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2
NF90IGVuZEZyYW1lKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9idWZmZXIp
IHsKKyAgICAgICAgTE9HX0VSUk9SKCJCdWZmZXIgZm9yIHJlbW90ZSBzb3VyY2UgaXMgbnVsbCIp
OworICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmluZ0J1
ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBt
X3JpbmdCdWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1l
LnRpbWVWYWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1fYnVmZmVy
LCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TSh0aW1lKTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworICAgIFVOVVNFRF9Q
QVJBTShzdGFydEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZW5kRnJhbWUpOworI2VuZGlmCit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1v
dGVDYXB0dXJlRmFpbGVkKCkKK3sKKyAgICBjYXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9w
cGVkKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdi
YzBkMTMxZjJjZGIxNWY5MjVjZTA5MDE5NTdlZmE0ZDQ0MGNiZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBj
cmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hh
cmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKworICAgIHZvaWQgcmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMs
IHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90
ZUNhcHR1cmVGYWlsZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKKworcHJp
dmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJik7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCisgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkg
ZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmlu
YWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQorCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9tYW5hZ2VyOworICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9k
ZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBt
X3JpbmdCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVy
TGlzdD4gbV9idWZmZXI7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTRiZDdhODdhNDA4NDM5ZTQ4NzMzNTRjNTU0ZjcwZjlhZmY1MmZj
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTE2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
Cit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZSYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNl
KQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNT
RVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQo
aWRlbnRpZmllciwgJnNvdXJjZSk7CisKKyAgICBpZiAoIW1faGFzR3JhbnRlZFNhbmRib3hFeHRl
bnNpb25zKSB7CisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX2Nvbm5l
Y3Rpb24tPmdldEF1ZGl0VG9rZW4oKSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0
Lm1pY3JvcGhvbmUiX3MsIGhhbmRsZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpHcmFudFNh
bmRib3hFeHRlbnNpb25zKGhhbmRsZUZvclRDQ0QsIGhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyNl
bmRpZgorICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IHRydWU7CisgICAg
fQorCisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6QWRkU291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBz
b3VyY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAg
ICBBU1NFUlQobV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAgICBtX3Nv
dXJjZXMucmVtb3ZlKGlkZW50aWZpZXIpOworCisgICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkg
JiYgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyNpZiBFTkFCTEUoU0FOREJPWF9F
WFRFTlNJT05TKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpKTsKKyNlbmRp
ZgorICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0K
KworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlJlbW92ZVNvdXJjZShpZGVudGlmaWVyKSk7Cit9CisKKyNpZiBQTEFURk9STShD
T0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpzZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMu
Z2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnNldFN0b3JhZ2UoaXBjSGFuZGxlLmhh
bmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7Cisg
ICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVz
LCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChh
dXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2Ut
PnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1
dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+
cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit1
aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTg1OTdkNzJjMTRl
YjgwODYwNzQ2YWQ4ODI4M2I5YTZhMTJjMmUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1l
c3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgQ2FwdHVyZURldmljZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uOworI2VuZGlmCit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1l
c3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJik7CisgICAgdm9pZCBhZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYp
OworICAgIHZvaWQgcmVtb3ZlU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZSYpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRTdG9yYWdl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgdm9pZCByZW1vdGVBdWRp
b1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90ZUNhcHR1cmVG
YWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
cmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5l
Y3Rpb24ucHRyKCk7IH0KKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4K
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29u
bmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50
NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSo+IG1fc291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hF
eHRlbnNpb25zIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZTNmNmNmNjAxOTFmZTFkODEwNWVlMzQx
ZTg4YmVmM2Q0ZmY5OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hh
bmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVz
Y3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorI2VuZGlmCisKKyAgICBSZW1vdGVB
dWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1
aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICBSZW1vdGVDYXB0dXJl
RmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIp
CisgICAgUmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2
YzMyYzU0OGEwYTA5YWIwMmJjMTQ1MzQ1MjQ0Li5kZDM4NzhhZDA0OWFkYWEwZmNmNmFjNWIyMjM0
OTU1MjZmYzM3YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC05MSw2ICs5MSwxNCBAQCB2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbgogCiAgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CiAgICAgICAgIH0pOwor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAgICAgaWYgKG1fcmVhbHRpbWVNZWRpYVNv
dXJjZUNyZWF0ZUZ1bmN0aW9uKSB7CisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnNldFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpc10oYXV0byYgZGV2aWNlKSB7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKGRl
dmljZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAg
bV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCmluZGV4IGE3Zjc2ZDM4ZWU1
MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcuLjdiMDZmZjEzNzU5ZTRkODI3NzQ2YmQzOGJk
NWQ4MjQ2ZTdiM2E0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtNTcsNiArNTcsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cik7CiAgICAgdm9pZCBpbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2
b2lkIHNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pemVyOjpSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJiBmdW5jdGlvbikg
eyBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24p
OyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVx
dWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKICAgICB2b2lkIGhhbmRs
ZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllcik7CkBAIC03NSw2ICs3OSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAg
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6
ZXI7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml6ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBtX3JlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlN2Q5
Y2RmZTU1MzVjMjdjNDUwNGYwMTBhNmVkZjhlNGM1ZTNjYTZhLi5mOTA2YTliN2JkNjlkNjAyNDFl
MDBkOTE0NDQ2MzM1YmZiNjk1MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKQEAgLTM4LDYgKzM4LDkgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
TWFuYWdlci5oIgogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC0xNzAy
LDggKzE3MDUsOCBAQCBQQUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgp
IGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAg
ICBhdXRvIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0
aW9uU2VydmVyLmlzTmV3RW50cnkpOworICAgIEFTU0VSVCghbV9zcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1hcC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byYgc3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBu
dWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdlID0g
bnVsbHB0cjsKICAgICBmb3IgKGF1dG8qIHBhZ2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlmIChw
YWdlICYmIHBhZ2UtPndlYlBhZ2VJRCgpID09IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsNyArMTcx
OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFs
dWUgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0
aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0o
YXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNw
ZWVjaFJlY29nbml0aW9uU2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdl
YWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVy
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTcyMyw3ICsxNzI2LDE3IEBAIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcklkZW50CiAKICAgICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7Ci0g
ICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaXRlcmF0b3ItPnZhbHVlKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIs
ICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlcik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAm
JiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLT5zZXRS
ZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyldKGF1dG8mIGRldmljZSkgLT4gUmVmUHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgICAgIGF1dG8mIHNvdXJjZU1hbmFnZXIgPSBlbnN1cmVTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgICAgIHJldHVy
biBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShzb3Vy
Y2VNYW5hZ2VyLCBkZXZpY2UpOworICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xNzMzLDYgKzE3NDYsMjAgQEAgdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcklkZW4KICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLnJlbW92
ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3NQcm94
eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpKTsKKyAgICAg
ICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICptX3NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOworICAgIH0KKwor
ICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1dCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGMxMGIzOTQ4
ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLjc3ZDMwOWM1Y2RkNGYxM2JkYjA0M2Q3
NDE4OTk2ODM0NGJlY2IzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiAK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBlbnVtIEZvcmVncm91bmRXZWJQ
cm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBSZWZDb3VudGVyPEZvcmVncm91bmRXZWJQ
cm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlcjsKIHR5cGVkZWYg
Rm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rv
a2VuOwpAQCAtNTA1LDYgKzUwOSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZVNwZWVj
aFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CiAg
ICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgogCiAg
ICAgdm9pZCBzeXN0ZW1CZWVwKCk7CiAgICAgCkBAIC02NDMsNiArNjUwLDkgQEAgcHJpdmF0ZToK
IAogICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM1MjhmNDcxZjQ2M2RmNmMxMTMw
YTNmYjgzNzc2YmYxYjJhYmVmOTQuLjdhYTQ0ZDU4NDQ1NDViODBhMTYwMGViY2JjODQ4YTFhMzFm
NWJmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTQzMSw2ICsxNDMxLDExIEBACiAJCTkzQTg4QjMzMUJDNkU5Q0QwMEFCQTVDMiAv
KiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1
bHREYXRhLmggKi87IH07CiAJCTkzQTg4QjNCMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVzdWx0SW50ZXJu
YWwuaCAqLzsgfTsKIAkJOTNBODhCNDYxQkM4ODI5MzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1
bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4
QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggKi87IH07CisJCTkzQUI5
QjRDMjU3NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0RDI1NzU2N0RDMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDUyNTc0OTI4
RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OworCQk5M0FCOUI1
NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CisJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjUxMjU3NTg5MTEwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNCMjYxNEQyMjdEMTQ5RTAwQjk3QTc2IC8qIFN0
b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsK
IAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NTIyN0Qx
NDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsgfTsKIAkJOTNCMjYxNEYy
MjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDYyMjdEMTQ3MTAw
Qjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICovOyB9OwpAQCAtNDU4Miw2
ICs0NTg3LDIwIEBACiAJCTkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVz
dWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSGl0VGVz
dFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4QjQy
MUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJl
c3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElIaXRUZXN0UmVzdWx0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQyMjU3NDkyOEMwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQzMjU3
NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ1MjU3NDky
OEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDky
NTc0QzYxRTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlC
NEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUwMjU3
NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUyMjU3NTg5MTIw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTMyNTc1ODkxMjAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTQyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNC
MjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQjI2MTQ3MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNr
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxTdG9yYWdl
RGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg5NTEs
NiArODk3MCwxNiBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVlY2ggKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzQUI5QjRCMjU3NEM2MUYwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAq
LywKKwkJCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovLAorCQkJKTsKKwkJCXBhdGggPSBTcGVlY2g7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQk5M0IyNjE0MzIyN0QxNDMxMDBCOTdBNzYgLyogV2ViU3RvcmFnZSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MTU1LDYgKzkxODQs
NyBAQAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAogCQkJCTMx
MDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywKIAkJCQkx
QTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKKwkJCQk5M0FCOUI0ODI1NzRD
NUNFMDA5OEIxMEUgLyogU3BlZWNoICovLAogCQkJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAv
KiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29udGVu
dCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRpb24g
Ki8sCkBAIC05MzY4LDYgKzkzOTgsMTEgQEAKIAkJCQk5M0Q2QjdCMDI1NTI2OEExMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOTNENkI3
QjIyNTUyNjhBMjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIu
aCAqLywKIAkJCQk5M0Q2QjdBRjI1NTI2OEExMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTkzQUI5QjQzMjU3NDkyOEMwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCTkz
QUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJ
OTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwICovLAogCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKQEAgLTEwNTEyLDYgKzEw
NTQ3LDEyIEBACiAJCQkJMUREMkE2NzIyNTYyMzI0RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFERDJBNjczMjU2MjMyNEYw
MEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCAqLywKIAkJCQkx
REQyQTY3MTI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3Nh
Z2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKKwkJCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNBQjlCNTAyNTc1ODkx
MTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTMyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJ
CTkzQUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJOTNENkI3ODEy
NTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlcy5oICovLAogCQkJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTE1ODAsNiAr
MTE2MjEsOSBAQAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6YXRp
b25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdCNTI1NTI2OEQ3MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNENkI3QjQyNTUyNjhENTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjRDMjU3NTYzRjMwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0RDI1
NzU2N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzIyNTRCQjUxOTAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc4
NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODUyNTRDQ0Q0MzAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMzQ3LDYg
KzEzMzkxLDggQEAKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxhdGVkSW5w
dXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNEMThCRDJBNjgwMDVD
MTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFERDJBNjc0MjU2MjMyQTEwMEZGN0I2RiAvKiBTb3VyY2VCdWZm
ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkz
QUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzQUI5
QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
RDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMzNERFRDE2REU4Rjg4MDA2QThFMzgg
LyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y5ZWI5MWQyNjI1MGU3NzNl
NjYwNzlkODk1MTdkMzkwZDNiNDhiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHAKQEAgLTAsMCArMSwyMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4K
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIDogcHJp
dmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHJpdmF0
ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNs
aWVudAorI2VuZGlmCit7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3Vy
Y2UsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKKyAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisg
ICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMp
KSkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsK
KyAgICAgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0K
KworICAgIH5SZWFsdGltZU1lZGlhU291cmNlKCkKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisjZW5kaWYKKyAgICAgICAgbV9zb3Vy
Y2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+
cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsK
KyAgICAgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAg
ICB7CisgICAgICAgIG1fc291cmNlLT5zdG9wKCk7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVm
ZmVyLnN0b3JhZ2UoKSk7CisgICAgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3Vy
Y2VTdG9wcGVkKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURp
ZEZhaWwoKSkgeworICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0
dXJlRmFpbGVkKG1faWRlbnRpZmllciksIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZCht
X2lkZW50aWZpZXIpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0Rh
dGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVt
YmVyT2ZGcmFtZXMpIGZpbmFsCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBp
ZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRl
c2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRp
b246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9
ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlv
bi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251
bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAg
ICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24o
KSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2Vi
QXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3Jl
KGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9m
RnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsK
KyAgICAgICAgdWludDY0X3QgZW5kRnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJy
ZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRp
bWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAg
ICAgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRh
KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BB
UkFNKG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorICAgIH0KKworICAgIHZvaWQgc3RvcmFnZUNo
YW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbAorICAgIHsKKyAgICAgICAgU2hhcmVk
TWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAg
IHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6
UmVhZE9ubHkpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNldFN0b3JhZ2UobV9p
ZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgIDAg
fSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyksIDApOworICAgIH0KKworICAgIHZv
aWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkgZmluYWwKKyAgICB7CisgICAgICAgIGF1dG8gYnVmZmVy
U2l6ZSA9IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOwor
ICAgICAgICBpZiAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVy
U2l6ZSgpID4gYnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7CisgICAgICAgIEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6UGxheUFu
ZFJlY29yZCwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyAgICB9CisKKyAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVm
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAw
IH07CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVy
OworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyNlbmRp
ZgorfTsKKworU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
ICp0aGlzKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9
CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZvclRDQ0QsIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JNaWNyb3Bob25lKQoreworICAgIG1fc2Fu
ZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShz
YW5kYm94SGFuZGxlRm9yVENDRCkpOworICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yVEND
RCkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9u
IGZvciB0Y2NkIik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NE
LT5jb25zdW1lKCk7CisKKyAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUp
KTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUpCisgICAgICAgIExP
R19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgbWljcm9waG9u
ZSIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+
Y29uc3VtZSgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKK3sKKyAgICBpZiAobV9zYW5kYm94
RXh0ZW5zaW9uRm9yVENDRCkgeworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NELT5y
ZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9IG51bGxwdHI7Cisg
ICAgfQorCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUpIHsKKyAgICAg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+cmV2b2tlKCk7CisgICAgICAgIG1f
c2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBudWxscHRyOworICAgIH0KK30KKworI2Vu
ZGlmCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
YWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSkKK3sKKyAgICBhdXRvIHJl
c3VsdCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRp
YVNvdXJjZShkZXZpY2UpOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIExPR19FUlJPUigi
RmFpbGVkIHRvIGNyZWF0ZSByZWFsdGltZSBzb3VyY2UiKTsKKyAgICAgICAgc2VuZChNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVt
b3RlQ2FwdHVyZUZhaWxlZChpZGVudGlmaWVyKSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9z
b3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2U+KGlk
ZW50aWZpZXIsIHJlc3VsdC5zb3VyY2UoKSwgbWFrZVJlZigqbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpyZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NvdXJjZXMucmVtb3ZlKGlkZW50aWZpZXIpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAg
c291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OnN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlk
ZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0b3AoKTsKK30KKworSVBDOjpDb25uZWN0aW9u
KiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlv
bklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MWY1YjE5ZTM3MGY1YmUwYTQ2ODRkOWUxY2QyN2UwMjcw
YzA5MDdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCAr
MSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VT
ZW5kZXIuaCIKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBDYXB0dXJlRGV2aWNlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwg
cHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworICAgIH5TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRF
TlNJT05TKQorICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJiwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpOworICAgIHZvaWQgcmV2b2tl
U2FuZGJveEV4dGVuc2lvbnMoKTsKKyNlbmRpZgorCisgICAgdm9pZCBhZGRTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyKTsKKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4K
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29u
bmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50
NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgY2xh
c3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fc291cmNlczsKKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+
IG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Q7CisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+
IG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmU7CisjZW5kaWYKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MTI1N2EyODI1OWFmNWM3ZDQ4YWY3MGQ0YjhmZGI3MWQxMDQxOWRmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzggQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmlj
ZSkKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKKyAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKTsKKyAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9O
UykKKyAgICBHcmFudFNhbmRib3hFeHRlbnNpb25zKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVGb3JUQ0NELCBXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yTWljcm9waG9uZSkKKyAgICBS
ZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCisjZW5kaWYKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCmluZGV4IDNmMzUzMTk0YTMy
YzNlNjc5YmNhMjlmYmVhODUwMzFjOTIxZTRmYzQuLmUwZDJhNTk4NTU1Yjk4OTc4NTg1OGFiNmM2
NGE3NTRhZmRhMTEwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwCkBAIC00Niw2ICs0NiwxMCBAQCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbgog
ewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1faWRlbnRpZmllciwgKnRoaXMpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7CisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgog
fQogCiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4
IGYyZjIyODIyYzdiMjIzZmNhNTlmOTU1NzNkMTFkYzk5YjEwMzQ4MTEuLmIxMjM5YzU3N2JiODQ2
YThjYzRkZmNmMjhiZDJkMzA0MDRkM2RmNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQcm9jZXNzQXNzZXJ0aW9u
LmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVn
YWN5Q0RNRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUg
IlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgpAQCAt
MTk2OSw2ICsxOTcwLDE2IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZW5hYmxlVlA5U1dEZWNvZGVyKCkK
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICghbV9zcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKQorICAgICAgICBtX3NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+KCk7CisKKyAgICByZXR1cm4gKm1f
c3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKyNlbmRpZgor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGU5YzQ3ZGI0YzQ0N2MwZjRh
YjYyN2MwOTRiNWY2OGRiNTY1YTlhNmMuLjdlNWE0Y2FhNGM1ZDJlMjM3ODgxM2ViNGYyZjQyMjhi
ZGU0Y2M1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTQyLDYg
KzE0MiwxMCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiBjbGFzcyBMYXll
ckhvc3RpbmdDb250ZXh0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgor
CiBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3MKIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM2MCw2ICszNjQsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hyb25vdXNseShjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICBXZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nlc3MoKTsKQEAgLTY5Myw2ICs3MDEsMTAg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fdnA5RGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV92cDlTV0RlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415144</attachid>
            <date>2020-12-01 10:00:55 -0800</date>
            <delta_ts>2020-12-01 10:39:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201201100054.patch</filename>
            <type>text/plain</type>
            <size>83486</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE2YTRiYzRlYWNmMzFlMjA2YmRmYmFj
Zjk4NjUzZTYyYzJjNTcyNGYuLmE3ODdlOWY5MTljZDVlMzEzYTYwNGFiYTg3MGEzY2NiMzgxNjMx
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0z
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNl
IGFuIGV4cGVyaW1lbnRhbCBmbGFnIHNwZWNpZmljIHRvIFZQOSBwcm9maWxlIDIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0Y2Y4NWNjMjk2NDNkMGVhNTZjODQxZTdlZDliNzZlYTgzYTMxN2VlLi4xZTU1MzU5NmU2
YzAwN2E2ZGEyOGI2MTBjOGJhZWMyNTUyM2M1NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHNldCBSZWFsdGltZU1l
ZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuIAorCisg
ICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIE1vYmlsZU1pbmlCcm93c2VyLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXpl
cjo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhh
cnUub2h6ZWtpQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBNb3ZlIFNoYWRvd1Jvb3RJ
bml0IHRvIGRlZGljYXRlZCBpZGwgZmlsZSBmcm9tIEVsZW1lbnQuaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1
ZDllMmFlNmJhZTAyMzgxMTQyNmNiY2JiN2U5ZDY2ODQxYjg3ZDEuLmE3MTI2ZGI1ODA4OTc5OTJi
Zjc5ZjNlODRjYTcwMTc5ZWQ2NTM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMjAt
MTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPbiBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJv
Y2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25pdGlvbiwgVUkgcHJvY2VzcyBzaG91bGQgYXNrIHdlYiBw
cm9jZXNzIHRvCisgICAgICAgIGRvIGF1ZGlvIGNhcHR1cmUgYW5kIHNlbmQgYmFjayBkYXRhLiBU
byBpbXBsZW1lbnQgdGhpcywgd2UgaGF2ZSBpbnRyb2R1Y2VkOgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4gCisgICAgICAg
IE9uIGlPUywgd2UgdXNlIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcyBpbgorICAgICAgICBVSSBw
cm9jZXNzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6IG93biBhbmQgbWFuYWdlIGFsbCAKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZXMgaW4gd2ViIHByb2Nl
c3MuCisKKyAgICAgICAgTGlrZSBleGlzdGluZyBtZWRpYSBjYXB0dXJlIGltcGxlbWVudGF0aW9u
LCB3ZSB1c2Ugc2hhcmVkIG1lbW9yeSB0byBwYXNzIGF1ZGlvIGRhdGEgdG8gZnJvbSB3ZWIgcHJv
Y2VzcyB0byBVSQorICAgICAgICBwcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6Om1fcmluZ0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2Fw
dHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6Y29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVu
c2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTAxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgogCiAgICAgICAgIElUUCBsb2dnaW5nIG1peGVzIHVwIHRoZSBVSSBwcm9j
ZXNzIElUUCBzdGF0ZSB3aXRoIHRoZSBTZXR0aW5ncyBJVFAgc3RhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKaW5kZXggZDRkYWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJm
Mi4uNTc5YWE1M2JjOWJkODEwOGRiZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQ6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJL
aXQ6CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAg
ZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGZkODUxMjk4N2I5OWExYTgyOTVjMTA3ZTE5OWU1ZjA3NTUxNTNkMjYu
LmViYTA1ZWZkMzY2OTNhMzNkMjVjMzZkM2RhOGMxMDJmMWRjZjNjMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2
ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUy
ZmNkNDNkNzMxMDk3MmYzOGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBk
YXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURl
dmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAg
ICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVE
ZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1
MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAg
IGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmlj
ZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlv
Q2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVy
LCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJh
Y2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxi
YWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
ayksIFdURk1vdmUoc291cmNlKSk7Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJj
ZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVO
VVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5
ZjRlMGEuLjMyMDFhYzJlMzBiZTA4ZjU5Mjc1ZjQxZGNmZDRlYmY0N2JkOGI2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5j
cHAKaW5kZXggNWJlYjYwNTY0N2IzMjllMjY0ZjgzYzI0OWY1N2MyYTIwODFjMmZkNy4uYzBlMTA0
OTljOTNmNTFkNDZhN2FmZmQ0MWQ1MDgxNDA0NzNiNTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTkwLDcgKzkwLDMw
IEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgpCiAgICAgICAgICAgICBt
X3NvdXJjZSA9IG51bGxwdHI7CiAgICAgfTsKIAotICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1v
dmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSk7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgaWYgKCFjYXB0dXJl
RGV2aWNlKSB7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25F
cnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZp
Y2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAobV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pIHsKKyAgICAg
ICAgYXV0byByZWFsdGltZVNvdXJjZSA9IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uKCpjYXB0dXJlRGV2aWNlKTsKKyAgICAgICAgaWYgKCFyZWFsdGltZVNvdXJjZSkgeworICAg
ICAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIkZhaWxlZCB0byBjcmVhdGUg
cmVhbHRpbWUgc291cmNlIiB9KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZT4oKm1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0
YXRlVXBkYXRlQ2FsbGJhY2spLCBtYWtlUmVmKCpyZWFsdGltZVNvdXJjZSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKmNhcHR1cmVEZXZpY2UpOworICAg
IGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJl
c3VsdC5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fc291
cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVu
dElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFs
UmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oCmluZGV4IGU2ZjEzZmVlODRhNTMzYWYwZjA0ZTA3NjljMWFlMDk1YmU1YmZmM2YuLjZm
MTEyOWM1NDQ1YWRjY2U3NDA1NDFhOTdkZmYzNjA2YjJjYzBhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTQ1LDYgKzQ1LDEx
IEBAIHB1YmxpYzoKIAogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9jbGllbnRJZGVudGlmaWVyOyB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVz
aW5nIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFJlZlB0cjxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPihjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
Jik+OworICAgIHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0aW9uKSB7IG1fcmVhbHRpbWVNZWRp
YVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbik7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIHZvaWQgcmVzZXQoKTsKICAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoKTsKQEAg
LTUzLDYgKzU4LDEwIEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOwogICAgIERlbGVn
YXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAyZTdlOWZkMmI5MWViODEwMTM0NTYwZGZmZDgwYWNkMjEwYjNmZGMwLi43
NDJlMmRlNGZmN2VjZmEwNTE2MzE1NWRjNGVhMzE3ODE1NmY5YTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzYyNSwxMyAr
MjM2MjUsNiBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKLQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovID0gewotCQkJaXNh
ID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29jb2E7Ci0J
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4
NEYgLyogcGFyc2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTI1NjYyLDcgKzI1NjU1LDYgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNw
ZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTNG
NkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUw
MDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFC
ODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJ
CQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA2Mjg0NDUzMjUwMzM1MTA3ZmQ1NDk4MjIzMmI4Yjll
YWVjOGU2OGNiLi42OGY3ZWQ4NjVjNzMxMjI5MjhjMDZjNzE3MmIzNzY5NmNiMjJjZTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKQEAgLTEwMyw2ICsxMDMsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9j
ZXNzL1NwZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRfRElS
fS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTgzLDYgKzE4NCw3IEBAIHNldChXZWJL
aXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VS
ZWNlaXZlcgogCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgogICAgIFVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlu
a1N0b3JlCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQpAQCAtMjU0LDYgKzI1
Niw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5CiAKKyAgICBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAppbmRleCBlZGI2Y2E1OTc5ZDJmNGRlZjhiMmIyZTc3M2Y5ZDY5YWU3ODZlN2U5Li44
MzFjOGYwMjhhNTZlM2EzMTE1NGVkNTYyMDJjZTAwMjJhNTIzZjU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDQsNiArMTA0LDcgQEAg
JChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXIubWVzc2FnZXMuaW4KQEAgLTE2MSw2ICsxNjIsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2Fn
ZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CmluZGV4IDc1Njc5ZjU1ZjVhZTM5OWI1ZWFmNDc3ZjE4OTMyNTZiYzI0ODg0NGQuLmZiMmZhZDZk
NGE5YzZmYmI2MTlmMzYzYmIxNGZiMzA3NDg4YTI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjYwLDYgKzI2MCwxMiBAQCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmljYXRp
b25Db250cm9sbGVyTWVzc2FnZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGVNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCAzNzcwMWIwMWMzYzFhMmMzMDBlMWRkMmQ3MmU2Yjg1MjM3
ZjQyNGI1Li44NTI4Nzg0OTczM2QzYTgxM2JmNDQzMTA2MjU0NDI0NmYxM2E3ZjMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0gXAogICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAor
CSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TcGVlY2ggXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9TdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQgXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0xNjcsNiArMTY4
LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sIFwK
IAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbiBcCkBAIC0yMDEsNiArMjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCisJV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwK
IAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNz
L1dlYlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMDkxN2YwMWJlMWM5ZjhjYWEyYWJmN2YwZjg5
MGY4OTVhM2YyZWY4Ni4uODg2ZGI2Yzg3ZmVhNmNhNzEyMzYxMTAwOGNmMDM4OWQ5OGExZWUyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC0yOTAsNiArMjkwLDggQEAgVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRp
b24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAorVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKK1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNzL1N1
c3BlbmRlZFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5j
cHAKQEAgLTYzNSw2ICs2MzcsOCBAQCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVCcm93c2VyRnVuY3MuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgQG5vLXVuaWZ5CiAKK1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dPcmlnaW5UYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJhYTVkZDIyZjZjNTg0OGZiYWExNWNkMmNkOWY3YjIwOWY0M2I4
YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTM1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmljZSkpOwor
fQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlKQorICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVy
ZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkg
fSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9tYW5hZ2VyKG1ha2VX
ZWFrUHRyKG1hbmFnZXIpKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5nQnVmZmVy
KG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlPihudWxscHRyKSkpCisjZW5kaWYKK3sKKyAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgq
dGhpcywgY2FwdHVyZURldmljZSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5yZW1vdmVTb3Vy
Y2UoKnRoaXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAg
ICAgICBtX21hbmFnZXItPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RhcnQgeyBtX2lkZW50aWZpZXIgfSwg
MCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9t
YW5hZ2VyLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0b3AgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhh
bmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
biwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2Ny
aXB0aW9uOworCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5OworICAgIGlmICghaGFu
ZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRs
ZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIExPR19FUlJP
UigiVW5hYmxlIHRvIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IGZvciByZW1vdGUgc291cmNlIik7Cisg
ICAgfQorCisgICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOworICAgIGlmICghbWVtb3J5KSB7Cisg
ICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOworICAgICAgICBzdG9yYWdlLnNldFJl
YWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxl
YXNlTm9uTnVsbCgpKTsKKyAgICBzdG9yYWdlLnNldFJlYWRPbmx5KHRydWUpOworICAgIG1fcmlu
Z0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2J1
ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVy
T2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUg
dGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2
NF90IGVuZEZyYW1lKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9idWZmZXIp
IHsKKyAgICAgICAgTE9HX0VSUk9SKCJCdWZmZXIgZm9yIHJlbW90ZSBzb3VyY2UgaXMgbnVsbCIp
OworICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmluZ0J1
ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBt
X3JpbmdCdWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1l
LnRpbWVWYWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1fYnVmZmVy
LCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TSh0aW1lKTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworICAgIFVOVVNFRF9Q
QVJBTShzdGFydEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZW5kRnJhbWUpOworI2VuZGlmCit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1v
dGVDYXB0dXJlRmFpbGVkKCkKK3sKKyAgICBjYXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9w
cGVkKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdi
YzBkMTMxZjJjZGIxNWY5MjVjZTA5MDE5NTdlZmE0ZDQ0MGNiZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBj
cmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hh
cmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKworICAgIHZvaWQgcmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMs
IHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90
ZUNhcHR1cmVGYWlsZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKKworcHJp
dmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJik7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCisgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkg
ZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmlu
YWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQorCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9tYW5hZ2VyOworICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9k
ZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBt
X3JpbmdCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVy
TGlzdD4gbV9idWZmZXI7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTRiZDdhODdhNDA4NDM5ZTQ4NzMzNTRjNTU0ZjcwZjlhZmY1MmZj
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTE2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
Cit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZSYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNl
KQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNT
RVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQo
aWRlbnRpZmllciwgJnNvdXJjZSk7CisKKyAgICBpZiAoIW1faGFzR3JhbnRlZFNhbmRib3hFeHRl
bnNpb25zKSB7CisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX2Nvbm5l
Y3Rpb24tPmdldEF1ZGl0VG9rZW4oKSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0
Lm1pY3JvcGhvbmUiX3MsIGhhbmRsZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpHcmFudFNh
bmRib3hFeHRlbnNpb25zKGhhbmRsZUZvclRDQ0QsIGhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyNl
bmRpZgorICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IHRydWU7CisgICAg
fQorCisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6QWRkU291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBz
b3VyY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAg
ICBBU1NFUlQobV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAgICBtX3Nv
dXJjZXMucmVtb3ZlKGlkZW50aWZpZXIpOworCisgICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkg
JiYgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyNpZiBFTkFCTEUoU0FOREJPWF9F
WFRFTlNJT05TKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpKTsKKyNlbmRp
ZgorICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0K
KworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlJlbW92ZVNvdXJjZShpZGVudGlmaWVyKSk7Cit9CisKKyNpZiBQTEFURk9STShD
T0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpzZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIGlmIChhdXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMu
Z2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnNldFN0b3JhZ2UoaXBjSGFuZGxlLmhh
bmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7Cisg
ICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVz
LCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChh
dXRvKiBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2Ut
PnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1
dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+
cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit1
aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTg1OTdkNzJjMTRl
YjgwODYwNzQ2YWQ4ODI4M2I5YTZhMTJjMmUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1l
c3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgQ2FwdHVyZURldmljZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uOworI2VuZGlmCit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1l
c3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJik7CisgICAgdm9pZCBhZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYp
OworICAgIHZvaWQgcmVtb3ZlU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZSYpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRTdG9yYWdl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgdm9pZCByZW1vdGVBdWRp
b1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90ZUNhcHR1cmVG
YWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
cmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CisKKyAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5l
Y3Rpb24ucHRyKCk7IH0KKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4K
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29u
bmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50
NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSo+IG1fc291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hF
eHRlbnNpb25zIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZTNmNmNmNjAxOTFmZTFkODEwNWVlMzQx
ZTg4YmVmM2Q0ZmY5OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hh
bmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVz
Y3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorI2VuZGlmCisKKyAgICBSZW1vdGVB
dWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1
aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICBSZW1vdGVDYXB0dXJl
RmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIp
CisgICAgUmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2
YzMyYzU0OGEwYTA5YWIwMmJjMTQ1MzQ1MjQ0Li5kZDM4NzhhZDA0OWFkYWEwZmNmNmFjNWIyMjM0
OTU1MjZmYzM3YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC05MSw2ICs5MSwxNCBAQCB2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbgogCiAgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CiAgICAgICAgIH0pOwor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAgICAgaWYgKG1fcmVhbHRpbWVNZWRpYVNv
dXJjZUNyZWF0ZUZ1bmN0aW9uKSB7CisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnNldFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpc10oYXV0byYgZGV2aWNlKSB7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKGRl
dmljZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAg
bV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCmluZGV4IGE3Zjc2ZDM4ZWU1
MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcuLjdiMDZmZjEzNzU5ZTRkODI3NzQ2YmQzOGJk
NWQ4MjQ2ZTdiM2E0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtNTcsNiArNTcsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cik7CiAgICAgdm9pZCBpbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2
b2lkIHNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pemVyOjpSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJiBmdW5jdGlvbikg
eyBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24p
OyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVx
dWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKICAgICB2b2lkIGhhbmRs
ZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllcik7CkBAIC03NSw2ICs3OSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAg
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6
ZXI7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml6ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBtX3JlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlN2Q5
Y2RmZTU1MzVjMjdjNDUwNGYwMTBhNmVkZjhlNGM1ZTNjYTZhLi5mOTA2YTliN2JkNjlkNjAyNDFl
MDBkOTE0NDQ2MzM1YmZiNjk1MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKQEAgLTM4LDYgKzM4LDkgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
TWFuYWdlci5oIgogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC0xNzAy
LDggKzE3MDUsOCBAQCBQQUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgp
IGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAg
ICBhdXRvIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0
aW9uU2VydmVyLmlzTmV3RW50cnkpOworICAgIEFTU0VSVCghbV9zcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1hcC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byYgc3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBu
dWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdlID0g
bnVsbHB0cjsKICAgICBmb3IgKGF1dG8qIHBhZ2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlmIChw
YWdlICYmIHBhZ2UtPndlYlBhZ2VJRCgpID09IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsNyArMTcx
OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFs
dWUgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0
aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0o
YXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNw
ZWVjaFJlY29nbml0aW9uU2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdl
YWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVy
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTcyMyw3ICsxNzI2LDE3IEBAIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcklkZW50CiAKICAgICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7Ci0g
ICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaXRlcmF0b3ItPnZhbHVlKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIs
ICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlcik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAm
JiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLT5zZXRS
ZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyldKGF1dG8mIGRldmljZSkgLT4gUmVmUHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgICAgIGF1dG8mIHNvdXJjZU1hbmFnZXIgPSBlbnN1cmVTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgICAgIHJldHVy
biBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShzb3Vy
Y2VNYW5hZ2VyLCBkZXZpY2UpOworICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xNzMzLDYgKzE3NDYsMjAgQEAgdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcklkZW4KICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLnJlbW92
ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3NQcm94
eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpKTsKKyAgICAg
ICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICptX3NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOworICAgIH0KKwor
ICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1dCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGMxMGIzOTQ4
ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLjc3ZDMwOWM1Y2RkNGYxM2JkYjA0M2Q3
NDE4OTk2ODM0NGJlY2IzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiAK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBlbnVtIEZvcmVncm91bmRXZWJQ
cm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBSZWZDb3VudGVyPEZvcmVncm91bmRXZWJQ
cm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlcjsKIHR5cGVkZWYg
Rm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rv
a2VuOwpAQCAtNTA1LDYgKzUwOSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZVNwZWVj
aFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CiAg
ICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgogCiAg
ICAgdm9pZCBzeXN0ZW1CZWVwKCk7CiAgICAgCkBAIC02NDMsNiArNjUwLDkgQEAgcHJpdmF0ZToK
IAogICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM1MjhmNDcxZjQ2M2RmNmMxMTMw
YTNmYjgzNzc2YmYxYjJhYmVmOTQuLjdhYTQ0ZDU4NDQ1NDViODBhMTYwMGViY2JjODQ4YTFhMzFm
NWJmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTQzMSw2ICsxNDMxLDExIEBACiAJCTkzQTg4QjMzMUJDNkU5Q0QwMEFCQTVDMiAv
KiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1
bHREYXRhLmggKi87IH07CiAJCTkzQTg4QjNCMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVzdWx0SW50ZXJu
YWwuaCAqLzsgfTsKIAkJOTNBODhCNDYxQkM4ODI5MzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1
bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4
QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggKi87IH07CisJCTkzQUI5
QjRDMjU3NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0RDI1NzU2N0RDMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDUyNTc0OTI4
RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OworCQk5M0FCOUI1
NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CisJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjUxMjU3NTg5MTEwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNCMjYxNEQyMjdEMTQ5RTAwQjk3QTc2IC8qIFN0
b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsK
IAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NTIyN0Qx
NDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsgfTsKIAkJOTNCMjYxNEYy
MjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDYyMjdEMTQ3MTAw
Qjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICovOyB9OwpAQCAtNDU4Miw2
ICs0NTg3LDIwIEBACiAJCTkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVz
dWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSGl0VGVz
dFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4QjQy
MUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJl
c3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElIaXRUZXN0UmVzdWx0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQyMjU3NDkyOEMwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQzMjU3
NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ1MjU3NDky
OEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDky
NTc0QzYxRTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlC
NEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUwMjU3
NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUyMjU3NTg5MTIw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTMyNTc1ODkxMjAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTQyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNC
MjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQjI2MTQ3MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNr
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxTdG9yYWdl
RGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg5NTEs
NiArODk3MCwxNiBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVlY2ggKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzQUI5QjRCMjU3NEM2MUYwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAq
LywKKwkJCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovLAorCQkJKTsKKwkJCXBhdGggPSBTcGVlY2g7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQk5M0IyNjE0MzIyN0QxNDMxMDBCOTdBNzYgLyogV2ViU3RvcmFnZSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MTU1LDYgKzkxODQs
NyBAQAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAogCQkJCTMx
MDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywKIAkJCQkx
QTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKKwkJCQk5M0FCOUI0ODI1NzRD
NUNFMDA5OEIxMEUgLyogU3BlZWNoICovLAogCQkJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlGNSAv
KiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29udGVu
dCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRpb24g
Ki8sCkBAIC05MzY4LDYgKzkzOTgsMTEgQEAKIAkJCQk5M0Q2QjdCMDI1NTI2OEExMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOTNENkI3
QjIyNTUyNjhBMjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIu
aCAqLywKIAkJCQk5M0Q2QjdBRjI1NTI2OEExMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTkzQUI5QjQzMjU3NDkyOEMwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCTkz
QUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJ
OTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwICovLAogCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKQEAgLTEwNTEyLDYgKzEw
NTQ3LDEyIEBACiAJCQkJMUREMkE2NzIyNTYyMzI0RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFERDJBNjczMjU2MjMyNEYw
MEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCAqLywKIAkJCQkx
REQyQTY3MTI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3Nh
Z2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKKwkJCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNBQjlCNTAyNTc1ODkx
MTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTMyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJ
CTkzQUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJOTNENkI3ODEy
NTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlcy5oICovLAogCQkJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTE1ODAsNiAr
MTE2MjEsOSBAQAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6YXRp
b25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdCNTI1NTI2OEQ3MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNENkI3QjQyNTUyNjhENTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjRDMjU3NTYzRjMwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0RDI1
NzU2N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzIyNTRCQjUxOTAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc4
NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODUyNTRDQ0Q0MzAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMzQ3LDYg
KzEzMzkxLDggQEAKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxhdGVkSW5w
dXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNEMThCRDJBNjgwMDVD
MTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFERDJBNjc0MjU2MjMyQTEwMEZGN0I2RiAvKiBTb3VyY2VCdWZm
ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkz
QUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzQUI5
QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
RDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMzNERFRDE2REU4Rjg4MDA2QThFMzgg
LyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzVhYzY3OTM1NGFlMWZjZTcz
YzFiMmJmOTA3MzEzY2NhMTgzOWJkMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHAKQEAgLTAsMCArMSwyNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisjZWxzZQorI2luY2x1
ZGUgPFdlYkNvcmUvQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1BdWRpb0RhdGEuaD4KKyNlbmRpZgorCisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisj
aW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIDogcHJpdmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBw
dWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudAorI2VuZGlmCit7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UsIFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAg
ICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgbV9jb25uZWN0aW9uKFdU
Rk1vdmUoY29ubmVjdGlvbikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICwgbV9yaW5n
QnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVS
ZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKSkKKyNlbmRpZgorICAgIHsKKyAgICAg
ICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPmFkZEF1
ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5SZWFsdGltZU1lZGlhU291
cmNlKCkKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0b3JhZ2UoKS5pbnZh
bGlkYXRlKCk7CisjZW5kaWYKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2Jz
ZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0YXJ0
KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5z
dG9wKCk7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7CisgICAgfQor
I2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwKKyAgICB7
CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRlbnRpZmllciks
IDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAgICB9
CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsCisgICAg
eworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNj
cmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3Jp
cHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5
cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCku
ZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlw
dGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRl
KG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7Cisg
ICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0Rh
dGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVy
TGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgp
KTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJh
bWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFt
ZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFy
dEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRpbWUp
OworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsKKyAgICAgICAgVU5VU0VEX1BBUkFN
KGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJhbWVzKTsKKyNl
bmRpZgorICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisgICAgdm9pZCBzdG9yYWdlQ2hh
bmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsCisgICAgeworICAgICAgICBTaGFyZWRN
ZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChzdG9yYWdlKQorICAgICAgICAgICAg
c3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpS
ZWFkT25seSk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U2V0U3RvcmFnZShtX2lk
ZW50aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCAgMCB9
LCBtX2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJhbWVzKSwgMCk7CisgICAgfQorCisjZW5kaWYK
KworICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkgZmluYWwKKyAgICB7CisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgICAgIGF1dG8gYnVmZmVyU2l6ZSA9IEF1ZGlvU2Vzc2lvbjo6c2hh
cmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOworICAgICAgICBpZiAoQXVkaW9TZXNzaW9u
OjpzaGFyZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVyU2l6ZSgpID4gYnVmZmVyU2l6ZSkKKyAg
ICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZl
clNpemUoYnVmZmVyU2l6ZSk7CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigp
LnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCwgUm91dGVTaGFyaW5nUG9s
aWN5OjpEZWZhdWx0KTsKKyNlbmRpZgorICAgIH0KKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25u
ZWN0aW9uOworICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKKworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CisgICAgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworI2VuZGlmCit9OworCitTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKworI2lmIEVOQUJMRShT
QU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYg
c2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7CisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9y
VENDRCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JU
Q0NEKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKQorICAgICAgICBMT0df
RVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIHRjY2QiKTsKKyAg
ICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPmNvbnN1bWUoKTsKKwor
ICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgIGlmICghbV9z
YW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBtaWNyb3Bob25lIik7CisgICAgZWxzZQor
ICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5jb25zdW1lKCk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tl
U2FuZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NE
KSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPnJldm9rZSgpOworICAgICAg
ICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAo
bV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkgeworICAgICAgICBtX3NhbmRib3hFeHRl
bnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9u
Rm9yTWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQorfQorCisjZW5kaWYKKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7
CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRl
IHJlYWx0aW1lIHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVk
KGlkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCgh
bV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50
aWZpZXIsIG1ha2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZT4oaWRlbnRpZmllciwgcmVzdWx0
LnNvdXJjZSgpLCBtYWtlUmVmKCptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKSkpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RhcnQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3Vy
Y2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0YXJ0KCk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
c3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAg
ICAgIHNvdXJjZS0+c3RvcCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAorewor
ICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYxZjViMTllMzcwZjViZTBhNDY4NGQ5ZTFjZDI3ZTAyNzBjMDkwN2QKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDc3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1
ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVE
ZXZpY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgflNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIoKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgdm9p
ZCBncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9pZCByZXZva2VTYW5kYm94RXh0ZW5zaW9u
cygpOworI2VuZGlmCisKKyAgICB2b2lkIGFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHZv
aWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsK
KyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsK
KyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwor
Citwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdl
U2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBjbGFzcyBSZWFsdGltZU1lZGlh
U291cmNlOworICAgIGZyaWVuZCBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIEhhc2hN
YXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworCisjaWYgRU5BQkxFKFNBTkRCT1hf
RVhURU5TSU9OUykKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5z
aW9uRm9yVENDRDsKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5z
aW9uRm9yTWljcm9waG9uZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxMjU3YTI4MjU5YWY1Yzdk
NDhhZjcwZDRiOGZkYjcxZDEwNDE5ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRl
ZCB7CisgICAgQWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlKQorICAgIFJlbW92ZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
ICAgIFN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpOworICAgIFN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcik7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIEdyYW50U2Fu
ZGJveEV4dGVuc2lvbnMoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4
dGVuc2lvbkhhbmRsZUZvclRDQ0QsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNh
bmRib3hFeHRlbnNpb25IYW5kbGVGb3JNaWNyb3Bob25lKQorICAgIFJldm9rZVNhbmRib3hFeHRl
bnNpb25zKCkKKyNlbmRpZgorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5jcHAKaW5kZXggM2YzNTMxOTRhMzJjM2U2NzliY2EyOWZiZWE4
NTAzMWM5MjFlNGZjNC4uZTBkMmE1OTg1NTViOTg5Nzg1ODU4YWI2YzY0YTc1NGFmZGExMTA5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAg
LTQ2LDYgKzQ2LDEwIEBAIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uCiB7CiAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLCAq
dGhpcyk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpDcmVhdGVTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcihtX2lkZW50aWZpZXIpLCAwKTsKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiB9CiAKIFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZjJmMjI4MjJjN2IyMjNm
Y2E1OWY5NTU3M2QxMWRjOTliMTAzNDgxMS4uYjEyMzljNTc3YmI4NDZhOGNjNGRmY2YyOGJkMmQz
MDQwNGQzZGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
NDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NBc3NlcnRpb24uaCIKICNpbmNsdWRlICJS
ZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5Lmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5o
IgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNp
bmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCkBAIC0xOTY5LDYgKzE5NzAsMTYg
QEAgdm9pZCBXZWJQcm9jZXNzOjplbmFibGVWUDlTV0RlY29kZXIoKQogfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlciYgV2ViUHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcj4oKTsKKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZTljNDdkYjRjNDQ3YzBmNGFiNjI3YzA5NGI1ZjY4ZGI1
NjVhOWE2Yy4uN2U1YTRjYWE0YzVkMmUyMzc4ODEzZWI0ZjJmNDIyOGJkZTRjYzUyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xNDIsNiArMTQyLDEwIEBAIHN0cnVj
dCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGNsYXNzIFdlYlByb2Nl
c3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcwogewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwpAQCAtMzYwLDYgKzM2NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRXcml0ZVRvUGFz
dGVib2FyZEFzeW5jaHJvbm91c2x5KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3Mo
KTsKICAgICB+V2ViUHJvY2VzcygpOwpAQCAtNjkzLDYgKzcwMSwxMCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV92cDlEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZwOVNXRGVj
b2RlckVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7
CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415147</attachid>
            <date>2020-12-01 10:39:47 -0800</date>
            <delta_ts>2020-12-01 14:37:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201201103946.patch</filename>
            <type>text/plain</type>
            <size>86416</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE2YTRiYzRlYWNmMzFlMjA2YmRmYmFj
Zjk4NjUzZTYyYzJjNTcyNGYuLmE3ODdlOWY5MTljZDVlMzEzYTYwNGFiYTg3MGEzY2NiMzgxNjMx
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0z
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNl
IGFuIGV4cGVyaW1lbnRhbCBmbGFnIHNwZWNpZmljIHRvIFZQOSBwcm9maWxlIDIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0Y2Y4NWNjMjk2NDNkMGVhNTZjODQxZTdlZDliNzZlYTgzYTMxN2VlLi4xZTU1MzU5NmU2
YzAwN2E2ZGEyOGI2MTBjOGJhZWMyNTUyM2M1NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHNldCBSZWFsdGltZU1l
ZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuIAorCisg
ICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIE1vYmlsZU1pbmlCcm93c2VyLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXpl
cjo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhh
cnUub2h6ZWtpQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBNb3ZlIFNoYWRvd1Jvb3RJ
bml0IHRvIGRlZGljYXRlZCBpZGwgZmlsZSBmcm9tIEVsZW1lbnQuaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1
ZDllMmFlNmJhZTAyMzgxMTQyNmNiY2JiN2U5ZDY2ODQxYjg3ZDEuLmE3MTI2ZGI1ODA4OTc5OTJi
Zjc5ZjNlODRjYTcwMTc5ZWQ2NTM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMjAt
MTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPbiBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJv
Y2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25pdGlvbiwgVUkgcHJvY2VzcyBzaG91bGQgYXNrIHdlYiBw
cm9jZXNzIHRvCisgICAgICAgIGRvIGF1ZGlvIGNhcHR1cmUgYW5kIHNlbmQgYmFjayBkYXRhLiBU
byBpbXBsZW1lbnQgdGhpcywgd2UgaGF2ZSBpbnRyb2R1Y2VkOgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4gCisgICAgICAg
IE9uIGlPUywgd2UgdXNlIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcyBpbgorICAgICAgICBVSSBw
cm9jZXNzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6IG93biBhbmQgbWFuYWdlIGFsbCAKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZXMgaW4gd2ViIHByb2Nl
c3MuCisKKyAgICAgICAgTGlrZSBleGlzdGluZyBtZWRpYSBjYXB0dXJlIGltcGxlbWVudGF0aW9u
LCB3ZSB1c2Ugc2hhcmVkIG1lbW9yeSB0byBwYXNzIGF1ZGlvIGRhdGEgdG8gZnJvbSB3ZWIgcHJv
Y2VzcyB0byBVSQorICAgICAgICBwcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6Om1fcmluZ0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2Fw
dHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6Y29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVu
c2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTAxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgogCiAgICAgICAgIElUUCBsb2dnaW5nIG1peGVzIHVwIHRoZSBVSSBwcm9j
ZXNzIElUUCBzdGF0ZSB3aXRoIHRoZSBTZXR0aW5ncyBJVFAgc3RhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKaW5kZXggZDRkYWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJm
Mi4uNTc5YWE1M2JjOWJkODEwOGRiZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQ6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJL
aXQ6CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAg
ZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGZkODUxMjk4N2I5OWExYTgyOTVjMTA3ZTE5OWU1ZjA3NTUxNTNkMjYu
LmViYTA1ZWZkMzY2OTNhMzNkMjVjMzZkM2RhOGMxMDJmMWRjZjNjMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2
ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUy
ZmNkNDNkNzMxMDk3MmYzOGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBk
YXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURl
dmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAg
ICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVE
ZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1
MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAg
IGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmlj
ZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlv
Q2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVy
LCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJh
Y2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxi
YWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
ayksIFdURk1vdmUoc291cmNlKSk7Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJj
ZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVO
VVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5
ZjRlMGEuLjMyMDFhYzJlMzBiZTA4ZjU5Mjc1ZjQxZGNmZDRlYmY0N2JkOGI2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggYmZjNWJlMTAzNGJl
M2MxMmQyY2FkZWMzZTEyMTk0M2VhYjg5OTMyMy4uOTg0MjY3ZTJiMTk0OTFjNjRhYzVlZGVjNjM0
M2QwNzZlYjQxNDFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAK
QEAgLTg4LDYgKzg4LDEwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAgICBpZiAoIW1fZGF0
YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNv
dXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGF1dG8g
ZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNh
bXBsZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICAgICAgaWYgKGRhdGFTb3VyY2Ut
PnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICBpZiAoaXNN
YWluVGhyZWFkKCkpIHsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgICAgICAgICBpZiAo
d2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2Fw
dHVyZSwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0IiB9KSk7CkBAIC05Niw2ICsxMDAsMTAg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRhdGFT
b3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAg
aWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewogICAgICAgICAgICAg
ICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CkBAIC0xMTAs
NyArMTE4LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgIH0KIAogICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxlQ291bnQpOwotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRpbWUsIGF1ZGlv
RGVzY3JpcHRpb24sIHNhbXBsZUNvdW50XSB7CisgICAgYXV0byBtYWludGhyZWFkSGFuZGxlciA9
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0
aW9uLCBzYW1wbGVDb3VudF0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMjEsNyArMTI5LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAg
ICAgICAgfQogCiAgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3Jp
cHRpb24sIHNhbXBsZUNvdW50KTsKLSAgICB9KTsKKyAgICB9OworICAgIGlmICghaXNNYWluVGhy
ZWFkKCkpCisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShtYWludGhyZWFkSGFuZGxl
cikpOworICAgIGVsc2UKKyAgICAgICAgbWFpbnRocmVhZEhhbmRsZXIoKTsKICNlbHNlCiAgICAg
bV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
emVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMyOWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li5j
MGUxMDQ5OWM5M2Y1MWQ0NmE3YWZmZDQxZDUwODE0MDQ3M2I1OTNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtOTAsNyAr
OTAsMzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKCkKICAgICAgICAg
ICAgIG1fc291cmNlID0gbnVsbHB0cjsKICAgICB9OwogCi0gICAgbV9zb3VyY2UgPSBtYWtlVW5p
cXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwg
V1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spKTsKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gY2FwdHVyZURldmljZSA9IFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKTsKKyAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5v
IGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH0pKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbikgewor
ICAgICAgICBhdXRvIHJlYWx0aW1lU291cmNlID0gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb24oKmNhcHR1cmVEZXZpY2UpOworICAgICAgICBpZiAoIXJlYWx0aW1lU291cmNlKSB7
CisgICAgICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiRmFpbGVkIHRvIGNy
ZWF0ZSByZWFsdGltZSBzb3VyY2UiIH0pKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1v
dmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIG1ha2VSZWYoKnJlYWx0aW1lU291cmNlKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7
CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
bV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1f
Y2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBk
YXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgU3BlZWNo
UmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdlbmVyYXRl
RmluYWxSZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pemVyLmgKaW5kZXggZTZmMTNmZWU4NGE1MzNhZjBmMDRlMDc2OWMxYWUwOTViZTViZmYz
Zi4uNmYxMTI5YzU0NDVhZGNjZTc0MDU0MWE5N2RmZjM2MDZiMmNjMGFjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtNDUsNiAr
NDUsMTEgQEAgcHVibGljOgogCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgdXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gRnVuY3Rpb248UmVm
UHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmKT47CisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24o
UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYgZnVuY3Rpb24pIHsgbV9yZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgc3RhcnRJbnRlcm5hbCgp
OwpAQCAtNTMsNiArNTgsMTAgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7CiAgICAg
RGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBtX3Jl
YWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDJlN2U5ZmQyYjkxZWI4MTAxMzQ1NjBkZmZkODBhY2QyMTBiM2Zk
YzAuLjc0MmUyZGU0ZmY3ZWNmYTA1MTYzMTU1ZGM0ZWEzMTc4MTU2ZjlhMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzNjI1
LDEzICsyMzYyNSw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OwotCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJKTsKLQkJCXBhdGggPSBjb2Nv
YTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTk0NkQzNzI3MUQ2Q0IyMjUw
MDc3MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMjU2NjIsNyArMjU2NTUsNiBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUg
Lyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0
ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFB
MkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICov
LAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDYyODQ0NTMyNTAzMzUxMDdmZDU0OTgyMjMy
YjhiOWVhZWM4ZTY4Y2IuLjY4ZjdlZDg2NWM3MzEyMjkyOGMwNmM3MTcyYjM3Njk2Y2IyMmNlMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTAzLDYgKzEwMyw3IEBAIHNldChXZWJLaXRfSU5DTFVE
RV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIgorICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvU3BlZWNoIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3RvcmFnZSIK
ICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQiCkBAIC0xODMsNiArMTg0LDcgQEAgc2V0
KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyCiAKICAgICBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorICAgIFVJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAg
ICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rU3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CkBAIC0yNTQs
NiArMjU2LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJveHkKIAorICAgIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24KICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IGVkYjZjYTU5NzlkMmY0ZGVmOGIyYjJlNzczZjlkNjlhZTc4NmU3
ZTkuLjgzMWM4ZjAyOGE1NmUzYTMxMTU0ZWQ1NjIwMmNlMDAyMmE1MjNmNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwNCw2ICsxMDQs
NyBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveAogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5tZXNzYWdlcy5pbgpAQCAtMTYxLDYgKzE2Miw3IEBAICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5t
ZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKaW5kZXggNzU2NzlmNTVmNWFlMzk5YjVlYWY0NzdmMTg5MzI1NmJjMjQ4ODQ0ZC4uZmIy
ZmFkNmQ0YTljNmZiYjYxOWYzNjNiYjE0ZmIzMDc0ODhhMjc4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNjAsNiArMjYwLDEyIEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM3NzAxYjAxYzNjMWEyYzMwMGUxZGQyZDcyZTZi
ODUyMzdmNDI0YjUuLjg1Mjg3ODQ5NzMzZDNhODEzYmY0NDMxMDYyNTQ0MjQ2ZjEzYTdmMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY5LDYgKzY5LDcgQEAgVlBBVEggPSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZSBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1NwZWVjaCBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL1N0b3JhZ2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIFwKQEAgLTE2Nyw2
ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01l
ZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uIFwKQEAgLTIwMSw2ICsyMDMsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwK
IAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKIAlXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgXAogCVdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIFwK
KwlXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24gXAogCVdlYlBy
b2Nlc3MvV2ViUHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwOTE3ZjAxYmUxYzlmOGNhYTJhYmY3
ZjBmODkwZjg5NWEzZjJlZjg2Li44ODZkYjZjODdmZWE2Y2E3MTIzNjExMDA4Y2YwMzg5ZDk4YTFl
ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTI5MCw2ICsyOTAsOCBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cAorVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nl
c3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9s
bGVyLmNwcApAQCAtNjM1LDYgKzYzNyw4IEBAIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBAbm8tdW5pZnkKIAorV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKwog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFhNWRkMjJmNmM1ODQ4ZmJhYTE1Y2QyY2Q5ZjdiMjA5
ZjQzYjhhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVk
ZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNl
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBj
YXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50
SWQoKSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBtX3JpbmdC
dWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkKKyNlbmRpZgoreworICAgIG1fbWFuYWdlci0+YWRkU291
cmNlKCp0aGlzLCBjYXB0dXJlRGV2aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjp+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnJlbW92
ZVNvdXJjZSgqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIp
CisgICAgICAgIG1fbWFuYWdlci0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdGFydCB7IG1faWRlbnRpZmll
ciB9LCAwKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAg
ICBtX21hbmFnZXItPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RvcCB7IG1faWRlbnRpZmllciB9LCAwKTsK
K30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRs
ZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0g
ZGVzY3JpcHRpb247CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYg
KCFoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAo
aGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9H
X0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2Ui
KTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkp
IHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uu
c2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5
LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAg
bV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAg
IG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
VGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKCFtX2J1
ZmZlcikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZlciBmb3IgcmVtb3RlIHNvdXJjZSBpcyBu
dWxsIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7CisgICAgbV9y
aW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwor
ICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMs
IHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9i
dWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7CisgICAgVU5V
U0VEX1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShlbmRGcmFtZSk7CisjZW5k
aWYKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnJlbW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJj
ZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42N2JjMGQxMzFmMmNkYjE1ZjkyNWNlMDkwMTk1N2VmYTRkNDQwY2JlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmlj
ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIH5TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0U3RvcmFnZShjb25z
dCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgdm9pZCBy
ZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQg
cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOwor
Citwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmKTsKKworICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2
b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0Rh
dGEoKSBmaW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQor
ICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX21hbmFnZXI7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZm
ZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9C
dWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGJkN2E4N2E0MDg0MzllNDg3MzM1NGM1NTRmNzBmOWFm
ZjUyZmMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCAr
MSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0
aW9uKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlJiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVE
ZXZpY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAg
ICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2Vz
LmFkZChpZGVudGlmaWVyLCAmc291cmNlKTsKKworICAgIGlmICghbV9oYXNHcmFudGVkU2FuZGJv
eEV4dGVuc2lvbnMpIHsKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yVENDRDsKKyAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnRjY2QiX3MsIG1f
Y29ubmVjdGlvbi0+Z2V0QXVkaXRUb2tlbigpLCBoYW5kbGVGb3JUQ0NEKTsKKyAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvck1pY3JvcGhvbmU7CisgICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53
ZWJraXQubWljcm9waG9uZSJfcywgaGFuZGxlRm9yTWljcm9waG9uZSk7CisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Okdy
YW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9yVENDRCwgaGFuZGxlRm9yTWljcm9waG9uZSkp
OworI2VuZGlmCisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gdHJ1ZTsK
KyAgICB9CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSkpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigp
OworICAgIEFTU0VSVChtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpID09ICZzb3VyY2UpOworICAg
IG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7CisKKyAgICBpZiAobV9zb3VyY2VzLmlzRW1w
dHkoKSAmJiBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworI2lmIEVOQUJMRShTQU5E
Qk9YX0VYVEVOU0lPTlMpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOwor
I2VuZGlmCisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gZmFsc2U7Cisg
ICAgfQorCisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6UmVtb3ZlU291cmNlKGlkZW50aWZpZXIpKTsKK30KKworI2lmIFBMQVRG
T1JNKENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRs
ZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291
cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c2V0U3RvcmFnZShpcGNIYW5k
bGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkK
K3sKKyAgICBpZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAg
ICAgICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVyT2ZG
cmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
aWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBp
ZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291
cmNlLT5yZW1vdGVTb3VyY2VTdG9wcGVkKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9
CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
MDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhODU5N2Q3
MmMxNGViODA4NjA3NDZhZDg4MjgzYjlhNmExMmMyZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQ
Qzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlJik7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0
b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICB2b2lkIHJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWlu
dDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2Fw
dHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKKworICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1f
Y29ubmVjdGlvbi5wdHIoKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2Vp
dmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBD
OjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAg
IHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAg
ICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgSGFzaE1hcDxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKj4gbV9zb3VyY2VzOworICAgIGJvb2wgbV9oYXNHcmFudGVkU2Fu
ZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBlM2Y2Y2Y2MDE5MWZlMWQ4MTA1
ZWUzNDFlODhiZWYzZDRmZjk5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRl
ZCB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYKKworICAgIFJl
bW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNh
cHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICBSZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDlmNjAwZDNm
NWNkYzZjMzJjNTQ4YTBhMDlhYjAyYmMxNDUzNDUyNDQuLmRkMzg3OGFkMDQ5YWRhYTBmY2Y2YWM1
YjIyMzQ5NTUyNmZjMzdiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTkxLDYgKzkxLDE0IEBAIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uCiAKICAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKICAgICAgICAg
fSk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICAgICBpZiAobV9yZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pIHsKKyAgICAgICAgICAgIG1fcmVjb2duaXplci0+c2V0
UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFt0aGlzXShhdXRvJiBkZXZpY2UpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rp
b24oZGV2aWNlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAK
ICAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggYTdmNzZk
MzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNy4uN2IwNmZmMTM3NTllNGQ4Mjc3NDZi
ZDM4YmQ1ZDgyNDZlN2IzYTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC01Nyw2ICs1NywxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml6ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0
aW9uKSB7IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5j
dGlvbik7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25G
b3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwogICAgIHZvaWQg
aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyKTsKQEAgLTc1LDYgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsK
ICAgICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNr
ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVj
b2duaXplcjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXplcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IGU3ZDljZGZlNTUzNWMyN2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLmY5MDZhOWI3YmQ2OWQ2
MDI0MWUwMGQ5MTQ0NDYzMzViZmI2OTUzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzgsNiArMzgsOSBAQAogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAg
LTE3MDIsOCArMTcwNSw4IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlByb2Nlc3NQcm94eTo6c2Vzc2lv
bklEKCkgY29uc3QKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0
aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewotICAgIGF1dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsKLSAgICBBU1NFUlQoc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAgQVNTRVJUKCFtX3NwZWVjaFJlY29nbml0
aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvJiBzcGVlY2hSZWNv
Z25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZp
ZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBXZWJQYWdlUHJveHkqIHRhcmdldFBh
Z2UgPSBudWxscHRyOwogICAgIGZvciAoYXV0byogcGFnZSA6IHBhZ2VzKCkpIHsKICAgICAgICAg
aWYgKHBhZ2UgJiYgcGFnZS0+d2ViUGFnZUlEKCkgPT0gaWRlbnRpZmllcikgewpAQCAtMTcxNSw3
ICsxNzE4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKICAgICBpZiAoIXRhcmdldFBhZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9y
LT52YWx1ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNv
bm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBh
Z2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7Cisg
ICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9u
U2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBt
YWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhh
bmRsZXIpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdlKSB7CiAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVu
eSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzIzLDcgKzE3MjYsMTcgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnQKIAogICAgICAgICB3ZWFrUGFnZS0+cmVxdWVzdFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9
KTsKLSAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5pdGVyYXRvci0+dmFsdWUpOworICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRp
ZmllciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIt
PnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKV0oYXV0byYgZGV2aWNlKSAtPiBSZWZQdHI8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZT4geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICAgICAgYXV0byYgc291cmNlTWFuYWdlciA9IGVuc3VyZVNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyAgICAgICAg
cmV0dXJuIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KHNvdXJjZU1hbmFnZXIsIGRldmljZSk7CisgICAgfSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKQEAgLTE3MzMsNiArMTc0NiwyMCBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVj
aFJlY29nbml0aW9uU2VydmVySWRlbgogICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAu
cmVtb3ZlKGlkZW50aWZpZXIpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vz
c1Byb3h5OjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcikgeworICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSkpOwor
ICAgICAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKm1f
c3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik7CisgICAg
fQorCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI7Cit9CisKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKIAogdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVsbHNjcmVlbklu
cHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzEw
YjM5NDhkNzc2NzYzNzE0ZDE2NDc5YjU5MzYyODJhNjk3MzNkYS4uNzdkMzA5YzVjZGQ0ZjEzYmRi
MDQzZDc0MTg5OTY4MzQ0YmVjYjMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKIHN0cnVjdCBXZWJzaXRlRGF0
YTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGVudW0gRm9yZWdyb3Vu
ZFdlYlByb2Nlc3NDb3VudGVyVHlwZSB7IH07CiB0eXBlZGVmIFJlZkNvdW50ZXI8Rm9yZWdyb3Vu
ZFdlYlByb2Nlc3NDb3VudGVyVHlwZT4gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOwogdHlw
ZWRlZiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI6OlRva2VuIEZvcmVncm91bmRXZWJQcm9j
ZXNzVG9rZW47CkBAIC01MDUsNiArNTA5LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRl
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVy
KTsKICAgICB2b2lkIGRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcklkZW50aWZpZXIpOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlm
CiAKICAgICB2b2lkIHN5c3RlbUJlZXAoKTsKICAgICAKQEAgLTY0Myw2ICs2NTAsOSBAQCBwcml2
YXRlOgogCiAgICAgdXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNw
ZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyPj47CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1hcDsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0
ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzUyOGY0NzFmNDYzZGY2
YzExMzBhM2ZiODM3NzZiZjFiMmFiZWY5NC4uN2FhNDRkNTg0NDU0NWI4MGExNjAwZWJjYmM4NDhh
MWEzMWY1YmY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xNDMxLDYgKzE0MzEsMTEgQEAKIAkJOTNBODhCMzMxQkM2RTlDRDAwQUJB
NUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIzMTFCQzZFOUMwMDBBQkE1QzIgLyogV2ViSGl0VGVz
dFJlc3VsdERhdGEuaCAqLzsgfTsKIAkJOTNBODhCM0IxQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hp
dFRlc3RSZXN1bHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJ
bnRlcm5hbC5oICovOyB9OwogCQk5M0E4OEI0NjFCQzg4MjkzMDBBQkE1QzIgLyogQVBJSGl0VGVz
dFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBODhCNDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLzsgfTsKKwkJ
OTNBQjlCNEMyNTc1NjNGMzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJCTkzQUI5QjREMjU3NTY3REMwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0NTI1
NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi87IH07CisJCTkz
QUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKKwkJOTNBQjlCNTYyNTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNTEyNTc1ODkxMTAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk5M0IyNjE0RDIyN0QxNDlFMDBCOTdBNzYg
LyogU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQjI2MTQ5MjI3RDE0NzIwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oICov
OyB9OwogCQk5M0IyNjE0RTIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ1
MjI3RDE0NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovOyB9OwogCQk5M0Iy
NjE0RjIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NjIyN0Qx
NDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggKi87IH07CkBAIC00
NTgyLDYgKzQ1ODcsMjAgQEAKIAkJOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRl
c3RSZXN1bHRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tI
aXRUZXN0UmVzdWx0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNB
ODhCNDIxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRU
ZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUhpdFRlc3RS
ZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDIyNTc0OTI4QzAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlC
NDMyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDUy
NTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FC
OUI0OTI1NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRCMjU3NEM2MUYwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlC
NTAyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MTI1NzU4OTExMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTIyNTc1
ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MzI1NzU4
OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0IyNjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlRGF0YWJhc2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMjYxNDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExv
Y2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNCMjYxNDcyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNl
VHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
ODk1MSw2ICs4OTcwLDE2IEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8qIFNwZWVjaCAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNBQjlCNEIyNTc0QzYx
RjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
Y3BwICovLAorCQkJCTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDkyNTc0QzYxRTAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFNwZWVjaDsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCTkzQjI2MTQzMjI3RDE0MzEwMEI5N0E3NiAvKiBXZWJTdG9yYWdl
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkxNTUsNiAr
OTE4NCw3IEBACiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJ
CQkJMzEwOTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAog
CQkJCTFBNkZCN0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAorCQkJCTkzQUI5QjQ4
MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVlY2ggKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VG
OUY1IC8qIFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJD
b250ZW50ICovLAogCQkJCTU3NjA4MjhBMjAyOTg0QzkwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNh
dGlvbiAqLywKQEAgLTkzNjgsNiArOTM5OCwxMSBAQAogCQkJCTkzRDZCN0IwMjU1MjY4QTEwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5
M0Q2QjdCMjI1NTI2OEEyMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFu
YWdlci5oICovLAogCQkJCTkzRDZCN0FGMjU1MjY4QTEwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCisJCQkJOTNBQjlCNDMyNTc0OTI4QzAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJ
CQkJOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5oICovLAorCQkJCTkzQUI5QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywK
KwkJCQk5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ2MjU3NDkyOEQwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluICovLAogCQkJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAgKi8sCiAJCQkJOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggKi8sCiAJCQkJOTNENkI3N0EyNTRDOTg0RDAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluICovLApAQCAtMTA1MTIs
NiArMTA1NDcsMTIgQEAKIAkJCQkxREQyQTY3MjI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUREMkE2NzMyNTYy
MzI0RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oICovLAog
CQkJCTFERDJBNjcxMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MDI1
NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk5M0FCOUI1MzI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8s
CisJCQkJOTNBQjlCNTIyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk5M0Q2
Qjc4MTI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzLmggKi8sCiAJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMTU4
MCw2ICsxMTYyMSw5IEBACiAJCQkJNTdGRDMxODUyMkIzNTE2OTAwOEQwRThCIC8qIFNPQXV0aG9y
aXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I1MjU1MjY4RDcwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0Q2QjdCNDI1NTI2OEQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEMyNTc1NjNGMzAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5
QjREMjU3NTY3REMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1
OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
RDZCNzg0MjU0Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTMz
NDcsNiArMTMzOTEsOCBAQAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0
ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2
ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUREMkE2NzQyNTYyMzJBMTAwRkY3QjZGIC8qIFNvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJOTNBQjlCNTUyNTc1QTI3NjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
OTNBQjlCNTYyNTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTNENkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZB
OEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5MzY4RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDdlOGQ0OTAxYjdm
ZTA1MWFkNzk3NjdjZWMwZTRkMGFkOWZlYzcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDI1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNlbHNlCisj
aW5jbHVkZSA8V2ViQ29yZS9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybUF1ZGlvRGF0YS5oPgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lP
TikKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlCisgICAgOiBwcml2YXRlIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICAsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisjZW5kaWYKK3sKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJl
ZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSwgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uKQorICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQor
ICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBtX2Nvbm5lY3Rp
b24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgLCBt
X3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obWFrZVVu
aXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhpcykpKQorI2VuZGlmCisgICAgewor
ICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+
YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCisgICAgflJlYWx0aW1lTWVk
aWFTb3VyY2UoKQorICAgIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgc3RvcmFnZSgp
LmludmFsaWRhdGUoKTsKKyNlbmRpZgorICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1w
bGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhp
cyk7CisgICAgfQorCisgICAgdm9pZCBzdGFydCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+
c3RhcnQoKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3AoKQorICAgIHsKKyAgICAgICAgbV9zb3Vy
Y2UtPnN0b3AoKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsKKyAg
ICB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgaWYgKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKSB7CisgICAgICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQobV9pZGVudGlm
aWVyKSwgMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVTb3VyY2VTdG9wcGVkKG1faWRlbnRpZmllciksIDApOwor
ICAgIH0KKworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYg
dGltZSwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3Qg
V2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1i
ZXJPZkZyYW1lcykgZmluYWwKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlm
IChtX2Rlc2NyaXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVz
Y3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlv
bjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0g
KldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9u
LnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAgICAgICAgIG1fbnVt
YmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAg
ICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigp
LCBtX251bWJlck9mRnJhbWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChpczxXZWJB
dWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOworICAgICAgICBtX3JpbmdCdWZmZXIuc3RvcmUo
ZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZG
cmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgICAgICB1aW50NjRfdCBzdGFydEZyYW1lOwor
ICAgICAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLmdldEN1cnJl
bnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKG1faWRlbnRpZmllciwgdGlt
ZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKSwgMCk7CisjZWxzZQorICAg
ICAgICBVTlVTRURfUEFSQU0odGltZSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShhdWRpb0RhdGEp
OworICAgICAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOworICAgICAgICBVTlVTRURfUEFS
QU0obnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwK
KyAgICB7CisgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYg
KHN0b3JhZ2UpCisgICAgICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFy
ZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpTZXRTdG9yYWdlKG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUg
eyBXVEZNb3ZlKGhhbmRsZSksICAwIH0sIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMp
LCAwKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBm
aW5hbAorICAgIHsKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICAgICAgYXV0byBidWZmZXJT
aXplID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTA7Cisg
ICAgICAgIGlmIChBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5wcmVmZXJyZWRCdWZmZXJT
aXplKCkgPiBidWZmZXJTaXplKQorICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNz
aW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpQbGF5QW5k
UmVjb3JkLCBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOworI2VuZGlmCisgICAgfQorCisg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
ICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgaW50NjRfdCBtX251bWJlck9mRnJh
bWVzIHsgMCB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgQ0FSaW5nQnVmZmVyIG1fcmlu
Z0J1ZmZlcjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07
CisjZW5kaWYKK307CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCAqdGhpcyk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoKnRo
aXMpOworfQorCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNp
b25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JUQ0NELCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkKK3sKKyAg
ICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdU
Rk1vdmUoc2FuZGJveEhhbmRsZUZvclRDQ0QpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lv
bkZvclRDQ0QpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4
dGVuc2lvbiBmb3IgdGNjZCIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9u
Rm9yVENDRC0+Y29uc3VtZSgpOworCisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9u
ZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JNaWNy
b3Bob25lKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKQorICAg
ICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIG1p
Y3JvcGhvbmUiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3Jv
cGhvbmUtPmNvbnN1bWUoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCit7CisgICAgaWYgKG1f
c2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9y
VENDRC0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBudWxs
cHRyOworICAgIH0KKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKSB7
CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPnJldm9rZSgpOworICAg
ICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gbnVsbHB0cjsKKyAgICB9Cit9
CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OmFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCit7CisgICAg
YXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0
aW1lTWVkaWFTb3VyY2UoZGV2aWNlKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICBMT0df
RVJST1IoIkZhaWxlZCB0byBjcmVhdGUgcmVhbHRpbWUgc291cmNlIik7CisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQoaWRlbnRpZmllciksIDApOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwor
ICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291
cmNlPihpZGVudGlmaWVyLCByZXN1bHQuc291cmNlKCksIG1ha2VSZWYoKm1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVy
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisg
ICAgICAgIHNvdXJjZS0+c3RhcnQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2Vz
LmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29u
bmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOworfQorCit1aW50NjRfdCBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFmNWIxOWUzNzBmNWJlMGE0Njg0ZDllMWNk
MjdlMDI3MGMwOTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBA
IC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJN
ZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VT
ZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyAgICB+U3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworCisjaWYgRU5BQkxFKFNBTkRC
T1hfRVhURU5TSU9OUykKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlJiYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKKyAgICB2b2lk
IHJldm9rZVNhbmRib3hFeHRlbnNpb25zKCk7CisjZW5kaWYKKworICAgIHZvaWQgYWRkU291cmNl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJ
UEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7Cisg
ICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKwor
ICAgIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CisgICAgZnJpZW5kIGNsYXNzIFJlYWx0aW1l
TWVkaWFTb3VyY2U7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBtX3NvdXJjZXM7
CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIFJlZlB0cjxTYW5kYm94RXh0
ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEOworICAgIFJlZlB0cjxTYW5kYm94RXh0
ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lOworI2VuZGlmCit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzEyNTdhMjgyNTlhZjVjN2Q0OGFmNzBkNGI4ZmRiNzFkMTA0MTlkZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM4IEBA
CisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBBZGRTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSBkZXZpY2UpCisgICAgUmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgU3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisgICAgU3RvcChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VY
VEVOU0lPTlMpCisgICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yVENDRCwgV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZvck1pY3JvcGhvbmUp
CisgICAgUmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorI2VuZGlmCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAppbmRleCAzZjM1
MzE5NGEzMmMzZTY3OWJjYTI5ZmJlYTg1MDMxYzkyMWU0ZmM0Li5lMGQyYTU5ODU1NWI5ODk3ODU4
NThhYjZjNjRhNzU0YWZkYTExMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsMTAgQEAgV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oU3BlZWNoUmVjb2du
aXRpb24KIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBtX2lkZW50aWZpZXIsICp0aGlzKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKG1faWRlbnRpZmllciksIDAp
OworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7Cisj
ZW5kaWYKIH0KIAogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCBmMmYyMjgyMmM3YjIyM2ZjYTU5Zjk1NTczZDExZGM5OWIxMDM0ODExLi5iMTIzOWM1
NzdiYjg0NmE4Y2M0ZGZjZjI4YmQyZDMwNDA0ZDNkZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc0Fz
c2VydGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJl
bW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNp
bmNsdWRlICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHku
aCIKQEAgLTE5NjksNiArMTk3MCwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmVuYWJsZVZQOVNXRGVj
b2RlcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzOjplbnN1cmVTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1f
c3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcikKKyAgICAgICAgbV9z
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPigpOworCisgICAgcmV0
dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cit9Cisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19TRVNT
SU9OX0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlOWM0N2RiNGM0
NDdjMGY0YWI2MjdjMDk0YjVmNjhkYjU2NWE5YTZjLi43ZTVhNGNhYTRjNWQyZTIzNzg4MTNlYjRm
MmY0MjI4YmRlNGNjNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAg
LTE0Miw2ICsxNDIsMTAgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogY2xh
c3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cisj
ZW5kaWYKKwogY2xhc3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzCiB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNjAsNiArMzY0LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZFdyaXRlVG9QYXN0ZWJvYXJkQXN5bmNocm9ub3VzbHkoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCisKIHBy
aXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogICAgIH5XZWJQcm9jZXNzKCk7CkBAIC02OTMsNiAr
NzAxLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ZwOURlY29kZXJFbmFibGVkIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fdnA5U1dEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Cg==
</data>
<flag name="commit-queue"
          id="432298"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415164</attachid>
            <date>2020-12-01 14:28:38 -0800</date>
            <delta_ts>2020-12-01 14:32:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201201142837.patch</filename>
            <type>text/plain</type>
            <size>88025</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE2YTRiYzRlYWNmMzFlMjA2YmRmYmFj
Zjk4NjUzZTYyYzJjNTcyNGYuLmE3ODdlOWY5MTljZDVlMzEzYTYwNGFiYTg3MGEzY2NiMzgxNjMx
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0z
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNl
IGFuIGV4cGVyaW1lbnRhbCBmbGFnIHNwZWNpZmljIHRvIFZQOSBwcm9maWxlIDIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0Y2Y4NWNjMjk2NDNkMGVhNTZjODQxZTdlZDliNzZlYTgzYTMxN2VlLi4xZTU1MzU5NmU2
YzAwN2E2ZGEyOGI2MTBjOGJhZWMyNTUyM2M1NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHNldCBSZWFsdGltZU1l
ZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuIAorCisg
ICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIE1vYmlsZU1pbmlCcm93c2VyLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXpl
cjo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhh
cnUub2h6ZWtpQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBNb3ZlIFNoYWRvd1Jvb3RJ
bml0IHRvIGRlZGljYXRlZCBpZGwgZmlsZSBmcm9tIEVsZW1lbnQuaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1
ZDllMmFlNmJhZTAyMzgxMTQyNmNiY2JiN2U5ZDY2ODQxYjg3ZDEuLmE3MTI2ZGI1ODA4OTc5OTJi
Zjc5ZjNlODRjYTcwMTc5ZWQ2NTM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMjAt
MTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPbiBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJv
Y2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25pdGlvbiwgVUkgcHJvY2VzcyBzaG91bGQgYXNrIHdlYiBw
cm9jZXNzIHRvCisgICAgICAgIGRvIGF1ZGlvIGNhcHR1cmUgYW5kIHNlbmQgYmFjayBkYXRhLiBU
byBpbXBsZW1lbnQgdGhpcywgd2UgaGF2ZSBpbnRyb2R1Y2VkOgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4gCisgICAgICAg
IE9uIGlPUywgd2UgdXNlIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcyBpbgorICAgICAgICBVSSBw
cm9jZXNzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6IG93biBhbmQgbWFuYWdlIGFsbCAKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZXMgaW4gd2ViIHByb2Nl
c3MuCisKKyAgICAgICAgTGlrZSBleGlzdGluZyBtZWRpYSBjYXB0dXJlIGltcGxlbWVudGF0aW9u
LCB3ZSB1c2Ugc2hhcmVkIG1lbW9yeSB0byBwYXNzIGF1ZGlvIGRhdGEgdG8gZnJvbSB3ZWIgcHJv
Y2VzcyB0byBVSQorICAgICAgICBwcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6Om1fcmluZ0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2Fw
dHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6Y29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVu
c2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTAxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgogCiAgICAgICAgIElUUCBsb2dnaW5nIG1peGVzIHVwIHRoZSBVSSBwcm9j
ZXNzIElUUCBzdGF0ZSB3aXRoIHRoZSBTZXR0aW5ncyBJVFAgc3RhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKaW5kZXggZDRkYWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJm
Mi4uNTc5YWE1M2JjOWJkODEwOGRiZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQ6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJL
aXQ6CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAg
ZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGZkODUxMjk4N2I5OWExYTgyOTVjMTA3ZTE5OWU1ZjA3NTUxNTNkMjYu
LmViYTA1ZWZkMzY2OTNhMzNkMjVjMzZkM2RhOGMxMDJmMWRjZjNjMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2
ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUy
ZmNkNDNkNzMxMDk3MmYzOGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBk
YXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURl
dmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAg
ICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVE
ZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1
MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAg
IGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmlj
ZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlv
Q2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVy
LCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJh
Y2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxi
YWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
ayksIFdURk1vdmUoc291cmNlKSk7Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJj
ZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVO
VVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5
ZjRlMGEuLjMyMDFhYzJlMzBiZTA4ZjU5Mjc1ZjQxZGNmZDRlYmY0N2JkOGI2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggYmZjNWJlMTAzNGJl
M2MxMmQyY2FkZWMzZTEyMTk0M2VhYjg5OTMyMy4uOTg0MjY3ZTJiMTk0OTFjNjRhYzVlZGVjNjM0
M2QwNzZlYjQxNDFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAK
QEAgLTg4LDYgKzg4LDEwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAgICBpZiAoIW1fZGF0
YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNv
dXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGF1dG8g
ZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNh
bXBsZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICAgICAgaWYgKGRhdGFTb3VyY2Ut
PnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICBpZiAoaXNN
YWluVGhyZWFkKCkpIHsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgICAgICAgICBpZiAo
d2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2Fw
dHVyZSwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0IiB9KSk7CkBAIC05Niw2ICsxMDAsMTAg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRhdGFT
b3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAg
aWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewogICAgICAgICAgICAg
ICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CkBAIC0xMTAs
NyArMTE4LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgIH0KIAogICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxlQ291bnQpOwotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRpbWUsIGF1ZGlv
RGVzY3JpcHRpb24sIHNhbXBsZUNvdW50XSB7CisgICAgYXV0byBtYWludGhyZWFkSGFuZGxlciA9
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0
aW9uLCBzYW1wbGVDb3VudF0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMjEsNyArMTI5LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAg
ICAgICAgfQogCiAgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3Jp
cHRpb24sIHNhbXBsZUNvdW50KTsKLSAgICB9KTsKKyAgICB9OworICAgIGlmICghaXNNYWluVGhy
ZWFkKCkpCisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShtYWludGhyZWFkSGFuZGxl
cikpOworICAgIGVsc2UKKyAgICAgICAgbWFpbnRocmVhZEhhbmRsZXIoKTsKICNlbHNlCiAgICAg
bV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
emVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMyOWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li5j
MGUxMDQ5OWM5M2Y1MWQ0NmE3YWZmZDQxZDUwODE0MDQ3M2I1OTNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtOTAsNyAr
OTAsMzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKCkKICAgICAgICAg
ICAgIG1fc291cmNlID0gbnVsbHB0cjsKICAgICB9OwogCi0gICAgbV9zb3VyY2UgPSBtYWtlVW5p
cXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwg
V1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spKTsKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gY2FwdHVyZURldmljZSA9IFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKTsKKyAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5v
IGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH0pKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbikgewor
ICAgICAgICBhdXRvIHJlYWx0aW1lU291cmNlID0gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb24oKmNhcHR1cmVEZXZpY2UpOworICAgICAgICBpZiAoIXJlYWx0aW1lU291cmNlKSB7
CisgICAgICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiRmFpbGVkIHRvIGNy
ZWF0ZSByZWFsdGltZSBzb3VyY2UiIH0pKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1v
dmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIG1ha2VSZWYoKnJlYWx0aW1lU291cmNlKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7
CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
bV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1f
Y2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBk
YXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgU3BlZWNo
UmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdlbmVyYXRl
RmluYWxSZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pemVyLmgKaW5kZXggZTZmMTNmZWU4NGE1MzNhZjBmMDRlMDc2OWMxYWUwOTViZTViZmYz
Zi4uNmYxMTI5YzU0NDVhZGNjZTc0MDU0MWE5N2RmZjM2MDZiMmNjMGFjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtNDUsNiAr
NDUsMTEgQEAgcHVibGljOgogCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgdXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gRnVuY3Rpb248UmVm
UHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmKT47CisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24o
UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYgZnVuY3Rpb24pIHsgbV9yZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgc3RhcnRJbnRlcm5hbCgp
OwpAQCAtNTMsNiArNTgsMTAgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7CiAgICAg
RGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBtX3Jl
YWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDJlN2U5ZmQyYjkxZWI4MTAxMzQ1NjBkZmZkODBhY2QyMTBiM2Zk
YzAuLjc0MmUyZGU0ZmY3ZWNmYTA1MTYzMTU1ZGM0ZWEzMTc4MTU2ZjlhMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzNjI1
LDEzICsyMzYyNSw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OwotCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJKTsKLQkJCXBhdGggPSBjb2Nv
YTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTk0NkQzNzI3MUQ2Q0IyMjUw
MDc3MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMjU2NjIsNyArMjU2NTUsNiBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUg
Lyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0
ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFB
MkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICov
LAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDYyODQ0NTMyNTAzMzUxMDdmZDU0OTgyMjMy
YjhiOWVhZWM4ZTY4Y2IuLjY4ZjdlZDg2NWM3MzEyMjkyOGMwNmM3MTcyYjM3Njk2Y2IyMmNlMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTAzLDYgKzEwMyw3IEBAIHNldChXZWJLaXRfSU5DTFVE
RV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIgorICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvU3BlZWNoIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3RvcmFnZSIK
ICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQiCkBAIC0xODMsNiArMTg0LDcgQEAgc2V0
KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyCiAKICAgICBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorICAgIFVJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAg
ICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rU3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CkBAIC0yNTQs
NiArMjU2LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJveHkKIAorICAgIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24KICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IGVkYjZjYTU5NzlkMmY0ZGVmOGIyYjJlNzczZjlkNjlhZTc4NmU3
ZTkuLjgzMWM4ZjAyOGE1NmUzYTMxMTU0ZWQ1NjIwMmNlMDAyMmE1MjNmNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwNCw2ICsxMDQs
NyBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveAogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5tZXNzYWdlcy5pbgpAQCAtMTYxLDYgKzE2Miw3IEBAICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5t
ZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKaW5kZXggNzU2NzlmNTVmNWFlMzk5YjVlYWY0NzdmMTg5MzI1NmJjMjQ4ODQ0ZC4uZmIy
ZmFkNmQ0YTljNmZiYjYxOWYzNjNiYjE0ZmIzMDc0ODhhMjc4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNjAsNiArMjYwLDEyIEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM3NzAxYjAxYzNjMWEyYzMwMGUxZGQyZDcyZTZi
ODUyMzdmNDI0YjUuLjg1Mjg3ODQ5NzMzZDNhODEzYmY0NDMxMDYyNTQ0MjQ2ZjEzYTdmMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY5LDYgKzY5LDcgQEAgVlBBVEggPSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZSBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1NwZWVjaCBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL1N0b3JhZ2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIFwKQEAgLTE2Nyw2
ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01l
ZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uIFwKQEAgLTIwMSw2ICsyMDMsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwK
IAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKIAlXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgXAogCVdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIFwK
KwlXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24gXAogCVdlYlBy
b2Nlc3MvV2ViUHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwOTE3ZjAxYmUxYzlmOGNhYTJhYmY3
ZjBmODkwZjg5NWEzZjJlZjg2Li44ODZkYjZjODdmZWE2Y2E3MTIzNjExMDA4Y2YwMzg5ZDk4YTFl
ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTI5MCw2ICsyOTAsOCBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cAorVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nl
c3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9s
bGVyLmNwcApAQCAtNjM1LDYgKzYzNyw4IEBAIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBAbm8tdW5pZnkKIAorV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKwog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFhNWRkMjJmNmM1ODQ4ZmJhYTE1Y2QyY2Q5ZjdiMjA5
ZjQzYjhhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVk
ZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNl
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBj
YXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50
SWQoKSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBtX3JpbmdC
dWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkKKyNlbmRpZgoreworICAgIG1fbWFuYWdlci0+YWRkU291
cmNlKCp0aGlzLCBjYXB0dXJlRGV2aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjp+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnJlbW92
ZVNvdXJjZSgqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIp
CisgICAgICAgIG1fbWFuYWdlci0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdGFydCB7IG1faWRlbnRpZmll
ciB9LCAwKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAg
ICBtX21hbmFnZXItPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RvcCB7IG1faWRlbnRpZmllciB9LCAwKTsK
K30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRs
ZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0g
ZGVzY3JpcHRpb247CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYg
KCFoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAo
aGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9H
X0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2Ui
KTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkp
IHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uu
c2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5
LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAg
bV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAg
IG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
VGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKCFtX2J1
ZmZlcikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZlciBmb3IgcmVtb3RlIHNvdXJjZSBpcyBu
dWxsIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7CisgICAgbV9y
aW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwor
ICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMs
IHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9i
dWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7CisgICAgVU5V
U0VEX1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShlbmRGcmFtZSk7CisjZW5k
aWYKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnJlbW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJj
ZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42N2JjMGQxMzFmMmNkYjE1ZjkyNWNlMDkwMTk1N2VmYTRkNDQwY2JlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmlj
ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIH5TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0U3RvcmFnZShjb25z
dCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgdm9pZCBy
ZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQg
cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOwor
Citwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmKTsKKworICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2
b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0Rh
dGEoKSBmaW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQor
ICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX21hbmFnZXI7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZm
ZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9C
dWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGJkN2E4N2E0MDg0MzllNDg3MzM1NGM1NTRmNzBmOWFm
ZjUyZmMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCAr
MSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0
aW9uKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlJiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVE
ZXZpY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAg
ICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2Vz
LmFkZChpZGVudGlmaWVyLCAmc291cmNlKTsKKworICAgIGlmICghbV9oYXNHcmFudGVkU2FuZGJv
eEV4dGVuc2lvbnMpIHsKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yVENDRDsKKyAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnRjY2QiX3MsIG1f
Y29ubmVjdGlvbi0+Z2V0QXVkaXRUb2tlbigpLCBoYW5kbGVGb3JUQ0NEKTsKKyAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvck1pY3JvcGhvbmU7CisgICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53
ZWJraXQubWljcm9waG9uZSJfcywgaGFuZGxlRm9yTWljcm9waG9uZSk7CisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Okdy
YW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9yVENDRCwgaGFuZGxlRm9yTWljcm9waG9uZSkp
OworI2VuZGlmCisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gdHJ1ZTsK
KyAgICB9CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSkpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigp
OworICAgIEFTU0VSVChtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpID09ICZzb3VyY2UpOworICAg
IG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7CisKKyAgICBpZiAobV9zb3VyY2VzLmlzRW1w
dHkoKSAmJiBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworI2lmIEVOQUJMRShTQU5E
Qk9YX0VYVEVOU0lPTlMpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOwor
I2VuZGlmCisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gZmFsc2U7Cisg
ICAgfQorCisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6UmVtb3ZlU291cmNlKGlkZW50aWZpZXIpKTsKK30KKworI2lmIFBMQVRG
T1JNKENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRs
ZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291
cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c2V0U3RvcmFnZShpcGNIYW5k
bGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkK
K3sKKyAgICBpZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAg
ICAgICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVyT2ZG
cmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
aWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBp
ZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291
cmNlLT5yZW1vdGVTb3VyY2VTdG9wcGVkKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9
CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
MDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhODU5N2Q3
MmMxNGViODA4NjA3NDZhZDg4MjgzYjlhNmExMmMyZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQ
Qzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlJik7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0
b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICB2b2lkIHJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWlu
dDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2Fw
dHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKKworICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1f
Y29ubmVjdGlvbi5wdHIoKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2Vp
dmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBD
OjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAg
IHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAg
ICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgSGFzaE1hcDxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKj4gbV9zb3VyY2VzOworICAgIGJvb2wgbV9oYXNHcmFudGVkU2Fu
ZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBlM2Y2Y2Y2MDE5MWZlMWQ4MTA1
ZWUzNDFlODhiZWYzZDRmZjk5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRl
ZCB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYKKworICAgIFJl
bW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNh
cHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICBSZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDlmNjAwZDNm
NWNkYzZjMzJjNTQ4YTBhMDlhYjAyYmMxNDUzNDUyNDQuLmRkMzg3OGFkMDQ5YWRhYTBmY2Y2YWM1
YjIyMzQ5NTUyNmZjMzdiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTkxLDYgKzkxLDE0IEBAIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uCiAKICAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKICAgICAgICAg
fSk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICAgICBpZiAobV9yZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pIHsKKyAgICAgICAgICAgIG1fcmVjb2duaXplci0+c2V0
UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFt0aGlzXShhdXRvJiBkZXZpY2UpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rp
b24oZGV2aWNlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAK
ICAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggYTdmNzZk
MzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNy4uN2IwNmZmMTM3NTllNGQ4Mjc3NDZi
ZDM4YmQ1ZDgyNDZlN2IzYTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC01Nyw2ICs1NywxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml6ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0
aW9uKSB7IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5j
dGlvbik7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25G
b3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwogICAgIHZvaWQg
aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyKTsKQEAgLTc1LDYgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsK
ICAgICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNr
ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVj
b2duaXplcjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXplcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IGU3ZDljZGZlNTUzNWMyN2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLjc4NWVhNDk2OWVlMmVk
ZDg1YTJiYTI2YzM0YzJjODYyMTg0NDk0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzgsNiArMzgsOSBAQAogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAg
LTE3MDIsOCArMTcwNSw4IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlByb2Nlc3NQcm94eTo6c2Vzc2lv
bklEKCkgY29uc3QKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0
aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewotICAgIGF1dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsKLSAgICBBU1NFUlQoc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAgQVNTRVJUKCFtX3NwZWVjaFJlY29nbml0
aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvJiBzcGVlY2hSZWNv
Z25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZp
ZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBXZWJQYWdlUHJveHkqIHRhcmdldFBh
Z2UgPSBudWxscHRyOwogICAgIGZvciAoYXV0byogcGFnZSA6IHBhZ2VzKCkpIHsKICAgICAgICAg
aWYgKHBhZ2UgJiYgcGFnZS0+d2ViUGFnZUlEKCkgPT0gaWRlbnRpZmllcikgewpAQCAtMTcxNSw3
ICsxNzE4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKICAgICBpZiAoIXRhcmdldFBhZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9y
LT52YWx1ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNv
bm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBh
Z2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7Cisg
ICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9u
U2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBt
YWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhh
bmRsZXIpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdlKSB7CiAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVu
eSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzIzLDcgKzE3MjYsMjAgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnQKIAogICAgICAgICB3ZWFrUGFnZS0+cmVxdWVzdFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9
KTsKLSAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5pdGVyYXRvci0+dmFsdWUpOworICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRp
ZmllciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIt
PnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0
byYgZGV2aWNlKSAtPiBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4geworICAg
ICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAg
ICAgaWYgKCF3ZWFrUGFnZSB8fCB3ZWFrUGFnZS0+cHJlZmVyZW5jZXMoKS5jYXB0dXJlQXVkaW9J
bkdQVVByb2Nlc3NFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
ICAgICBhdXRvJiBzb3VyY2VNYW5hZ2VyID0gZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworICAgICAgICByZXR1cm4gU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoc291cmNlTWFuYWdlciwgZGV2
aWNlKTsKKyAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJv
eVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmll
ciBpZGVudGlmaWVyKQpAQCAtMTczMyw2ICsxNzQ5LDIwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJ
ZGVuCiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5yZW1vdmUoaWRlbnRpZmllcik7
CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlm
ICghbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKSB7
CisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSk7CisgICAgICAgIGFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqbV9zcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKm1f
c3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKwor
I2VuZGlmCisKICNpZiBQTEFURk9STShXQVRDSE9TKQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
c3RhcnRCYWNrZ3JvdW5kQWN0aXZpdHlGb3JGdWxsc2NyZWVuSW5wdXQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBjMTBiMzk0OGQ3NzY3NjM3MTRkMTY0
NzliNTkzNjI4MmE2OTczM2RhLi43N2QzMDljNWNkZDRmMTNiZGIwNDNkNzQxODk5NjgzNDRiZWNi
MzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAz
LDYgKzEwMywxMCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBX
ZWJQcmVmZXJlbmNlc1N0b3JlOwogc3RydWN0IFdlYnNpdGVEYXRhOwogCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI7CisjZW5kaWYKKwogZW51bSBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJU
eXBlIHsgfTsKIHR5cGVkZWYgUmVmQ291bnRlcjxGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJU
eXBlPiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI7CiB0eXBlZGVmIEZvcmVncm91bmRXZWJQ
cm9jZXNzQ291bnRlcjo6VG9rZW4gRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbjsKQEAgLTUwNSw2
ICs1MDksOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGVzdHJv
eVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmll
cik7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3lzdGVt
QmVlcCgpOwogICAgIApAQCAtNjQzLDYgKzY1MCw5IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCA9IEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+PjsK
ICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVy
TWFwOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAzNTI4ZjQ3MWY0NjNkZjZjMTEzMGEzZmI4Mzc3NmJmMWIy
YWJlZjk0Li43YWE0NGQ1ODQ0NTQ1YjgwYTE2MDBlYmNiYzg0OGExYTMxZjViZjZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MzEs
NiArMTQzMSwxMSBAQAogCQk5M0E4OEIzMzFCQzZFOUNEMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJl
c3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTg4QjMxMUJDNkU5QzAwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oICovOyB9
OwogCQk5M0E4OEIzQjFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIz
QTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87IH07CiAJ
CTkzQTg4QjQ2MUJDODgyOTMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEI0MzFCQzg4MjhDMDBB
QkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5oICovOyB9OworCQk5M0FCOUI0QzI1NzU2M0YzMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEEyNTc0
QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07
CisJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJOTNBQjlCNTUyNTc1QTI3NjAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk5M0FCOUI1NjI1
NzVBMjhCMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCTkzQjI2MTREMjI3RDE0OUUwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDky
MjdEMTQ3MjAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzQjI2MTRFMjI3
RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8q
IExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3
NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKQEAgLTQ1ODIsNiArNDU4NywyMCBAQAog
CQk5M0E4OEIzQTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MjFCQzg4MjhDMDBBQkE1
QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBUElIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNBODhCNDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5
QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEIyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRGMjU3NTg5MTEwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MDI1NzU4OTExMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ1MjI3RDE0NzAw
MEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VU
cmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURh
dGFiYXNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0NzIy
N0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTUxLDYgKzg5NzAsMTYgQEAK
IAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5M0FC
OUI0ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJOTNBQjlC
NEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0OTI1NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7
CisJCQlwYXRoID0gU3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
OTNCMjYxNDMyMjdEMTQzMTAwQjk3QTc2IC8qIFdlYlN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTE1NSw2ICs5MTg0LDcgQEAKIAkJCQk1MTA1
QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4QUE4
MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0
OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCisJCQkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8q
IFNwZWVjaCAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLywK
IAkJCQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCiAJCQkJNTc2
MDgyOEEyMDI5ODRDOTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0aW9uICovLApAQCAtOTM2OCw2
ICs5Mzk4LDExIEBACiAJCQkJOTNENkI3QjAyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwICovLAogCQkJCTkzRDZCN0IyMjU1MjY4QTIwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJOTNE
NkI3QUYyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVl
c3QuaCAqLywKKwkJCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5M0FCOUI0MjI1NzQ5MjhD
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgg
Ki8sCisJCQkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkzQUI5QjQ1MjU3NDky
OEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJOTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cCAqLywKIAkJCQk5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaCAqLywKIAkJCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0xMDUxMiw2ICsxMDU0NywxMiBAQAogCQkJ
CTFERDJBNjcyMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxREQyQTY3MzI1NjIzMjRGMDBGRjdCNkYgLyogU291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NzEyNTYyMzI0
RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAq
LywKKwkJCQk5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlC
NTQyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggKi8sCisJCQkJOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAor
CQkJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MjI1NzU4
OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
OTNENkI3ODAyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZXMuaCAqLywKIAkJCQk5M0Q2Qjc3RjI1NENDQUJCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTExNTgwLDYgKzExNjIxLDkgQEAKIAkJ
CQk1N0ZEMzE4NTIyQjM1MTY5MDA4RDBFOEIgLyogU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3QjUyNTUyNjhENzAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I0MjU1
MjY4RDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0FCOUI0QzI1NzU2M0YzMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNB
QjlCNEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODQyNTRDQ0QwRTAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1l
c3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzM0Nyw2ICsxMzM5MSw4IEBACiAJ
CQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRN
YWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxREQyQTY3NDI1NjIzMkExMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NTI1NzVBMjc2
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NjI1NzVBMjhCMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0Q2Qjc4MjI1NENDQ0Y0
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVh
TWFwTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNjhFRURFMjMwM0E5
MDIwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3ZmVjODYwYWFlYTk3ZDAzNjI0NzVkMGYwMTY2NjZj
NDVhMGRhYzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0w
LDAgKzEsMjc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaD4KKworI2lm
IFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQXVkaW9E
YXRhLmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgPFdlYkNv
cmUvQXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVk
aWFTb3VyY2UKKyAgICA6IHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2Jz
ZXJ2ZXIKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9T
YW1wbGVPYnNlcnZlcgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgcHVibGljIFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyNlbmRpZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYgc291cmNlLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24p
CisgICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2Uo
V1RGTW92ZShzb3VyY2UpKQorICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rp
b24pKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlPih0aGlzKSkpCisjZW5kaWYKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5h
ZGRPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2Vy
dmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpCisgICAgewor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworI2Vu
ZGlmCisgICAgICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsK
KyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB2
b2lkIHN0YXJ0KCkKKyAgICB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiWyVwXVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN0YXJ0KCkgaWRlbnRpZmllclslbGx1XSIsIHRoaXMsIG1faWRlbnRpZmllci50
b1VJbnQ2NCgpKTsKKworICAgICAgICBtX3NvdXJjZS0+c3RhcnQoKTsKKyAgICB9CisKKyAgICB2
b2lkIHN0b3AoKQorICAgIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJbJXBdUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RvcCgpIGlkZW50aWZpZXJbJWxsdV0iLCB0aGlzLCBtX2lkZW50aWZpZXIudG9V
SW50NjQoKSk7CisKKyAgICAgICAgbV9zb3VyY2UtPnN0b3AoKTsKKyAgICB9CisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpCisgICAg
eworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPiht
X3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsKKyAgICB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICB2
b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbAorICAgIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJb
JXBdUmVhbHRpbWVNZWRpYVNvdXJjZTo6c291cmNlU3RvcHBlZCgpIGlkZW50aWZpZXJbJWxsdV0i
LCB0aGlzLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICAgICAgaWYgKG1fc291cmNl
LT5jYXB0dXJlRGlkRmFpbCgpKSB7CisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlbW90ZUNhcHR1cmVGYWlsZWQobV9pZGVudGlmaWVyKSwgMCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVTb3Vy
Y2VTdG9wcGVkKG1faWRlbnRpZmllciksIDApOworICAgIH0KKworICAgIHZvaWQgYXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgV2ViQ29yZTo6UGxhdGZv
cm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykgZmluYWwKKyAgICB7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIFdURkxvZ0Fsd2F5cygiWyVwXVJlYWx0aW1lTWVk
aWFTb3VyY2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSgpIGlkZW50aWZpZXJbJWxsdV0iLCB0aGlz
LCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICAgICAgaWYgKG1fZGVzY3JpcHRpb24g
IT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9y
bURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFt
QmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3Qg
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlw
dGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1f
ZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgICAgIG1fcmluZ0J1ZmZlci5h
bGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFt
ZXMpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4o
YXVkaW9EYXRhKSk7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zdG9yZShkb3duY2FzdDxXZWJBdWRp
b0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1l
VmFsdWUoKSk7CisgICAgICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgICAgIHVpbnQ2NF90
IGVuZEZyYW1lOworICAgICAgICBtX3JpbmdCdWZmZXIuZ2V0Q3VycmVudEZyYW1lQm91bmRzKHN0
YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1v
dGVBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZGVudGlmaWVyLCB0aW1lLCBudW1iZXJPZkZyYW1l
cywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJB
TSh0aW1lKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGF1ZGlvRGF0YSk7CisgICAgICAgIFVOVVNF
RF9QQVJBTShkZXNjcmlwdGlvbik7CisgICAgICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1l
cyk7CisjZW5kaWYKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKworICAgIHZvaWQgc3Rv
cmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbAorICAgIHsKKyAgICAgICAg
V1RGTG9nQWx3YXlzKCJbJXBdUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcmFnZUNoYW5nZWQoKSBp
ZGVudGlmaWVyWyVsbHVdIiwgdGhpcywgbV9pZGVudGlmaWVyLnRvVUludDY0KCkpOworCisgICAg
ICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKHN0b3JhZ2UpCisg
ICAgICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTZXRT
dG9yYWdlKG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhh
bmRsZSksICAwIH0sIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9
CisKKyNlbmRpZgorCisgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBmaW5hbAorICAgIHsK
KyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJbJXBdU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXVkaW9Vbml0V2lsbFN0YXJ0
KCkgaWRlbnRpZmllclslbGx1XSIsIHRoaXMsIGlkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAg
ICAgICAgYXV0byBidWZmZXJTaXplID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2Ft
cGxlUmF0ZSgpIC8gNTA7CisgICAgICAgIGlmIChBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5wcmVmZXJyZWRCdWZmZXJTaXplKCkgPiBidWZmZXJTaXplKQorICAgICAgICAgICAgQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXpl
KTsKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVk
aW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkLCBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOwor
I2VuZGlmCisgICAgfQorCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBt
X3NvdXJjZTsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgaW50
NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
Q0FSaW5nQnVmZmVyIG1fcmluZ0J1ZmZlcjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24g
bV9kZXNjcmlwdGlvbiB7IH07CisjZW5kaWYKK307CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoKnRoaXMpOworfQorCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9O
UykKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpn
cmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hI
YW5kbGVGb3JUQ0NELCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9y
TWljcm9waG9uZSkKK3sKKyAgICBXVEZMb2dBbHdheXMoIlslcF1TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKCkiLCB0aGlz
KTsKKworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yVENDRCkpOworICAgIGlmICghbV9zYW5kYm94
RXh0ZW5zaW9uRm9yVENDRCkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNh
bmRib3ggZXh0ZW5zaW9uIGZvciB0Y2NkIik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hF
eHRlbnNpb25Gb3JUQ0NELT5jb25zdW1lKCk7CisKKyAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JN
aWNyb3Bob25lID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJveEhhbmRs
ZUZvck1pY3JvcGhvbmUpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhv
bmUpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lv
biBmb3IgbWljcm9waG9uZSIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9u
Rm9yTWljcm9waG9uZS0+Y29uc3VtZSgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKK3sKKyAg
ICBXVEZMb2dBbHdheXMoIlslcF1TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpIiwgdGhpcyk7CisKKyAgICBpZiAobV9z
YW5kYm94RXh0ZW5zaW9uRm9yVENDRCkgeworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JU
Q0NELT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9IG51bGxw
dHI7CisgICAgfQorCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUpIHsK
KyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+cmV2b2tlKCk7CisgICAg
ICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBudWxscHRyOworICAgIH0KK30K
KworI2VuZGlmCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6YWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSkKK3sKKyAgICBX
VEZMb2dBbHdheXMoIlslcF1TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjphZGRTb3VyY2UoKSBpZGVudGlmaWVyWyVsbHVdIiwgdGhpcywgaWRlbnRpZmllci50b1VJ
bnQ2NCgpKTsKKworICAgIGF1dG8gcmVzdWx0ID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7CisgICAgaWYg
KCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHJlYWx0aW1l
IHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKGlkZW50aWZp
ZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCghbV9zb3VyY2Vz
LmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1h
a2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZT4oaWRlbnRpZmllciwgcmVzdWx0LnNvdXJjZSgp
LCBtYWtlUmVmKCptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKSkpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFdU
RkxvZ0Fsd2F5cygiWyVwXVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnJlbW92ZVNvdXJjZSgpIGlkZW50aWZpZXJbJWxsdV0iLCB0aGlzLCBpZGVudGlmaWVyLnRv
VUludDY0KCkpOworCisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFdU
RkxvZ0Fsd2F5cygiWyVwXVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnN0YXJ0KCkgaWRlbnRpZmllclslbGx1XSIsIHRoaXMsIGlkZW50aWZpZXIudG9VSW50NjQo
KSk7CisKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQor
ICAgICAgICBzb3VyY2UtPnN0YXJ0KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIFdURkxvZ0Fsd2F5cygiWyVwXVNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3AoKSBpZGVudGlmaWVyWyVs
bHVdIiwgdGhpcywgaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKworICAgIGlmIChhdXRvIHNvdXJj
ZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RvcCgpOwor
fQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKK30KKwor
dWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVz
c2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxZjViMTllMzcwZjVi
ZTBhNDY4NGQ5ZTFjZDI3ZTAyNzBjMDkwN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7Cisg
ICAgflNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgdm9pZCBncmFudFNhbmRib3hFeHRlbnNp
b25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
Jik7CisgICAgdm9pZCByZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpOworI2VuZGlmCisKKyAgICB2
b2lkIGFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0KFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworCitwcml2YXRlOgorICAgIC8vIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VT
ZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNv
bnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29u
c3QgZmluYWw7CisKKyAgICBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIGZyaWVuZCBj
bGFzcyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNl
Pj4gbV9zb3VyY2VzOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICBSZWZQ
dHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRDsKKyAgICBSZWZQ
dHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZTsKKyNl
bmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMxMjU3YTI4MjU5YWY1YzdkNDhhZjcwZDRiOGZkYjcxZDEwNDE5
ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwzOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgQWRkU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UgZGV2aWNlKQorICAgIFJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFN0YXJ0KFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworICAgIFN0b3AoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisKKyNpZiBFTkFC
TEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIEdyYW50U2FuZGJveEV4dGVuc2lvbnMoV2ViS2l0
OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZvclRDQ0Qs
IFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVG
b3JNaWNyb3Bob25lKQorICAgIFJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKKyNlbmRpZgorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5j
cHAKaW5kZXggM2YzNTMxOTRhMzJjM2U2NzliY2EyOWZiZWE4NTAzMWM5MjFlNGZjNC4uZTBkMmE1
OTg1NTViOTg5Nzg1ODU4YWI2YzY0YTc1NGFmZGExMTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDEwIEBAIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
KFNwZWVjaFJlY29nbml0aW9uCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpDcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihtX2lk
ZW50aWZpZXIpLCAwKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcigpOworI2VuZGlmCiB9CiAKIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggZjJmMjI4MjJjN2IyMjNmY2E1OWY5NTU3M2QxMWRjOTliMTAz
NDgxMS4uYjEyMzljNTc3YmI4NDZhOGNjNGRmY2YyOGJkMmQzMDQwNGQzZGY0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1
ZGUgIlByb2Nlc3NBc3NlcnRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIK
ICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VB
cmVhTWFwLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5LmgiCkBAIC0xOTY5LDYgKzE5NzAsMTYgQEAgdm9pZCBXZWJQcm9jZXNzOjpl
bmFibGVWUDlTV0RlY29kZXIoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vz
czo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7
CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
CisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA9
IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4o
KTsKKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVM
RUFTRV9MT0dfU0VTU0lPTl9JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggZTljNDdkYjRjNDQ3YzBmNGFiNjI3YzA5NGI1ZjY4ZGI1NjVhOWE2Yy4uN2U1YTRjYWE0YzVk
MmUyMzc4ODEzZWI0ZjJmNDIyOGJkZTRjYzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCkBAIC0xNDIsNiArMTQyLDEwIEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVyczsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOworI2VuZGlmCisKIGNsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5
UHJvY2VzcwogewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMzYwLDYgKzM2NCwx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRXcml0ZVRvUGFzdGVib2FyZEFzeW5jaHJvbm91c2x5
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXImIGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsK
KyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJvY2Vzcygp
OwpAQCAtNjkzLDYgKzcwMSwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92cDlEZWNvZGVyRW5h
YmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZwOVNXRGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9
OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0
cjxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415166</attachid>
            <date>2020-12-01 14:33:00 -0800</date>
            <delta_ts>2020-12-01 23:23:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201201143259.patch</filename>
            <type>text/plain</type>
            <size>88027</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE2YTRiYzRlYWNmMzFlMjA2YmRmYmFj
Zjk4NjUzZTYyYzJjNTcyNGYuLmE3ODdlOWY5MTljZDVlMzEzYTYwNGFiYTg3MGEzY2NiMzgxNjMx
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0z
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNl
IGFuIGV4cGVyaW1lbnRhbCBmbGFnIHNwZWNpZmljIHRvIFZQOSBwcm9maWxlIDIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0Y2Y4NWNjMjk2NDNkMGVhNTZjODQxZTdlZDliNzZlYTgzYTMxN2VlLi4xZTU1MzU5NmU2
YzAwN2E2ZGEyOGI2MTBjOGJhZWMyNTUyM2M1NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHNldCBSZWFsdGltZU1l
ZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuIAorCisg
ICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIE1vYmlsZU1pbmlCcm93c2VyLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXpl
cjo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhh
cnUub2h6ZWtpQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBNb3ZlIFNoYWRvd1Jvb3RJ
bml0IHRvIGRlZGljYXRlZCBpZGwgZmlsZSBmcm9tIEVsZW1lbnQuaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1
ZDllMmFlNmJhZTAyMzgxMTQyNmNiY2JiN2U5ZDY2ODQxYjg3ZDEuLmE3MTI2ZGI1ODA4OTc5OTJi
Zjc5ZjNlODRjYTcwMTc5ZWQ2NTM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMjAt
MTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPbiBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJv
Y2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25pdGlvbiwgVUkgcHJvY2VzcyBzaG91bGQgYXNrIHdlYiBw
cm9jZXNzIHRvCisgICAgICAgIGRvIGF1ZGlvIGNhcHR1cmUgYW5kIHNlbmQgYmFjayBkYXRhLiBU
byBpbXBsZW1lbnQgdGhpcywgd2UgaGF2ZSBpbnRyb2R1Y2VkOgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4gCisgICAgICAg
IE9uIGlPUywgd2UgdXNlIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcyBpbgorICAgICAgICBVSSBw
cm9jZXNzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6IG93biBhbmQgbWFuYWdlIGFsbCAKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZXMgaW4gd2ViIHByb2Nl
c3MuCisKKyAgICAgICAgTGlrZSBleGlzdGluZyBtZWRpYSBjYXB0dXJlIGltcGxlbWVudGF0aW9u
LCB3ZSB1c2Ugc2hhcmVkIG1lbW9yeSB0byBwYXNzIGF1ZGlvIGRhdGEgdG8gZnJvbSB3ZWIgcHJv
Y2VzcyB0byBVSQorICAgICAgICBwcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6Om1fcmluZ0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2Fw
dHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6Y29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVu
c2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTAxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgogCiAgICAgICAgIElUUCBsb2dnaW5nIG1peGVzIHVwIHRoZSBVSSBwcm9j
ZXNzIElUUCBzdGF0ZSB3aXRoIHRoZSBTZXR0aW5ncyBJVFAgc3RhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKaW5kZXggZDRkYWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJm
Mi4uNTc5YWE1M2JjOWJkODEwOGRiZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQ6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJL
aXQ6CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAg
ZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGZkODUxMjk4N2I5OWExYTgyOTVjMTA3ZTE5OWU1ZjA3NTUxNTNkMjYu
LmViYTA1ZWZkMzY2OTNhMzNkMjVjMzZkM2RhOGMxMDJmMWRjZjNjMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2
ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUy
ZmNkNDNkNzMxMDk3MmYzOGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBk
YXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURl
dmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAg
ICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVE
ZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1
MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAg
IGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmlj
ZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlv
Q2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVy
LCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJh
Y2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxi
YWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
ayksIFdURk1vdmUoc291cmNlKSk7Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJj
ZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVO
VVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5
ZjRlMGEuLjMyMDFhYzJlMzBiZTA4ZjU5Mjc1ZjQxZGNmZDRlYmY0N2JkOGI2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggYmZjNWJlMTAzNGJl
M2MxMmQyY2FkZWMzZTEyMTk0M2VhYjg5OTMyMy4uOTg0MjY3ZTJiMTk0OTFjNjRhYzVlZGVjNjM0
M2QwNzZlYjQxNDFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAK
QEAgLTg4LDYgKzg4LDEwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAgICBpZiAoIW1fZGF0
YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNv
dXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGF1dG8g
ZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNh
bXBsZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICAgICAgaWYgKGRhdGFTb3VyY2Ut
PnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICBpZiAoaXNN
YWluVGhyZWFkKCkpIHsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgICAgICAgICBpZiAo
d2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2Fw
dHVyZSwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0IiB9KSk7CkBAIC05Niw2ICsxMDAsMTAg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRhdGFT
b3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAg
aWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewogICAgICAgICAgICAg
ICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CkBAIC0xMTAs
NyArMTE4LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgIH0KIAogICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxlQ291bnQpOwotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRpbWUsIGF1ZGlv
RGVzY3JpcHRpb24sIHNhbXBsZUNvdW50XSB7CisgICAgYXV0byBtYWludGhyZWFkSGFuZGxlciA9
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0
aW9uLCBzYW1wbGVDb3VudF0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMjEsNyArMTI5LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAg
ICAgICAgfQogCiAgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3Jp
cHRpb24sIHNhbXBsZUNvdW50KTsKLSAgICB9KTsKKyAgICB9OworICAgIGlmICghaXNNYWluVGhy
ZWFkKCkpCisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShtYWludGhyZWFkSGFuZGxl
cikpOworICAgIGVsc2UKKyAgICAgICAgbWFpbnRocmVhZEhhbmRsZXIoKTsKICNlbHNlCiAgICAg
bV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
emVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMyOWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li5j
MGUxMDQ5OWM5M2Y1MWQ0NmE3YWZmZDQxZDUwODE0MDQ3M2I1OTNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtOTAsNyAr
OTAsMzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKCkKICAgICAgICAg
ICAgIG1fc291cmNlID0gbnVsbHB0cjsKICAgICB9OwogCi0gICAgbV9zb3VyY2UgPSBtYWtlVW5p
cXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwg
V1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spKTsKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gY2FwdHVyZURldmljZSA9IFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKTsKKyAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5v
IGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH0pKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbikgewor
ICAgICAgICBhdXRvIHJlYWx0aW1lU291cmNlID0gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb24oKmNhcHR1cmVEZXZpY2UpOworICAgICAgICBpZiAoIXJlYWx0aW1lU291cmNlKSB7
CisgICAgICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiRmFpbGVkIHRvIGNy
ZWF0ZSByZWFsdGltZSBzb3VyY2UiIH0pKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1v
dmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIG1ha2VSZWYoKnJlYWx0aW1lU291cmNlKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7
CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
bV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1f
Y2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBk
YXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgU3BlZWNo
UmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdlbmVyYXRl
RmluYWxSZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pemVyLmgKaW5kZXggZTZmMTNmZWU4NGE1MzNhZjBmMDRlMDc2OWMxYWUwOTViZTViZmYz
Zi4uNmYxMTI5YzU0NDVhZGNjZTc0MDU0MWE5N2RmZjM2MDZiMmNjMGFjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtNDUsNiAr
NDUsMTEgQEAgcHVibGljOgogCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgdXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gRnVuY3Rpb248UmVm
UHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmKT47CisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24o
UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYgZnVuY3Rpb24pIHsgbV9yZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgc3RhcnRJbnRlcm5hbCgp
OwpAQCAtNTMsNiArNTgsMTAgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7CiAgICAg
RGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBtX3Jl
YWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDJlN2U5ZmQyYjkxZWI4MTAxMzQ1NjBkZmZkODBhY2QyMTBiM2Zk
YzAuLjc0MmUyZGU0ZmY3ZWNmYTA1MTYzMTU1ZGM0ZWEzMTc4MTU2ZjlhMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzNjI1
LDEzICsyMzYyNSw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OwotCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJKTsKLQkJCXBhdGggPSBjb2Nv
YTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTk0NkQzNzI3MUQ2Q0IyMjUw
MDc3MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMjU2NjIsNyArMjU2NTUsNiBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUg
Lyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0
ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFB
MkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICov
LAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDYyODQ0NTMyNTAzMzUxMDdmZDU0OTgyMjMy
YjhiOWVhZWM4ZTY4Y2IuLjY4ZjdlZDg2NWM3MzEyMjkyOGMwNmM3MTcyYjM3Njk2Y2IyMmNlMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTAzLDYgKzEwMyw3IEBAIHNldChXZWJLaXRfSU5DTFVE
RV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIgorICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvU3BlZWNoIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3RvcmFnZSIK
ICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQiCkBAIC0xODMsNiArMTg0LDcgQEAgc2V0
KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyCiAKICAgICBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorICAgIFVJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAg
ICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rU3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CkBAIC0yNTQs
NiArMjU2LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJveHkKIAorICAgIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24KICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IGVkYjZjYTU5NzlkMmY0ZGVmOGIyYjJlNzczZjlkNjlhZTc4NmU3
ZTkuLjgzMWM4ZjAyOGE1NmUzYTMxMTU0ZWQ1NjIwMmNlMDAyMmE1MjNmNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwNCw2ICsxMDQs
NyBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveAogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5tZXNzYWdlcy5pbgpAQCAtMTYxLDYgKzE2Miw3IEBAICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5t
ZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKaW5kZXggNzU2NzlmNTVmNWFlMzk5YjVlYWY0NzdmMTg5MzI1NmJjMjQ4ODQ0ZC4uZmIy
ZmFkNmQ0YTljNmZiYjYxOWYzNjNiYjE0ZmIzMDc0ODhhMjc4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNjAsNiArMjYwLDEyIEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM3NzAxYjAxYzNjMWEyYzMwMGUxZGQyZDcyZTZi
ODUyMzdmNDI0YjUuLjg1Mjg3ODQ5NzMzZDNhODEzYmY0NDMxMDYyNTQ0MjQ2ZjEzYTdmMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY5LDYgKzY5LDcgQEAgVlBBVEggPSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZSBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1NwZWVjaCBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL1N0b3JhZ2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIFwKQEAgLTE2Nyw2
ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01l
ZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uIFwKQEAgLTIwMSw2ICsyMDMsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwK
IAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKIAlXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgXAogCVdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIFwK
KwlXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24gXAogCVdlYlBy
b2Nlc3MvV2ViUHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwOTE3ZjAxYmUxYzlmOGNhYTJhYmY3
ZjBmODkwZjg5NWEzZjJlZjg2Li44ODZkYjZjODdmZWE2Y2E3MTIzNjExMDA4Y2YwMzg5ZDk4YTFl
ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTI5MCw2ICsyOTAsOCBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cAorVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nl
c3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9s
bGVyLmNwcApAQCAtNjM1LDYgKzYzNyw4IEBAIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBAbm8tdW5pZnkKIAorV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKwog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFhNWRkMjJmNmM1ODQ4ZmJhYTE1Y2QyY2Q5ZjdiMjA5
ZjQzYjhhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVk
ZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNl
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBj
YXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50
SWQoKSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBtX3JpbmdC
dWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkKKyNlbmRpZgoreworICAgIG1fbWFuYWdlci0+YWRkU291
cmNlKCp0aGlzLCBjYXB0dXJlRGV2aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjp+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnJlbW92
ZVNvdXJjZSgqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIp
CisgICAgICAgIG1fbWFuYWdlci0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdGFydCB7IG1faWRlbnRpZmll
ciB9LCAwKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAg
ICBtX21hbmFnZXItPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RvcCB7IG1faWRlbnRpZmllciB9LCAwKTsK
K30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRs
ZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0g
ZGVzY3JpcHRpb247CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYg
KCFoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAo
aGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9H
X0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2Ui
KTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkp
IHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uu
c2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5
LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAg
bV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAg
IG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
VGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKCFtX2J1
ZmZlcikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZlciBmb3IgcmVtb3RlIHNvdXJjZSBpcyBu
dWxsIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7CisgICAgbV9y
aW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwor
ICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMs
IHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9i
dWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7CisgICAgVU5V
U0VEX1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShlbmRGcmFtZSk7CisjZW5k
aWYKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnJlbW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJj
ZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42N2JjMGQxMzFmMmNkYjE1ZjkyNWNlMDkwMTk1N2VmYTRkNDQwY2JlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmlj
ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIH5TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0U3RvcmFnZShjb25z
dCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgdm9pZCBy
ZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQg
cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOwor
Citwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmKTsKKworICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2
b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0Rh
dGEoKSBmaW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQor
ICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX21hbmFnZXI7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZm
ZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9C
dWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGJkN2E4N2E0MDg0MzllNDg3MzM1NGM1NTRmNzBmOWFm
ZjUyZmMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCAr
MSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0
aW9uKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlJiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVE
ZXZpY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAg
ICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2Vz
LmFkZChpZGVudGlmaWVyLCAmc291cmNlKTsKKworICAgIGlmICghbV9oYXNHcmFudGVkU2FuZGJv
eEV4dGVuc2lvbnMpIHsKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yVENDRDsKKyAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnRjY2QiX3MsIG1f
Y29ubmVjdGlvbi0+Z2V0QXVkaXRUb2tlbigpLCBoYW5kbGVGb3JUQ0NEKTsKKyAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvck1pY3JvcGhvbmU7CisgICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53
ZWJraXQubWljcm9waG9uZSJfcywgaGFuZGxlRm9yTWljcm9waG9uZSk7CisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Okdy
YW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9yVENDRCwgaGFuZGxlRm9yTWljcm9waG9uZSkp
OworI2VuZGlmCisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gdHJ1ZTsK
KyAgICB9CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSkpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigp
OworICAgIEFTU0VSVChtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpID09ICZzb3VyY2UpOworICAg
IG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7CisKKyAgICBpZiAobV9zb3VyY2VzLmlzRW1w
dHkoKSAmJiBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworI2lmIEVOQUJMRShTQU5E
Qk9YX0VYVEVOU0lPTlMpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOwor
I2VuZGlmCisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gZmFsc2U7Cisg
ICAgfQorCisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6UmVtb3ZlU291cmNlKGlkZW50aWZpZXIpKTsKK30KKworI2lmIFBMQVRG
T1JNKENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRs
ZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291
cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c2V0U3RvcmFnZShpcGNIYW5k
bGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkK
K3sKKyAgICBpZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAg
ICAgICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVyT2ZG
cmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
aWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBp
ZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291
cmNlLT5yZW1vdGVTb3VyY2VTdG9wcGVkKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9
CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
MDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhODU5N2Q3
MmMxNGViODA4NjA3NDZhZDg4MjgzYjlhNmExMmMyZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQ
Qzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlJik7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0
b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICB2b2lkIHJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWlu
dDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2Fw
dHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKKworICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1f
Y29ubmVjdGlvbi5wdHIoKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2Vp
dmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBD
OjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAg
IHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAg
ICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgSGFzaE1hcDxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKj4gbV9zb3VyY2VzOworICAgIGJvb2wgbV9oYXNHcmFudGVkU2Fu
ZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBlM2Y2Y2Y2MDE5MWZlMWQ4MTA1
ZWUzNDFlODhiZWYzZDRmZjk5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRl
ZCB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYKKworICAgIFJl
bW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNh
cHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICBSZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDlmNjAwZDNm
NWNkYzZjMzJjNTQ4YTBhMDlhYjAyYmMxNDUzNDUyNDQuLmRkMzg3OGFkMDQ5YWRhYTBmY2Y2YWM1
YjIyMzQ5NTUyNmZjMzdiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTkxLDYgKzkxLDE0IEBAIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uCiAKICAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKICAgICAgICAg
fSk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICAgICBpZiAobV9yZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pIHsKKyAgICAgICAgICAgIG1fcmVjb2duaXplci0+c2V0
UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFt0aGlzXShhdXRvJiBkZXZpY2UpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rp
b24oZGV2aWNlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAK
ICAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggYTdmNzZk
MzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNy4uN2IwNmZmMTM3NTllNGQ4Mjc3NDZi
ZDM4YmQ1ZDgyNDZlN2IzYTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC01Nyw2ICs1NywxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml6ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0
aW9uKSB7IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5j
dGlvbik7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25G
b3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwogICAgIHZvaWQg
aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyKTsKQEAgLTc1LDYgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsK
ICAgICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNr
ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVj
b2duaXplcjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXplcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IGU3ZDljZGZlNTUzNWMyN2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLjc4NWVhNDk2OWVlMmVk
ZDg1YTJiYTI2YzM0YzJjODYyMTg0NDk0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzgsNiArMzgsOSBAQAogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAg
LTE3MDIsOCArMTcwNSw4IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlByb2Nlc3NQcm94eTo6c2Vzc2lv
bklEKCkgY29uc3QKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0
aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewotICAgIGF1dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsKLSAgICBBU1NFUlQoc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAgQVNTRVJUKCFtX3NwZWVjaFJlY29nbml0
aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvJiBzcGVlY2hSZWNv
Z25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZp
ZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBXZWJQYWdlUHJveHkqIHRhcmdldFBh
Z2UgPSBudWxscHRyOwogICAgIGZvciAoYXV0byogcGFnZSA6IHBhZ2VzKCkpIHsKICAgICAgICAg
aWYgKHBhZ2UgJiYgcGFnZS0+d2ViUGFnZUlEKCkgPT0gaWRlbnRpZmllcikgewpAQCAtMTcxNSw3
ICsxNzE4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKICAgICBpZiAoIXRhcmdldFBhZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9y
LT52YWx1ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNv
bm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBh
Z2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7Cisg
ICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9u
U2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBt
YWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhh
bmRsZXIpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdlKSB7CiAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVu
eSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzIzLDcgKzE3MjYsMjAgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnQKIAogICAgICAgICB3ZWFrUGFnZS0+cmVxdWVzdFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9
KTsKLSAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5pdGVyYXRvci0+dmFsdWUpOworICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRp
ZmllciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIt
PnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0
byYgZGV2aWNlKSAtPiBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4geworICAg
ICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAg
ICAgaWYgKCF3ZWFrUGFnZSB8fCB3ZWFrUGFnZS0+cHJlZmVyZW5jZXMoKS5jYXB0dXJlQXVkaW9J
bkdQVVByb2Nlc3NFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
ICAgICBhdXRvJiBzb3VyY2VNYW5hZ2VyID0gZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworICAgICAgICByZXR1cm4gU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoc291cmNlTWFuYWdlciwgZGV2
aWNlKTsKKyAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJv
eVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmll
ciBpZGVudGlmaWVyKQpAQCAtMTczMyw2ICsxNzQ5LDIwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJ
ZGVuCiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5yZW1vdmUoaWRlbnRpZmllcik7
CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlm
ICghbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKSB7
CisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSk7CisgICAgICAgIGFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqbV9zcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKm1f
c3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKwor
I2VuZGlmCisKICNpZiBQTEFURk9STShXQVRDSE9TKQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
c3RhcnRCYWNrZ3JvdW5kQWN0aXZpdHlGb3JGdWxsc2NyZWVuSW5wdXQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBjMTBiMzk0OGQ3NzY3NjM3MTRkMTY0
NzliNTkzNjI4MmE2OTczM2RhLi43N2QzMDljNWNkZDRmMTNiZGIwNDNkNzQxODk5NjgzNDRiZWNi
MzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAz
LDYgKzEwMywxMCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBX
ZWJQcmVmZXJlbmNlc1N0b3JlOwogc3RydWN0IFdlYnNpdGVEYXRhOwogCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI7CisjZW5kaWYKKwogZW51bSBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJU
eXBlIHsgfTsKIHR5cGVkZWYgUmVmQ291bnRlcjxGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJU
eXBlPiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI7CiB0eXBlZGVmIEZvcmVncm91bmRXZWJQ
cm9jZXNzQ291bnRlcjo6VG9rZW4gRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbjsKQEAgLTUwNSw2
ICs1MDksOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGVzdHJv
eVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmll
cik7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3lzdGVt
QmVlcCgpOwogICAgIApAQCAtNjQzLDYgKzY1MCw5IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCA9IEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+PjsK
ICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVy
TWFwOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAzNTI4ZjQ3MWY0NjNkZjZjMTEzMGEzZmI4Mzc3NmJmMWIy
YWJlZjk0Li43YWE0NGQ1ODQ0NTQ1YjgwYTE2MDBlYmNiYzg0OGExYTMxZjViZjZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MzEs
NiArMTQzMSwxMSBAQAogCQk5M0E4OEIzMzFCQzZFOUNEMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJl
c3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTg4QjMxMUJDNkU5QzAwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oICovOyB9
OwogCQk5M0E4OEIzQjFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIz
QTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87IH07CiAJ
CTkzQTg4QjQ2MUJDODgyOTMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEI0MzFCQzg4MjhDMDBB
QkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5oICovOyB9OworCQk5M0FCOUI0QzI1NzU2M0YzMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEEyNTc0
QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07
CisJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJOTNBQjlCNTUyNTc1QTI3NjAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk5M0FCOUI1NjI1
NzVBMjhCMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCTkzQjI2MTREMjI3RDE0OUUwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDky
MjdEMTQ3MjAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzQjI2MTRFMjI3
RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8q
IExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3
NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKQEAgLTQ1ODIsNiArNDU4NywyMCBAQAog
CQk5M0E4OEIzQTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MjFCQzg4MjhDMDBBQkE1
QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBUElIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNBODhCNDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5
QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEIyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRGMjU3NTg5MTEwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MDI1NzU4OTExMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ1MjI3RDE0NzAw
MEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VU
cmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURh
dGFiYXNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0NzIy
N0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTUxLDYgKzg5NzAsMTYgQEAK
IAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5M0FC
OUI0ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJOTNBQjlC
NEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0OTI1NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7
CisJCQlwYXRoID0gU3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
OTNCMjYxNDMyMjdEMTQzMTAwQjk3QTc2IC8qIFdlYlN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTE1NSw2ICs5MTg0LDcgQEAKIAkJCQk1MTA1
QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4QUE4
MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0
OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCisJCQkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8q
IFNwZWVjaCAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLywK
IAkJCQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCiAJCQkJNTc2
MDgyOEEyMDI5ODRDOTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0aW9uICovLApAQCAtOTM2OCw2
ICs5Mzk4LDExIEBACiAJCQkJOTNENkI3QjAyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwICovLAogCQkJCTkzRDZCN0IyMjU1MjY4QTIwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJOTNE
NkI3QUYyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVl
c3QuaCAqLywKKwkJCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5M0FCOUI0MjI1NzQ5MjhD
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgg
Ki8sCisJCQkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkzQUI5QjQ1MjU3NDky
OEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJOTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cCAqLywKIAkJCQk5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaCAqLywKIAkJCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0xMDUxMiw2ICsxMDU0NywxMiBAQAogCQkJ
CTFERDJBNjcyMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxREQyQTY3MzI1NjIzMjRGMDBGRjdCNkYgLyogU291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NzEyNTYyMzI0
RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAq
LywKKwkJCQk5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlC
NTQyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggKi8sCisJCQkJOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAor
CQkJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MjI1NzU4
OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
OTNENkI3ODAyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZXMuaCAqLywKIAkJCQk5M0Q2Qjc3RjI1NENDQUJCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTExNTgwLDYgKzExNjIxLDkgQEAKIAkJ
CQk1N0ZEMzE4NTIyQjM1MTY5MDA4RDBFOEIgLyogU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3QjUyNTUyNjhENzAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I0MjU1
MjY4RDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0FCOUI0QzI1NzU2M0YzMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNB
QjlCNEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODQyNTRDQ0QwRTAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1l
c3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzM0Nyw2ICsxMzM5MSw4IEBACiAJ
CQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRN
YWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxREQyQTY3NDI1NjIzMkExMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NTI1NzVBMjc2
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NjI1NzVBMjhCMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0Q2Qjc4MjI1NENDQ0Y0
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVh
TWFwTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNjhFRURFMjMwM0E5
MDIwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3YWZlNzVjNDQzMjQ0ZDYxYWU4ZmM3N2JiYmU5OTE3
NDYyMjg4YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0w
LDAgKzEsMjc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaD4KKworI2lm
IFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQXVkaW9E
YXRhLmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgPFdlYkNv
cmUvQXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVk
aWFTb3VyY2UKKyAgICA6IHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2Jz
ZXJ2ZXIKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9T
YW1wbGVPYnNlcnZlcgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgcHVibGljIFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyNlbmRpZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYgc291cmNlLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24p
CisgICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2Uo
V1RGTW92ZShzb3VyY2UpKQorICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rp
b24pKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlPih0aGlzKSkpCisjZW5kaWYKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5h
ZGRPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2Vy
dmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpCisgICAgewor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworI2Vu
ZGlmCisgICAgICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsK
KyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB2
b2lkIHN0YXJ0KCkKKyAgICB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiWyVwXVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN0YXJ0KCkgaWRlbnRpZmllclslbGx1XSIsIHRoaXMsIG1faWRlbnRpZmllci50
b1VJbnQ2NCgpKTsKKworICAgICAgICBtX3NvdXJjZS0+c3RhcnQoKTsKKyAgICB9CisKKyAgICB2
b2lkIHN0b3AoKQorICAgIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJbJXBdUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RvcCgpIGlkZW50aWZpZXJbJWxsdV0iLCB0aGlzLCBtX2lkZW50aWZpZXIudG9V
SW50NjQoKSk7CisKKyAgICAgICAgbV9zb3VyY2UtPnN0b3AoKTsKKyAgICB9CisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpCisgICAg
eworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPiht
X3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsKKyAgICB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICB2
b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbAorICAgIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJb
JXBdUmVhbHRpbWVNZWRpYVNvdXJjZTo6c291cmNlU3RvcHBlZCgpIGlkZW50aWZpZXJbJWxsdV0i
LCB0aGlzLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICAgICAgaWYgKG1fc291cmNl
LT5jYXB0dXJlRGlkRmFpbCgpKSB7CisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlbW90ZUNhcHR1cmVGYWlsZWQobV9pZGVudGlmaWVyKSwgMCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVTb3Vy
Y2VTdG9wcGVkKG1faWRlbnRpZmllciksIDApOworICAgIH0KKworICAgIHZvaWQgYXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgV2ViQ29yZTo6UGxhdGZv
cm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykgZmluYWwKKyAgICB7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIFdURkxvZ0Fsd2F5cygiWyVwXVJlYWx0aW1lTWVk
aWFTb3VyY2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSgpIGlkZW50aWZpZXJbJWxsdV0iLCB0aGlz
LCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICAgICAgaWYgKG1fZGVzY3JpcHRpb24g
IT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9y
bURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFt
QmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3Qg
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlw
dGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1f
ZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgICAgIG1fcmluZ0J1ZmZlci5h
bGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFt
ZXMpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4o
YXVkaW9EYXRhKSk7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zdG9yZShkb3duY2FzdDxXZWJBdWRp
b0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1l
VmFsdWUoKSk7CisgICAgICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgICAgIHVpbnQ2NF90
IGVuZEZyYW1lOworICAgICAgICBtX3JpbmdCdWZmZXIuZ2V0Q3VycmVudEZyYW1lQm91bmRzKHN0
YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1v
dGVBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZGVudGlmaWVyLCB0aW1lLCBudW1iZXJPZkZyYW1l
cywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJB
TSh0aW1lKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGF1ZGlvRGF0YSk7CisgICAgICAgIFVOVVNF
RF9QQVJBTShkZXNjcmlwdGlvbik7CisgICAgICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1l
cyk7CisjZW5kaWYKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKworICAgIHZvaWQgc3Rv
cmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbAorICAgIHsKKyAgICAgICAg
V1RGTG9nQWx3YXlzKCJbJXBdUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcmFnZUNoYW5nZWQoKSBp
ZGVudGlmaWVyWyVsbHVdIiwgdGhpcywgbV9pZGVudGlmaWVyLnRvVUludDY0KCkpOworCisgICAg
ICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKHN0b3JhZ2UpCisg
ICAgICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTZXRT
dG9yYWdlKG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhh
bmRsZSksICAwIH0sIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9
CisKKyNlbmRpZgorCisgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBmaW5hbAorICAgIHsK
KyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJbJXBdU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXVkaW9Vbml0V2lsbFN0YXJ0
KCkgaWRlbnRpZmllclslbGx1XSIsIHRoaXMsIG1faWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKwor
ICAgICAgICBhdXRvIGJ1ZmZlclNpemUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5z
YW1wbGVSYXRlKCkgLyA1MDsKKyAgICAgICAgaWYgKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lv
bigpLnByZWZlcnJlZEJ1ZmZlclNpemUoKSA+IGJ1ZmZlclNpemUpCisgICAgICAgICAgICBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNp
emUpOworICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShB
dWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQsIFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7
CisjZW5kaWYKKyAgICB9CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+
IG1fc291cmNlOworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBp
bnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBtX2Rlc2NyaXB0aW9uIHsgfTsKKyNlbmRpZgorfTsKKworU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJ
T05TKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OmdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJv
eEhhbmRsZUZvclRDQ0QsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVG
b3JNaWNyb3Bob25lKQoreworICAgIFdURkxvZ0Fsd2F5cygiWyVwXVNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmdyYW50U2FuZGJveEV4dGVuc2lvbnMoKSIsIHRo
aXMpOworCisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9IFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JUQ0NEKSk7CisgICAgaWYgKCFtX3NhbmRi
b3hFeHRlbnNpb25Gb3JUQ0NEKQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUg
c2FuZGJveCBleHRlbnNpb24gZm9yIHRjY2QiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJv
eEV4dGVuc2lvbkZvclRDQ0QtPmNvbnN1bWUoKTsKKworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZv
ck1pY3JvcGhvbmUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFu
ZGxlRm9yTWljcm9waG9uZSkpOworICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9w
aG9uZSkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5z
aW9uIGZvciBtaWNyb3Bob25lIik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNp
b25Gb3JNaWNyb3Bob25lLT5jb25zdW1lKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorewor
ICAgIFdURkxvZ0Fsd2F5cygiWyVwXVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkiLCB0aGlzKTsKKworICAgIGlmICht
X3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZv
clRDQ0QtPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVs
bHB0cjsKKyAgICB9CisKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkg
eworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAg
ICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQor
fQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjphZGRTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAg
IFdURkxvZ0Fsd2F5cygiWyVwXVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OmFkZFNvdXJjZSgpIGlkZW50aWZpZXJbJWxsdV0iLCB0aGlzLCBpZGVudGlmaWVyLnRv
VUludDY0KCkpOworCisgICAgYXV0byByZXN1bHQgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlKTsKKyAgICBp
ZiAoIXJlc3VsdCkgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgcmVhbHRp
bWUgc291cmNlIik7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQoaWRlbnRp
ZmllciksIDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKCFtX3NvdXJj
ZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwg
bWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlPihpZGVudGlmaWVyLCByZXN1bHQuc291cmNl
KCksIG1ha2VSZWYoKm1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkpKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
V1RGTG9nQWx3YXlzKCJbJXBdU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3ZlU291cmNlKCkgaWRlbnRpZmllclslbGx1XSIsIHRoaXMsIGlkZW50aWZpZXIu
dG9VSW50NjQoKSk7CisKKyAgICBtX3NvdXJjZXMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
V1RGTG9nQWx3YXlzKCJbJXBdU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6c3RhcnQoKSBpZGVudGlmaWVyWyVsbHVdIiwgdGhpcywgaWRlbnRpZmllci50b1VJbnQ2
NCgpKTsKKworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikp
CisgICAgICAgIHNvdXJjZS0+c3RhcnQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgV1RGTG9nQWx3YXlzKCJbJXBdU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcCgpIGlkZW50aWZpZXJb
JWxsdV0iLCB0aGlzLCBpZGVudGlmaWVyLnRvVUludDY0KCkpOworCisgICAgaWYgKGF1dG8gc291
cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7
Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVy
biBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOworfQor
Cit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFmNWIxOWUzNzBm
NWJlMGE0Njg0ZDllMWNkMjdlMDI3MGMwOTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lv
bi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsK
KyAgICB+U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworCisj
aWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVu
c2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYmKTsKKyAgICB2b2lkIHJldm9rZVNhbmRib3hFeHRlbnNpb25zKCk7CisjZW5kaWYKKworICAg
IHZvaWQgYWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RhcnQoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RvcChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2Fn
ZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkg
Y29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBj
b25zdCBmaW5hbDsKKworICAgIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CisgICAgZnJpZW5k
IGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+PiBtX3NvdXJjZXM7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIFJl
ZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEOworICAgIFJl
ZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lOwor
I2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzEyNTdhMjgyNTlhZjVjN2Q0OGFmNzBkNGI4ZmRiNzFkMTA0
MTlkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDM4IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBBZGRTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgUmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgU3RhcnQoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisgICAgU3RvcChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKworI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yVEND
RCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRs
ZUZvck1pY3JvcGhvbmUpCisgICAgUmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorI2VuZGlmCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcAppbmRleCAzZjM1MzE5NGEzMmMzZTY3OWJjYTI5ZmJlYTg1MDMxYzkyMWU0ZmM0Li5lMGQy
YTU5ODU1NWI5ODk3ODU4NThhYjZjNjRhNzU0YWZkYTExMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsMTAgQEAgV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oU3BlZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0aGlzKTsKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKG1f
aWRlbnRpZmllciksIDApOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyKCk7CisjZW5kaWYKIH0KIAogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Ojp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCBmMmYyMjgyMmM3YjIyM2ZjYTU5Zjk1NTczZDExZGM5OWIx
MDM0ODExLi5iMTIzOWM1NzdiYjg0NmE4Y2M0ZGZjZjI4YmQyZDMwNDA0ZDNkZjQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5j
bHVkZSAiUHJvY2Vzc0Fzc2VydGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5o
IgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFn
ZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkuaCIKQEAgLTE5NjksNiArMTk3MCwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6
OmVuYWJsZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9j
ZXNzOjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkK
K3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
ID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
PigpOworCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBS
RUxFQVNFX0xPR19TRVNTSU9OX0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApp
bmRleCBlOWM0N2RiNGM0NDdjMGY0YWI2MjdjMDk0YjVmNjhkYjU2NWE5YTZjLi43ZTVhNGNhYTRj
NWQyZTIzNzg4MTNlYjRmMmY0MjI4YmRlNGNjNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKQEAgLTE0Miw2ICsxNDIsMTAgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKICNlbmRpZgogCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI7CisjZW5kaWYKKwogY2xhc3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlh
cnlQcm9jZXNzCiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNjAsNiArMzY0
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFdyaXRlVG9QYXN0ZWJvYXJkQXN5bmNocm9ub3Vz
bHkoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogICAgIH5XZWJQcm9jZXNz
KCk7CkBAIC02OTMsNiArNzAxLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ZwOURlY29kZXJF
bmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fdnA5U1dEZWNvZGVyRW5hYmxlZCB7IGZhbHNl
IH07CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVf
cHRyPFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415194</attachid>
            <date>2020-12-01 23:23:49 -0800</date>
            <delta_ts>2020-12-02 00:06:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201201232348.patch</filename>
            <type>text/plain</type>
            <size>86753</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE2YTRiYzRlYWNmMzFlMjA2YmRmYmFj
Zjk4NjUzZTYyYzJjNTcyNGYuLmE3ODdlOWY5MTljZDVlMzEzYTYwNGFiYTg3MGEzY2NiMzgxNjMx
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0z
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNl
IGFuIGV4cGVyaW1lbnRhbCBmbGFnIHNwZWNpZmljIHRvIFZQOSBwcm9maWxlIDIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0Y2Y4NWNjMjk2NDNkMGVhNTZjODQxZTdlZDliNzZlYTgzYTMxN2VlLi4xZTU1MzU5NmU2
YzAwN2E2ZGEyOGI2MTBjOGJhZWMyNTUyM2M1NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHNldCBSZWFsdGltZU1l
ZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuIAorCisg
ICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIE1vYmlsZU1pbmlCcm93c2VyLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXpl
cjo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhh
cnUub2h6ZWtpQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBNb3ZlIFNoYWRvd1Jvb3RJ
bml0IHRvIGRlZGljYXRlZCBpZGwgZmlsZSBmcm9tIEVsZW1lbnQuaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1
ZDllMmFlNmJhZTAyMzgxMTQyNmNiY2JiN2U5ZDY2ODQxYjg3ZDEuLmE3MTI2ZGI1ODA4OTc5OTJi
Zjc5ZjNlODRjYTcwMTc5ZWQ2NTM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMjAt
MTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPbiBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJv
Y2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25pdGlvbiwgVUkgcHJvY2VzcyBzaG91bGQgYXNrIHdlYiBw
cm9jZXNzIHRvCisgICAgICAgIGRvIGF1ZGlvIGNhcHR1cmUgYW5kIHNlbmQgYmFjayBkYXRhLiBU
byBpbXBsZW1lbnQgdGhpcywgd2UgaGF2ZSBpbnRyb2R1Y2VkOgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4gCisgICAgICAg
IE9uIGlPUywgd2UgdXNlIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcyBpbgorICAgICAgICBVSSBw
cm9jZXNzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6IG93biBhbmQgbWFuYWdlIGFsbCAKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZXMgaW4gd2ViIHByb2Nl
c3MuCisKKyAgICAgICAgTGlrZSBleGlzdGluZyBtZWRpYSBjYXB0dXJlIGltcGxlbWVudGF0aW9u
LCB3ZSB1c2Ugc2hhcmVkIG1lbW9yeSB0byBwYXNzIGF1ZGlvIGRhdGEgdG8gZnJvbSB3ZWIgcHJv
Y2VzcyB0byBVSQorICAgICAgICBwcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6Om1fcmluZ0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2Fw
dHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6Y29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVu
c2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTAxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgogCiAgICAgICAgIElUUCBsb2dnaW5nIG1peGVzIHVwIHRoZSBVSSBwcm9j
ZXNzIElUUCBzdGF0ZSB3aXRoIHRoZSBTZXR0aW5ncyBJVFAgc3RhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKaW5kZXggZDRkYWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJm
Mi4uNTc5YWE1M2JjOWJkODEwOGRiZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQ6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJL
aXQ6CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAg
ZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGZkODUxMjk4N2I5OWExYTgyOTVjMTA3ZTE5OWU1ZjA3NTUxNTNkMjYu
LmViYTA1ZWZkMzY2OTNhMzNkMjVjMzZkM2RhOGMxMDJmMWRjZjNjMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2
ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUy
ZmNkNDNkNzMxMDk3MmYzOGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBk
YXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURl
dmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAg
ICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVE
ZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1
MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAg
IGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmlj
ZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlv
Q2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVy
LCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJh
Y2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxi
YWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
ayksIFdURk1vdmUoc291cmNlKSk7Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJj
ZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVO
VVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5
ZjRlMGEuLjMyMDFhYzJlMzBiZTA4ZjU5Mjc1ZjQxZGNmZDRlYmY0N2JkOGI2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggYmZjNWJlMTAzNGJl
M2MxMmQyY2FkZWMzZTEyMTk0M2VhYjg5OTMyMy4uOTg0MjY3ZTJiMTk0OTFjNjRhYzVlZGVjNjM0
M2QwNzZlYjQxNDFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAK
QEAgLTg4LDYgKzg4LDEwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAgICBpZiAoIW1fZGF0
YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNv
dXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGF1dG8g
ZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNh
bXBsZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICAgICAgaWYgKGRhdGFTb3VyY2Ut
PnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICBpZiAoaXNN
YWluVGhyZWFkKCkpIHsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgICAgICAgICBpZiAo
d2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2Fw
dHVyZSwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0IiB9KSk7CkBAIC05Niw2ICsxMDAsMTAg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRhdGFT
b3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAg
aWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewogICAgICAgICAgICAg
ICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CkBAIC0xMTAs
NyArMTE4LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgIH0KIAogICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxlQ291bnQpOwotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRpbWUsIGF1ZGlv
RGVzY3JpcHRpb24sIHNhbXBsZUNvdW50XSB7CisgICAgYXV0byBtYWludGhyZWFkSGFuZGxlciA9
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0
aW9uLCBzYW1wbGVDb3VudF0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMjEsNyArMTI5LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAg
ICAgICAgfQogCiAgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3Jp
cHRpb24sIHNhbXBsZUNvdW50KTsKLSAgICB9KTsKKyAgICB9OworICAgIGlmICghaXNNYWluVGhy
ZWFkKCkpCisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShtYWludGhyZWFkSGFuZGxl
cikpOworICAgIGVsc2UKKyAgICAgICAgbWFpbnRocmVhZEhhbmRsZXIoKTsKICNlbHNlCiAgICAg
bV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
emVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMyOWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li5j
MGUxMDQ5OWM5M2Y1MWQ0NmE3YWZmZDQxZDUwODE0MDQ3M2I1OTNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtOTAsNyAr
OTAsMzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKCkKICAgICAgICAg
ICAgIG1fc291cmNlID0gbnVsbHB0cjsKICAgICB9OwogCi0gICAgbV9zb3VyY2UgPSBtYWtlVW5p
cXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwg
V1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spKTsKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gY2FwdHVyZURldmljZSA9IFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKTsKKyAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5v
IGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH0pKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbikgewor
ICAgICAgICBhdXRvIHJlYWx0aW1lU291cmNlID0gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb24oKmNhcHR1cmVEZXZpY2UpOworICAgICAgICBpZiAoIXJlYWx0aW1lU291cmNlKSB7
CisgICAgICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiRmFpbGVkIHRvIGNy
ZWF0ZSByZWFsdGltZSBzb3VyY2UiIH0pKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1v
dmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIG1ha2VSZWYoKnJlYWx0aW1lU291cmNlKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7
CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
bV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1f
Y2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBk
YXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgU3BlZWNo
UmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdlbmVyYXRl
RmluYWxSZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pemVyLmgKaW5kZXggZTZmMTNmZWU4NGE1MzNhZjBmMDRlMDc2OWMxYWUwOTViZTViZmYz
Zi4uNmYxMTI5YzU0NDVhZGNjZTc0MDU0MWE5N2RmZjM2MDZiMmNjMGFjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtNDUsNiAr
NDUsMTEgQEAgcHVibGljOgogCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgdXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gRnVuY3Rpb248UmVm
UHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmKT47CisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24o
UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYgZnVuY3Rpb24pIHsgbV9yZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgc3RhcnRJbnRlcm5hbCgp
OwpAQCAtNTMsNiArNTgsMTAgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7CiAgICAg
RGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBtX3Jl
YWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDJlN2U5ZmQyYjkxZWI4MTAxMzQ1NjBkZmZkODBhY2QyMTBiM2Zk
YzAuLjc0MmUyZGU0ZmY3ZWNmYTA1MTYzMTU1ZGM0ZWEzMTc4MTU2ZjlhMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzNjI1
LDEzICsyMzYyNSw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OwotCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJKTsKLQkJCXBhdGggPSBjb2Nv
YTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTk0NkQzNzI3MUQ2Q0IyMjUw
MDc3MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMjU2NjIsNyArMjU2NTUsNiBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUg
Lyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0
ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFB
MkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICov
LAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDYyODQ0NTMyNTAzMzUxMDdmZDU0OTgyMjMy
YjhiOWVhZWM4ZTY4Y2IuLjY4ZjdlZDg2NWM3MzEyMjkyOGMwNmM3MTcyYjM3Njk2Y2IyMmNlMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTAzLDYgKzEwMyw3IEBAIHNldChXZWJLaXRfSU5DTFVE
RV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIgorICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvU3BlZWNoIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3RvcmFnZSIK
ICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQiCkBAIC0xODMsNiArMTg0LDcgQEAgc2V0
KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyCiAKICAgICBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorICAgIFVJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAg
ICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rU3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CkBAIC0yNTQs
NiArMjU2LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJveHkKIAorICAgIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24KICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IGVkYjZjYTU5NzlkMmY0ZGVmOGIyYjJlNzczZjlkNjlhZTc4NmU3
ZTkuLjgzMWM4ZjAyOGE1NmUzYTMxMTU0ZWQ1NjIwMmNlMDAyMmE1MjNmNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwNCw2ICsxMDQs
NyBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveAogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5tZXNzYWdlcy5pbgpAQCAtMTYxLDYgKzE2Miw3IEBAICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5t
ZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKaW5kZXggNzU2NzlmNTVmNWFlMzk5YjVlYWY0NzdmMTg5MzI1NmJjMjQ4ODQ0ZC4uZmIy
ZmFkNmQ0YTljNmZiYjYxOWYzNjNiYjE0ZmIzMDc0ODhhMjc4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNjAsNiArMjYwLDEyIEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM3NzAxYjAxYzNjMWEyYzMwMGUxZGQyZDcyZTZi
ODUyMzdmNDI0YjUuLjg1Mjg3ODQ5NzMzZDNhODEzYmY0NDMxMDYyNTQ0MjQ2ZjEzYTdmMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY5LDYgKzY5LDcgQEAgVlBBVEggPSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZSBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1NwZWVjaCBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL1N0b3JhZ2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIFwKQEAgLTE2Nyw2
ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01l
ZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uIFwKQEAgLTIwMSw2ICsyMDMsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwK
IAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKIAlXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgXAogCVdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIFwK
KwlXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24gXAogCVdlYlBy
b2Nlc3MvV2ViUHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwOTE3ZjAxYmUxYzlmOGNhYTJhYmY3
ZjBmODkwZjg5NWEzZjJlZjg2Li44ODZkYjZjODdmZWE2Y2E3MTIzNjExMDA4Y2YwMzg5ZDk4YTFl
ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTI5MCw2ICsyOTAsOCBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cAorVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nl
c3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9s
bGVyLmNwcApAQCAtNjM1LDYgKzYzNyw4IEBAIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBAbm8tdW5pZnkKIAorV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKwog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFhNWRkMjJmNmM1ODQ4ZmJhYTE1Y2QyY2Q5ZjdiMjA5
ZjQzYjhhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVk
ZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNl
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBj
YXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50
SWQoKSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBtX3JpbmdC
dWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkKKyNlbmRpZgoreworICAgIG1fbWFuYWdlci0+YWRkU291
cmNlKCp0aGlzLCBjYXB0dXJlRGV2aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjp+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnJlbW92
ZVNvdXJjZSgqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIp
CisgICAgICAgIG1fbWFuYWdlci0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdGFydCB7IG1faWRlbnRpZmll
ciB9LCAwKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAg
ICBtX21hbmFnZXItPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RvcCB7IG1faWRlbnRpZmllciB9LCAwKTsK
K30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRs
ZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0g
ZGVzY3JpcHRpb247CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYg
KCFoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAo
aGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9H
X0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2Ui
KTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkp
IHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uu
c2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5
LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAg
bV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAg
IG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
VGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKCFtX2J1
ZmZlcikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZlciBmb3IgcmVtb3RlIHNvdXJjZSBpcyBu
dWxsIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7CisgICAgbV9y
aW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwor
ICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMs
IHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9i
dWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7CisgICAgVU5V
U0VEX1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShlbmRGcmFtZSk7CisjZW5k
aWYKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnJlbW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJj
ZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42N2JjMGQxMzFmMmNkYjE1ZjkyNWNlMDkwMTk1N2VmYTRkNDQwY2JlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmlj
ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIH5TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0U3RvcmFnZShjb25z
dCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgdm9pZCBy
ZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQg
cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOwor
Citwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmKTsKKworICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2
b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0Rh
dGEoKSBmaW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQor
ICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX21hbmFnZXI7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZm
ZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9C
dWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTBhMTY5MTZjYTIyYmEzYTdlODIwMjdiYTkxOWEyOTM0
NWRkNGJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCAr
MSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0
aW9uKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlJiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVE
ZXZpY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAg
ICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2Vz
LmFkZChpZGVudGlmaWVyLCAmc291cmNlKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lP
TlMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgaWYgKCFtX2hhc0dyYW50ZWRTYW5k
Ym94RXh0ZW5zaW9ucykgeworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxl
Rm9yVENDRDsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExv
b2t1cCgiY29tLmFwcGxlLnRjY2QiX3MsIG1fY29ubmVjdGlvbi0+Z2V0QXVkaXRUb2tlbigpLCBo
YW5kbGVGb3JUQ0NEKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZv
ck1pY3JvcGhvbmU7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdl
bmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQubWljcm9waG9uZSJfcywgaGFuZGxlRm9y
TWljcm9waG9uZSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkdyYW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9y
VENDRCwgaGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94
RXh0ZW5zaW9ucyA9IHRydWU7CisgICAgfQorI2VuZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UoaWRl
bnRpZmllciwgY2FwdHVyZURldmljZSkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGlkZW50
aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVChtX3NvdXJjZXMuZ2V0KGlk
ZW50aWZpZXIpID09ICZzb3VyY2UpOworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7
CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQorICAgIGlmIChtX3NvdXJjZXMuaXNFbXB0eSgpICYmIG1faGFzR3JhbnRlZFNhbmRib3hF
eHRlbnNpb25zKSB7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOworICAg
ICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0KKyNlbmRp
ZgorCisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVtb3ZlU291cmNlKGlkZW50aWZpZXIpKTsKK30KKworI2lmIFBMQVRGT1JN
KENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRsZSwg
Y29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNl
cy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUu
aGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1v
dGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sK
KyAgICBpZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAg
ICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVyT2ZGcmFt
ZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJj
ZS0+cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAo
YXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNl
LT5yZW1vdGVTb3VyY2VTdG9wcGVkKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNv
bm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisK
K3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhODU5N2Q3MmMx
NGViODA4NjA3NDZhZDg4MjgzYjlhNmExMmMyZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisKK25h
bWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBDYXB0dXJlRGV2aWNlOworCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTsKKworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6IHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6
TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8
SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
Jik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlJik7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3Jh
Z2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICB2b2lkIHJlbW90ZUF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0
X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVy
ZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9p
ZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyKTsKKworICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5wdHIoKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVy
LgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpD
b25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVp
bnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgSGFzaE1hcDxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlKj4gbV9zb3VyY2VzOworICAgIGJvb2wgbV9oYXNHcmFudGVkU2FuZGJv
eEV4dGVuc2lvbnMgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBlM2Y2Y2Y2MDE5MWZlMWQ4MTA1ZWUz
NDFlODhiZWYzZDRmZjk5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwzNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBk
ZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYKKworICAgIFJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMs
IHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNhcHR1
cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKKyAgICBSZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDlmNjAwZDNmNWNk
YzZjMzJjNTQ4YTBhMDlhYjAyYmMxNDUzNDUyNDQuLmRkMzg3OGFkMDQ5YWRhYTBmY2Y2YWM1YjIy
MzQ5NTUyNmZjMzdiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTkxLDYgKzkxLDE0IEBAIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uCiAKICAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKICAgICAgICAgfSk7
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICAgICBpZiAobV9yZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb24pIHsKKyAgICAgICAgICAgIG1fcmVjb2duaXplci0+c2V0UmVh
bHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFt0aGlzXShhdXRvJiBkZXZpY2UpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24o
ZGV2aWNlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAg
ICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggYTdmNzZkMzhl
ZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNy4uN2IwNmZmMTM3NTllNGQ4Mjc3NDZiZDM4
YmQ1ZDgyNDZlN2IzYTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC01Nyw2ICs1NywxMCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyKTsKICAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0aW9u
KSB7IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlv
bik7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JS
ZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwogICAgIHZvaWQgaGFu
ZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyKTsKQEAgLTc1LDYgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAg
ICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2du
aXplcjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXplcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVNZWRp
YVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU3
ZDljZGZlNTUzNWMyN2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLjc4NWVhNDk2OWVlMmVkZDg1
YTJiYTI2YzM0YzJjODYyMTg0NDk0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMzgsNiArMzgsOSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTE3
MDIsOCArMTcwNSw4IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlByb2Nlc3NQcm94eTo6c2Vzc2lvbklE
KCkgY29uc3QKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQogewot
ICAgIGF1dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsKLSAgICBBU1NFUlQoc3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAgQVNTRVJUKCFtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvJiBzcGVlY2hSZWNvZ25p
dGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIs
IG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBXZWJQYWdlUHJveHkqIHRhcmdldFBhZ2Ug
PSBudWxscHRyOwogICAgIGZvciAoYXV0byogcGFnZSA6IHBhZ2VzKCkpIHsKICAgICAgICAgaWYg
KHBhZ2UgJiYgcGFnZS0+d2ViUGFnZUlEKCkgPT0gaWRlbnRpZmllcikgewpAQCAtMTcxNSw3ICsx
NzE4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKICAgICBpZiAoIXRhcmdldFBhZ2UpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52
YWx1ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNvbm5l
Y3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2Up
XShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CisgICAg
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtl
V2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRs
ZXIpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdlKSB7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSk7
CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzIzLDcgKzE3MjYsMjAgQEAgdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9u
U2VydmVySWRlbnQKIAogICAgICAgICB3ZWFrUGFnZS0+cmVxdWVzdFNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9KTsK
LSAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5pdGVyYXRvci0+dmFsdWUpOworICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmll
ciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
ICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPnNl
dFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYg
ZGV2aWNlKSAtPiBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4geworICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAg
aWYgKCF3ZWFrUGFnZSB8fCB3ZWFrUGFnZS0+cHJlZmVyZW5jZXMoKS5jYXB0dXJlQXVkaW9JbkdQ
VVByb2Nlc3NFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAg
ICBhdXRvJiBzb3VyY2VNYW5hZ2VyID0gZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcigpOworICAgICAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoc291cmNlTWFuYWdlciwgZGV2aWNl
KTsKKyAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNw
ZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBp
ZGVudGlmaWVyKQpAQCAtMTczMyw2ICsxNzQ5LDIwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
ZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVu
CiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5yZW1vdmUoaWRlbnRpZmllcik7CiB9
CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICgh
bV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKSB7Cisg
ICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSk7CisgICAgICAgIGFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKm1fc3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKworI2Vu
ZGlmCisKICNpZiBQTEFURk9STShXQVRDSE9TKQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3Rh
cnRCYWNrZ3JvdW5kQWN0aXZpdHlGb3JGdWxsc2NyZWVuSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBjMTBiMzk0OGQ3NzY3NjM3MTRkMTY0Nzli
NTkzNjI4MmE2OTczM2RhLi43N2QzMDljNWNkZDRmMTNiZGIwNDNkNzQxODk5NjgzNDRiZWNiMzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAzLDYg
KzEwMywxMCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQ
cmVmZXJlbmNlc1N0b3JlOwogc3RydWN0IFdlYnNpdGVEYXRhOwogCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI7CisjZW5kaWYKKwogZW51bSBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBl
IHsgfTsKIHR5cGVkZWYgUmVmQ291bnRlcjxGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBl
PiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI7CiB0eXBlZGVmIEZvcmVncm91bmRXZWJQcm9j
ZXNzQ291bnRlcjo6VG9rZW4gRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbjsKQEAgLTUwNSw2ICs1
MDksOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGVzdHJveVNw
ZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3lzdGVtQmVl
cCgpOwogICAgIApAQCAtNjQzLDYgKzY1MCw5IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1hcCA9IEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+PjsKICAg
ICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFw
OworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzNTI4ZjQ3MWY0NjNkZjZjMTEzMGEzZmI4Mzc3NmJmMWIyYWJl
Zjk0Li43YWE0NGQ1ODQ0NTQ1YjgwYTE2MDBlYmNiYzg0OGExYTMxZjViZjZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MzEsNiAr
MTQzMSwxMSBAQAogCQk5M0E4OEIzMzFCQzZFOUNEMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3Vs
dERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QTg4QjMxMUJDNkU5QzAwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oICovOyB9Owog
CQk5M0E4OEIzQjFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIzQTFC
QzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87IH07CiAJCTkz
QTg4QjQ2MUJDODgyOTMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEI0MzFCQzg4MjhDMDBBQkE1
QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5oICovOyB9OworCQk5M0FCOUI0QzI1NzU2M0YzMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEEyNTc0QzYx
RjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aCAqLzsgfTsKKwkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJ
CTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJOTNBQjlCNTUyNTc1QTI3NjAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk5M0FCOUI1NjI1NzVB
MjhCMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CiAJCTkzQjI2MTREMjI3RDE0OUUwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDkyMjdE
MTQ3MjAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzQjI2MTRFMjI3RDE0
QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExv
Y2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAv
KiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKQEAgLTQ1ODIsNiArNDU4NywyMCBAQAogCQk5
M0E4OEIzQTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MjFCQzg4MjhDMDBBQkE1QzIg
LyogQVBJSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBUElIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNBODhCNDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ0
MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5
QjQ2MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBQjlCNEIyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRGMjU3NTg5MTEwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MDI1NzU4OTExMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ1MjI3RDE0NzAwMEI5
N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFj
a2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFi
YXNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0NzIyN0Qx
NDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTUxLDYgKzg5NzAsMTYgQEAKIAkJ
CXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5M0FCOUI0
ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJOTNBQjlCNEEy
NTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0OTI1NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJ
CQlwYXRoID0gU3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTNC
MjYxNDMyMjdEMTQzMTAwQjk3QTc2IC8qIFdlYlN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTE1NSw2ICs5MTg0LDcgQEAKIAkJCQk1MTA1QjBE
MjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4QUE4MDAy
OURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAw
REIxMzcxIC8qIFBsdWdpbnMgKi8sCisJCQkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8qIFNw
ZWVjaCAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLywKIAkJ
CQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCiAJCQkJNTc2MDgy
OEEyMDI5ODRDOTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0aW9uICovLApAQCAtOTM2OCw2ICs5
Mzk4LDExIEBACiAJCQkJOTNENkI3QjAyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwICovLAogCQkJCTkzRDZCN0IyMjU1MjY4QTIwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJOTNENkI3
QUYyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aCAqLywKKwkJCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5M0FCOUI0MjI1NzQ5MjhDMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8s
CisJCQkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkzQUI5QjQ1MjU3NDkyOEQw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmggKi8sCisJCQkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJ
OTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCAq
LywKIAkJCQk5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaCAqLywKIAkJCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0xMDUxMiw2ICsxMDU0NywxMiBAQAogCQkJCTFE
RDJBNjcyMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxREQyQTY3MzI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNl
QnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NzEyNTYyMzI0RjAw
RkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAqLywK
KwkJCQk5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTQy
NTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgg
Ki8sCisJCQkJOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJ
CTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MjI1NzU4OTEy
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJOTNE
NkI3ODAyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMu
aCAqLywKIAkJCQk5M0Q2Qjc3RjI1NENDQUJCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTExNTgwLDYgKzExNjIxLDkgQEAKIAkJCQk1
N0ZEMzE4NTIyQjM1MTY5MDA4RDBFOEIgLyogU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNENkI3QjUyNTUyNjhENzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I0MjU1MjY4
RDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0FCOUI0QzI1NzU2M0YzMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlC
NEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODQyNTRDQ0QwRTAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3Nh
Z2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzM0Nyw2ICsxMzM5MSw4IEBACiAJCQkJ
NTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWdu
aWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxREQyQTY3NDI1NjIzMkExMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NTI1NzVBMjc2MDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NjI1NzVBMjhCMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1
OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFw
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNjhFRURFMjMwM0E5MDIw
MEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhZDNlNDgzNTg3YWY4OTA3NDBlMzhiYzBjZmU2MDVjMzFh
NzAyMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAg
KzEsMjU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaD4KKworI2lmIFBM
QVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
U3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQXVkaW9EYXRh
Lmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgPFdlYkNvcmUv
QXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFT
b3VyY2UKKyAgICA6IHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2
ZXIKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1w
bGVPYnNlcnZlcgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgcHVibGljIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlOjpDbGllbnQKKyNlbmRpZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+JiYgc291cmNlLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisg
ICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RG
TW92ZShzb3VyY2UpKQorICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24p
KQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVl
UmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlPih0aGlzKSkpCisjZW5kaWYKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5hZGRP
YnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVy
KCp0aGlzKTsKKyAgICB9CisKKyAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpCisgICAgeworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworI2VuZGlm
CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAg
ICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB2b2lk
IHN0YXJ0KCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5zdGFydCgpOworICAgIH0KKworICAg
IHZvaWQgc3RvcCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0KKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdl
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOworICAgIH0KKyNlbmRpZgorCitwcml2YXRl
OgorICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsCisgICAgeworICAgICAgICBpZiAobV9z
b3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90
ZVNvdXJjZVN0b3BwZWQobV9pZGVudGlmaWVyKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBhdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBXZWJDb3JlOjpQ
bGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKSBmaW5hbAorICAg
IHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVz
Y3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2Ny
aXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNU
eXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigp
LmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3Jp
cHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgICAgIG1fcmluZ0J1ZmZlci5hbGxvY2F0
ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFtZXMpOwor
ICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9E
YXRhKSk7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zdG9yZShkb3duY2FzdDxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUo
KSk7CisgICAgICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgICAgIHVpbnQ2NF90IGVuZEZy
YW1lOworICAgICAgICBtX3JpbmdCdWZmZXIuZ2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJh
bWUsIGVuZEZyYW1lKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVBdWRp
b1NhbXBsZXNBdmFpbGFibGUobV9pZGVudGlmaWVyLCB0aW1lLCBudW1iZXJPZkZyYW1lcywgc3Rh
cnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTSh0aW1l
KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGF1ZGlvRGF0YSk7CisgICAgICAgIFVOVVNFRF9QQVJB
TShkZXNjcmlwdGlvbik7CisgICAgICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7Cisj
ZW5kaWYKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKworICAgIHZvaWQgc3RvcmFnZUNo
YW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbAorICAgIHsKKyAgICAgICAgU2hhcmVk
TWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAg
IHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6
UmVhZE9ubHkpOworI2lmIE9TKERBUldJTikgfHwgT1MoV0lORE9XUykKKyAgICAgICAgdWludDY0
X3QgZGF0YVNpemUgPSBoYW5kbGUuc2l6ZSgpOworI2Vsc2UKKyAgICAgICAgdWludDY0X3QgZGF0
YVNpemUgPSAwOworI2VuZGlmCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U2V0U3Rv
cmFnZShtX2lkZW50aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5k
bGUpLCAgMCB9LCBtX2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJhbWVzKSwgMCk7CisgICAgfQor
CisjZW5kaWYKKworICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkgZmluYWwKKyAgICB7Cisj
aWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgICAgIGF1dG8gYnVmZmVyU2l6ZSA9IEF1ZGlvU2Vz
c2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOworICAgICAgICBpZiAoQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVyU2l6ZSgpID4gYnVmZmVy
U2l6ZSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZl
cnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVk
U2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCwgUm91dGVT
aGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyNlbmRpZgorICAgIH0KKworICAgIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8V2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOworICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CisgICAg
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworI2VuZGlmCit9Owor
CitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMp
OworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7CisgICAgbV9zYW5kYm94RXh0
ZW5zaW9uRm9yVENDRCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hI
YW5kbGVGb3JUQ0NEKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKQorICAg
ICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIHRj
Y2QiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPmNvbnN1
bWUoKTsKKworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkpOworICAg
IGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAgICAgICAgTE9HX0VSUk9S
KCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBtaWNyb3Bob25lIik7Cisg
ICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5jb25zdW1l
KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmIChtX3NhbmRib3hFeHRlbnNp
b25Gb3JUQ0NEKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPnJldm9rZSgp
OworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVsbHB0cjsKKyAgICB9CisK
KyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkgeworICAgICAgICBtX3Nh
bmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94
RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQorfQorCisjZW5kaWYKKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAgIGF1dG8gcmVzdWx0ID0g
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1l
ZGlhU291cmNlKGRldmljZSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9S
KCJGYWlsZWQgdG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpS
ZW1vdGVDYXB0dXJlRmFpbGVkKGlkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBt
X3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZT4o
aWRlbnRpZmllciwgcmVzdWx0LnNvdXJjZSgpLCBtYWtlUmVmKCptZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpKSkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3Rh
cnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAg
ICBzb3VyY2UtPnN0YXJ0KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6c3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQo
aWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RvcCgpOworfQorCitJUEM6OkNvbm5lY3Rp
b24qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0
aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxZjViMTllMzcwZjViZTBhNDY4NGQ5ZTFjZDI3ZTAy
NzBjMDkwN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCww
ICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2Fn
ZVNlbmRlci5oIgorI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIDogcHVibGljIENh
bk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+
LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVy
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgflNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VY
VEVOU0lPTlMpCisgICAgdm9pZCBncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSYmLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9pZCByZXZv
a2VTYW5kYm94RXh0ZW5zaW9ucygpOworI2VuZGlmCisKKyAgICB2b2lkIGFkZFNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIpOworCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVy
LgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpD
b25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVp
bnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBj
bGFzcyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIGZyaWVuZCBjbGFzcyBSZWFsdGltZU1lZGlh
U291cmNlOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworCisj
aWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lv
bj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRDsKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lv
bj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZTsKKyNlbmRpZgorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMxMjU3YTI4MjU5YWY1YzdkNDhhZjcwZDRiOGZkYjcxZDEwNDE5ZGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOCBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKK21lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgQWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2
aWNlKQorICAgIFJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyKQorICAgIFN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpOworICAgIFN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJ
T05TKQorICAgIEdyYW50U2FuZGJveEV4dGVuc2lvbnMoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZvclRDQ0QsIFdlYktpdDo6U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVGb3JNaWNyb3Bob25lKQorICAg
IFJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKKyNlbmRpZgorfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKaW5kZXggM2YzNTMxOTRh
MzJjM2U2NzliY2EyOWZiZWE4NTAzMWM5MjFlNGZjNC4uZTBkMmE1OTg1NTViOTg5Nzg1ODU4YWI2
YzY0YTc1NGFmZGExMTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDEwIEBAIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9u
CiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9pZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpDcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihtX2lkZW50aWZpZXIpLCAwKTsKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlm
CiB9CiAKIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggZjJmMjI4MjJjN2IyMjNmY2E1OWY5NTU3M2QxMWRjOTliMTAzNDgxMS4uYjEyMzljNTc3YmI4
NDZhOGNjNGRmY2YyOGJkMmQzMDQwNGQzZGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NBc3NlcnRp
b24uaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVM
ZWdhY3lDRE1GYWN0b3J5LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAjaW5jbHVk
ZSAiVXNlckRhdGEuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCkBA
IC0xOTY5LDYgKzE5NzAsMTYgQEAgdm9pZCBXZWJQcm9jZXNzOjplbmFibGVWUDlTV0RlY29kZXIo
KQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1fc3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4oKTsKKworICAgIHJldHVybiAq
bV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZTljNDdkYjRjNDQ3YzBm
NGFiNjI3YzA5NGI1ZjY4ZGI1NjVhOWE2Yy4uN2U1YTRjYWE0YzVkMmUyMzc4ODEzZWI0ZjJmNDIy
OGJkZTRjYzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xNDIs
NiArMTQyLDEwIEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIGNsYXNzIExh
eWVySG9zdGluZ0NvbnRleHQ7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlm
CisKIGNsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcwogewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMzYwLDYgKzM2NCwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRXcml0ZVRvUGFzdGVib2FyZEFzeW5jaHJvbm91c2x5KGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJvY2VzcygpOwpAQCAtNjkzLDYgKzcwMSwx
MCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92cDlEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3ZwOVNXRGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="commit-queue"
          id="432343"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415196</attachid>
            <date>2020-12-01 23:35:01 -0800</date>
            <delta_ts>2020-12-02 16:54:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201201233500.patch</filename>
            <type>text/plain</type>
            <size>87820</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE2YTRiYzRlYWNmMzFlMjA2YmRmYmFj
Zjk4NjUzZTYyYzJjNTcyNGYuLmE3ODdlOWY5MTljZDVlMzEzYTYwNGFiYTg3MGEzY2NiMzgxNjMx
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMS0z
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNl
IGFuIGV4cGVyaW1lbnRhbCBmbGFnIHNwZWNpZmljIHRvIFZQOSBwcm9maWxlIDIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0Y2Y4NWNjMjk2NDNkMGVhNTZjODQxZTdlZDliNzZlYTgzYTMxN2VlLi4xZTU1MzU5NmU2
YzAwN2E2ZGEyOGI2MTBjOGJhZWMyNTUyM2M1NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMjAtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHNldCBSZWFsdGltZU1l
ZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuIAorCisg
ICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIE1vYmlsZU1pbmlCcm93c2VyLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXpl
cjo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0UmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhh
cnUub2h6ZWtpQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBNb3ZlIFNoYWRvd1Jvb3RJ
bml0IHRvIGRlZGljYXRlZCBpZGwgZmlsZSBmcm9tIEVsZW1lbnQuaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1
ZDllMmFlNmJhZTAyMzgxMTQyNmNiY2JiN2U5ZDY2ODQxYjg3ZDEuLmE3MTI2ZGI1ODA4OTc5OTJi
Zjc5ZjNlODRjYTcwMTc5ZWQ2NTM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMjAt
MTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPbiBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJv
Y2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25pdGlvbiwgVUkgcHJvY2VzcyBzaG91bGQgYXNrIHdlYiBw
cm9jZXNzIHRvCisgICAgICAgIGRvIGF1ZGlvIGNhcHR1cmUgYW5kIHNlbmQgYmFjayBkYXRhLiBU
byBpbXBsZW1lbnQgdGhpcywgd2UgaGF2ZSBpbnRyb2R1Y2VkOgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZSAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4gCisgICAgICAg
IE9uIGlPUywgd2UgdXNlIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLgorICAgICAgICAtIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcyBpbgorICAgICAgICBVSSBw
cm9jZXNzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6IG93biBhbmQgbWFuYWdlIGFsbCAKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZXMgaW4gd2ViIHByb2Nl
c3MuCisKKyAgICAgICAgTGlrZSBleGlzdGluZyBtZWRpYSBjYXB0dXJlIGltcGxlbWVudGF0aW9u
LCB3ZSB1c2Ugc2hhcmVkIG1lbW9yeSB0byBwYXNzIGF1ZGlvIGRhdGEgdG8gZnJvbSB3ZWIgcHJv
Y2VzcyB0byBVSQorICAgICAgICBwcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6Om1fcmluZ0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2Fw
dHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6Y29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjp+UmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVu
c2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTAxICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgogCiAgICAgICAgIElUUCBsb2dnaW5nIG1peGVzIHVwIHRoZSBVSSBwcm9j
ZXNzIElUUCBzdGF0ZSB3aXRoIHRoZSBTZXR0aW5ncyBJVFAgc3RhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKaW5kZXggZDRkYWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJm
Mi4uNTc5YWE1M2JjOWJkODEwOGRiZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQ6CiAgICAgV2ViS2l0TGVnYWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJL
aXQ6CisgICAgICAiUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAg
ZGVmYXVsdDogZmFsc2UKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IGZkODUxMjk4N2I5OWExYTgyOTVjMTA3ZTE5OWU1ZjA3NTUxNTNkMjYu
LmViYTA1ZWZkMzY2OTNhMzNkMjVjMzZkM2RhOGMxMDJmMWRjZjNjMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2
ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUy
ZmNkNDNkNzMxMDk3MmYzOGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApA
QCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBk
YXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2Fw
dHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURl
dmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAg
ICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVE
ZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1
MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNl
IGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwg
ZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAg
IGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVk
aW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmlj
ZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlv
Q2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVy
LCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJh
Y2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxi
YWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
ayksIFdURk1vdmUoc291cmNlKSk7Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJj
ZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVO
VVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNh
bGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5
ZjRlMGEuLjMyMDFhYzJlMzBiZTA4ZjU5Mjc1ZjQxZGNmZDRlYmY0N2JkOGI2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRl
Q2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggYmZjNWJlMTAzNGJl
M2MxMmQyY2FkZWMzZTEyMTk0M2VhYjg5OTMyMy4uOTg0MjY3ZTJiMTk0OTFjNjRhYzVlZGVjNjM0
M2QwNzZlYjQxNDFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAK
QEAgLTg4LDYgKzg4LDEwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAgICBpZiAoIW1fZGF0
YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNv
dXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGF1dG8g
ZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNh
bXBsZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICAgICAgaWYgKGRhdGFTb3VyY2Ut
PnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICBpZiAoaXNN
YWluVGhyZWFkKCkpIHsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgICAgICAgICBpZiAo
d2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2Fw
dHVyZSwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0IiB9KSk7CkBAIC05Niw2ICsxMDAsMTAg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRhdGFT
b3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAg
aWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewogICAgICAgICAgICAg
ICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CkBAIC0xMTAs
NyArMTE4LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgIH0KIAogICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxlQ291bnQpOwotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRpbWUsIGF1ZGlv
RGVzY3JpcHRpb24sIHNhbXBsZUNvdW50XSB7CisgICAgYXV0byBtYWludGhyZWFkSGFuZGxlciA9
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0
aW9uLCBzYW1wbGVDb3VudF0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMjEsNyArMTI5LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAg
ICAgICAgfQogCiAgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3Jp
cHRpb24sIHNhbXBsZUNvdW50KTsKLSAgICB9KTsKKyAgICB9OworICAgIGlmICghaXNNYWluVGhy
ZWFkKCkpCisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShtYWludGhyZWFkSGFuZGxl
cikpOworICAgIGVsc2UKKyAgICAgICAgbWFpbnRocmVhZEhhbmRsZXIoKTsKICNlbHNlCiAgICAg
bV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
emVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMyOWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li5j
MGUxMDQ5OWM5M2Y1MWQ0NmE3YWZmZDQxZDUwODE0MDQ3M2I1OTNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtOTAsNyAr
OTAsMzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKCkKICAgICAgICAg
ICAgIG1fc291cmNlID0gbnVsbHB0cjsKICAgICB9OwogCi0gICAgbV9zb3VyY2UgPSBtYWtlVW5p
cXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwg
V1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spKTsKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gY2FwdHVyZURldmljZSA9IFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKTsKKyAgICBpZiAoIWNh
cHR1cmVEZXZpY2UpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5v
IGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH0pKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbikgewor
ICAgICAgICBhdXRvIHJlYWx0aW1lU291cmNlID0gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb24oKmNhcHR1cmVEZXZpY2UpOworICAgICAgICBpZiAoIXJlYWx0aW1lU291cmNlKSB7
CisgICAgICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiRmFpbGVkIHRvIGNy
ZWF0ZSByZWFsdGltZSBzb3VyY2UiIH0pKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1v
dmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIG1ha2VSZWYoKnJlYWx0aW1lU291cmNlKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7
CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
bV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1f
Y2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBk
YXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgU3BlZWNo
UmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdlbmVyYXRl
RmluYWxSZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pemVyLmgKaW5kZXggZTZmMTNmZWU4NGE1MzNhZjBmMDRlMDc2OWMxYWUwOTViZTViZmYz
Zi4uNmYxMTI5YzU0NDVhZGNjZTc0MDU0MWE5N2RmZjM2MDZiMmNjMGFjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtNDUsNiAr
NDUsMTEgQEAgcHVibGljOgogCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgdXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gRnVuY3Rpb248UmVm
UHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmKT47CisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24o
UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYgZnVuY3Rpb24pIHsgbV9yZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgc3RhcnRJbnRlcm5hbCgp
OwpAQCAtNTMsNiArNTgsMTAgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7CiAgICAg
RGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBtX3Jl
YWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDJlN2U5ZmQyYjkxZWI4MTAxMzQ1NjBkZmZkODBhY2QyMTBiM2Zk
YzAuLjc0MmUyZGU0ZmY3ZWNmYTA1MTYzMTU1ZGM0ZWEzMTc4MTU2ZjlhMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzNjI1
LDEzICsyMzYyNSw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OwotCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJKTsKLQkJCXBhdGggPSBjb2Nv
YTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTk0NkQzNzI3MUQ2Q0IyMjUw
MDc3MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMjU2NjIsNyArMjU2NTUsNiBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUg
Lyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0
ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFB
MkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICov
LAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDYyODQ0NTMyNTAzMzUxMDdmZDU0OTgyMjMy
YjhiOWVhZWM4ZTY4Y2IuLjY4ZjdlZDg2NWM3MzEyMjkyOGMwNmM3MTcyYjM3Njk2Y2IyMmNlMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTAzLDYgKzEwMyw3IEBAIHNldChXZWJLaXRfSU5DTFVE
RV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIgorICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvU3BlZWNoIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3RvcmFnZSIK
ICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQiCkBAIC0xODMsNiArMTg0LDcgQEAgc2V0
KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyCiAKICAgICBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorICAgIFVJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAg
ICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rU3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CkBAIC0yNTQs
NiArMjU2LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJveHkKIAorICAgIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24KICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IGVkYjZjYTU5NzlkMmY0ZGVmOGIyYjJlNzczZjlkNjlhZTc4NmU3
ZTkuLjgzMWM4ZjAyOGE1NmUzYTMxMTU0ZWQ1NjIwMmNlMDAyMmE1MjNmNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwNCw2ICsxMDQs
NyBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveAogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5tZXNzYWdlcy5pbgpAQCAtMTYxLDYgKzE2Miw3IEBAICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5t
ZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKaW5kZXggNzU2NzlmNTVmNWFlMzk5YjVlYWY0NzdmMTg5MzI1NmJjMjQ4ODQ0ZC4uZmIy
ZmFkNmQ0YTljNmZiYjYxOWYzNjNiYjE0ZmIzMDc0ODhhMjc4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNjAsNiArMjYwLDEyIEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM3NzAxYjAxYzNjMWEyYzMwMGUxZGQyZDcyZTZi
ODUyMzdmNDI0YjUuLjg1Mjg3ODQ5NzMzZDNhODEzYmY0NDMxMDYyNTQ0MjQ2ZjEzYTdmMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY5LDYgKzY5LDcgQEAgVlBBVEggPSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZSBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1NwZWVjaCBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL1N0b3JhZ2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIFwKQEAgLTE2Nyw2
ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01l
ZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uIFwKQEAgLTIwMSw2ICsyMDMsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwK
IAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKIAlXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgXAogCVdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIFwK
KwlXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24gXAogCVdlYlBy
b2Nlc3MvV2ViUHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwOTE3ZjAxYmUxYzlmOGNhYTJhYmY3
ZjBmODkwZjg5NWEzZjJlZjg2Li44ODZkYjZjODdmZWE2Y2E3MTIzNjExMDA4Y2YwMzg5ZDk4YTFl
ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTI5MCw2ICsyOTAsOCBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cAorVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nl
c3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9s
bGVyLmNwcApAQCAtNjM1LDYgKzYzNyw4IEBAIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBAbm8tdW5pZnkKIAorV2ViUHJvY2Vzcy9T
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKwog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFhNWRkMjJmNmM1ODQ4ZmJhYTE1Y2QyY2Q5ZjdiMjA5
ZjQzYjhhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVk
ZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNl
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBj
YXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50
SWQoKSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBtX3JpbmdC
dWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkKKyNlbmRpZgoreworICAgIG1fbWFuYWdlci0+YWRkU291
cmNlKCp0aGlzLCBjYXB0dXJlRGV2aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjp+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnJlbW92
ZVNvdXJjZSgqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIp
CisgICAgICAgIG1fbWFuYWdlci0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdGFydCB7IG1faWRlbnRpZmll
ciB9LCAwKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAg
ICBtX21hbmFnZXItPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RvcCB7IG1faWRlbnRpZmllciB9LCAwKTsK
K30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRs
ZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0g
ZGVzY3JpcHRpb247CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYg
KCFoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAo
aGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9H
X0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2Ui
KTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkp
IHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uu
c2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5
LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAg
bV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAg
IG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
VGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKCFtX2J1
ZmZlcikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZlciBmb3IgcmVtb3RlIHNvdXJjZSBpcyBu
dWxsIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7CisgICAgbV9y
aW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwor
ICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMs
IHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9i
dWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7CisgICAgVU5V
U0VEX1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShlbmRGcmFtZSk7CisjZW5k
aWYKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnJlbW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJj
ZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42N2JjMGQxMzFmMmNkYjE1ZjkyNWNlMDkwMTk1N2VmYTRkNDQwY2JlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmlj
ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIH5TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0U3RvcmFnZShjb25z
dCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgdm9pZCBy
ZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQg
cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOwor
Citwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmKTsKKworICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2
b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0Rh
dGEoKSBmaW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQor
ICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX21hbmFnZXI7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZm
ZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9C
dWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTBhMTY5MTZjYTIyYmEzYTdlODIwMjdiYTkxOWEyOTM0
NWRkNGJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCAr
MSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0
aW9uKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlJiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVE
ZXZpY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAg
ICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2Vz
LmFkZChpZGVudGlmaWVyLCAmc291cmNlKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lP
TlMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgaWYgKCFtX2hhc0dyYW50ZWRTYW5k
Ym94RXh0ZW5zaW9ucykgeworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxl
Rm9yVENDRDsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExv
b2t1cCgiY29tLmFwcGxlLnRjY2QiX3MsIG1fY29ubmVjdGlvbi0+Z2V0QXVkaXRUb2tlbigpLCBo
YW5kbGVGb3JUQ0NEKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZv
ck1pY3JvcGhvbmU7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdl
bmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQubWljcm9waG9uZSJfcywgaGFuZGxlRm9y
TWljcm9waG9uZSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkdyYW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9y
VENDRCwgaGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94
RXh0ZW5zaW9ucyA9IHRydWU7CisgICAgfQorI2VuZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UoaWRl
bnRpZmllciwgY2FwdHVyZURldmljZSkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGlkZW50
aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVChtX3NvdXJjZXMuZ2V0KGlk
ZW50aWZpZXIpID09ICZzb3VyY2UpOworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7
CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQorICAgIGlmIChtX3NvdXJjZXMuaXNFbXB0eSgpICYmIG1faGFzR3JhbnRlZFNhbmRib3hF
eHRlbnNpb25zKSB7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOworICAg
ICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0KKyNlbmRp
ZgorCisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVtb3ZlU291cmNlKGlkZW50aWZpZXIpKTsKK30KKworI2lmIFBMQVRGT1JN
KENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRsZSwg
Y29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKGF1dG8qIHNvdXJjZSA9IG1fc291cmNl
cy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUu
aGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1v
dGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sK
KyAgICBpZiAoYXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAg
ICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVyT2ZGcmFt
ZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8qIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJj
ZS0+cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAo
YXV0byogc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNl
LT5yZW1vdGVTb3VyY2VTdG9wcGVkKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNv
bm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisK
K3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhODU5N2Q3MmMx
NGViODA4NjA3NDZhZDg4MjgzYjlhNmExMmMyZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisKK25h
bWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBDYXB0dXJlRGV2aWNlOworCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTsKKworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6IHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6
TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8
SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
Jik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlJik7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3Jh
Z2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICB2b2lkIHJlbW90ZUF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0
X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVy
ZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9p
ZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyKTsKKworICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5wdHIoKTsgfQorCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVy
LgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpD
b25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVp
bnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgSGFzaE1hcDxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlKj4gbV9zb3VyY2VzOworICAgIGJvb2wgbV9oYXNHcmFudGVkU2FuZGJv
eEV4dGVuc2lvbnMgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBlM2Y2Y2Y2MDE5MWZlMWQ4MTA1ZWUz
NDFlODhiZWYzZDRmZjk5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwzNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBk
ZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYKKworICAgIFJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMs
IHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNhcHR1
cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKKyAgICBSZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDlmNjAwZDNmNWNk
YzZjMzJjNTQ4YTBhMDlhYjAyYmMxNDUzNDUyNDQuLmRkMzg3OGFkMDQ5YWRhYTBmY2Y2YWM1YjIy
MzQ5NTUyNmZjMzdiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTkxLDYgKzkxLDE0IEBAIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uCiAKICAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKICAgICAgICAgfSk7
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICAgICBpZiAobV9yZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb24pIHsKKyAgICAgICAgICAgIG1fcmVjb2duaXplci0+c2V0UmVh
bHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFt0aGlzXShhdXRvJiBkZXZpY2UpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24o
ZGV2aWNlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAg
ICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggYTdmNzZkMzhl
ZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNy4uN2IwNmZmMTM3NTllNGQ4Mjc3NDZiZDM4
YmQ1ZDgyNDZlN2IzYTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC01Nyw2ICs1NywxMCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyKTsKICAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0aW9u
KSB7IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlv
bik7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JS
ZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwogICAgIHZvaWQgaGFu
ZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyKTsKQEAgLTc1LDYgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAg
ICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2du
aXplcjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXplcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVNZWRp
YVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU3
ZDljZGZlNTUzNWMyN2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLjc4NWVhNDk2OWVlMmVkZDg1
YTJiYTI2YzM0YzJjODYyMTg0NDk0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMzgsNiArMzgsOSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTE3
MDIsOCArMTcwNSw4IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlByb2Nlc3NQcm94eTo6c2Vzc2lvbklE
KCkgY29uc3QKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQogewot
ICAgIGF1dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsKLSAgICBBU1NFUlQoc3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAgQVNTRVJUKCFtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvJiBzcGVlY2hSZWNvZ25p
dGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIs
IG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBXZWJQYWdlUHJveHkqIHRhcmdldFBhZ2Ug
PSBudWxscHRyOwogICAgIGZvciAoYXV0byogcGFnZSA6IHBhZ2VzKCkpIHsKICAgICAgICAgaWYg
KHBhZ2UgJiYgcGFnZS0+d2ViUGFnZUlEKCkgPT0gaWRlbnRpZmllcikgewpAQCAtMTcxNSw3ICsx
NzE4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKICAgICBpZiAoIXRhcmdldFBhZ2UpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52
YWx1ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNvbm5l
Y3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2Up
XShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CisgICAg
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtl
V2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRs
ZXIpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdlKSB7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSk7
CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzIzLDcgKzE3MjYsMjAgQEAgdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9u
U2VydmVySWRlbnQKIAogICAgICAgICB3ZWFrUGFnZS0+cmVxdWVzdFNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9KTsK
LSAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5pdGVyYXRvci0+dmFsdWUpOworICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmll
ciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
ICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXItPnNl
dFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYg
ZGV2aWNlKSAtPiBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4geworICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAg
aWYgKCF3ZWFrUGFnZSB8fCB3ZWFrUGFnZS0+cHJlZmVyZW5jZXMoKS5jYXB0dXJlQXVkaW9JbkdQ
VVByb2Nlc3NFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAg
ICBhdXRvJiBzb3VyY2VNYW5hZ2VyID0gZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcigpOworICAgICAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoc291cmNlTWFuYWdlciwgZGV2aWNl
KTsKKyAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNw
ZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBp
ZGVudGlmaWVyKQpAQCAtMTczMyw2ICsxNzQ5LDIwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
ZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVu
CiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5yZW1vdmUoaWRlbnRpZmllcik7CiB9
CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICgh
bV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKSB7Cisg
ICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSk7CisgICAgICAgIGFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKm1fc3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKworI2Vu
ZGlmCisKICNpZiBQTEFURk9STShXQVRDSE9TKQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3Rh
cnRCYWNrZ3JvdW5kQWN0aXZpdHlGb3JGdWxsc2NyZWVuSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBjMTBiMzk0OGQ3NzY3NjM3MTRkMTY0Nzli
NTkzNjI4MmE2OTczM2RhLi43N2QzMDljNWNkZDRmMTNiZGIwNDNkNzQxODk5NjgzNDRiZWNiMzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAzLDYg
KzEwMywxMCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQ
cmVmZXJlbmNlc1N0b3JlOwogc3RydWN0IFdlYnNpdGVEYXRhOwogCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI7CisjZW5kaWYKKwogZW51bSBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBl
IHsgfTsKIHR5cGVkZWYgUmVmQ291bnRlcjxGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBl
PiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI7CiB0eXBlZGVmIEZvcmVncm91bmRXZWJQcm9j
ZXNzQ291bnRlcjo6VG9rZW4gRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbjsKQEAgLTUwNSw2ICs1
MDksOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGVzdHJveVNw
ZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3lzdGVtQmVl
cCgpOwogICAgIApAQCAtNjQzLDYgKzY1MCw5IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1hcCA9IEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+PjsKICAg
ICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFw
OworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzNTI4ZjQ3MWY0NjNkZjZjMTEzMGEzZmI4Mzc3NmJmMWIyYWJl
Zjk0Li43YWE0NGQ1ODQ0NTQ1YjgwYTE2MDBlYmNiYzg0OGExYTMxZjViZjZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MzEsNiAr
MTQzMSwxMSBAQAogCQk5M0E4OEIzMzFCQzZFOUNEMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3Vs
dERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QTg4QjMxMUJDNkU5QzAwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oICovOyB9Owog
CQk5M0E4OEIzQjFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIzQTFC
QzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87IH07CiAJCTkz
QTg4QjQ2MUJDODgyOTMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEI0MzFCQzg4MjhDMDBBQkE1
QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5oICovOyB9OworCQk5M0FCOUI0QzI1NzU2M0YzMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEEyNTc0QzYx
RjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aCAqLzsgfTsKKwkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJ
CTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJOTNBQjlCNTUyNTc1QTI3NjAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk5M0FCOUI1NjI1NzVB
MjhCMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CiAJCTkzQjI2MTREMjI3RDE0OUUwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDkyMjdE
MTQ3MjAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzQjI2MTRFMjI3RDE0
QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExv
Y2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3NiAv
KiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKQEAgLTQ1ODIsNiArNDU4NywyMCBAQAogCQk5
M0E4OEIzQTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MjFCQzg4MjhDMDBBQkE1QzIg
LyogQVBJSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBUElIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNBODhCNDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ0
MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5
QjQ2MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBQjlCNEIyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRGMjU3NTg5MTEwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MDI1NzU4OTExMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ1MjI3RDE0NzAwMEI5
N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFj
a2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFi
YXNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0NzIyN0Qx
NDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTUxLDYgKzg5NzAsMTYgQEAKIAkJ
CXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5M0FCOUI0
ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJOTNBQjlCNEEy
NTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0OTI1NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJ
CQlwYXRoID0gU3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTNC
MjYxNDMyMjdEMTQzMTAwQjk3QTc2IC8qIFdlYlN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTE1NSw2ICs5MTg0LDcgQEAKIAkJCQk1MTA1QjBE
MjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4QUE4MDAy
OURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAw
REIxMzcxIC8qIFBsdWdpbnMgKi8sCisJCQkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8qIFNw
ZWVjaCAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLywKIAkJ
CQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCiAJCQkJNTc2MDgy
OEEyMDI5ODRDOTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0aW9uICovLApAQCAtOTM2OCw2ICs5
Mzk4LDExIEBACiAJCQkJOTNENkI3QjAyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwICovLAogCQkJCTkzRDZCN0IyMjU1MjY4QTIwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJOTNENkI3
QUYyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aCAqLywKKwkJCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5M0FCOUI0MjI1NzQ5MjhDMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8s
CisJCQkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkzQUI5QjQ1MjU3NDkyOEQw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmggKi8sCisJCQkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJ
OTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCAq
LywKIAkJCQk5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaCAqLywKIAkJCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0xMDUxMiw2ICsxMDU0NywxMiBAQAogCQkJCTFE
RDJBNjcyMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxREQyQTY3MzI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNl
QnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NzEyNTYyMzI0RjAw
RkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAqLywK
KwkJCQk5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTQy
NTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgg
Ki8sCisJCQkJOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJ
CTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MjI1NzU4OTEy
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJOTNE
NkI3ODAyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMu
aCAqLywKIAkJCQk5M0Q2Qjc3RjI1NENDQUJCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTExNTgwLDYgKzExNjIxLDkgQEAKIAkJCQk1
N0ZEMzE4NTIyQjM1MTY5MDA4RDBFOEIgLyogU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNENkI3QjUyNTUyNjhENzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I0MjU1MjY4
RDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0FCOUI0QzI1NzU2M0YzMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlC
NEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODQyNTRDQ0QwRTAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3Nh
Z2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzM0Nyw2ICsxMzM5MSw4IEBACiAJCQkJ
NTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWdu
aWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxREQyQTY3NDI1NjIzMkExMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NTI1NzVBMjc2MDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NjI1NzVBMjhCMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0Q2Qjc4MjI1NENDQ0Y0MDA1
OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFw
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNjhFRURFMjMwM0E5MDIw
MEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhMWE0Yjk2MmM2OTZkOWQ5Y2Y2YmJkNmNjYTU3N2U3NzE3
YTY2YTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAg
KzEsMjU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaD4KKworI2lmIFBM
QVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlv
U3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQXVkaW9EYXRh
Lmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgPFdlYkNvcmUv
QXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFT
b3VyY2UKKyAgICA6IHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2
ZXIKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1w
bGVPYnNlcnZlcgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgcHVibGljIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlOjpDbGllbnQKKyNlbmRpZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+JiYgc291cmNlLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisg
ICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RG
TW92ZShzb3VyY2UpKQorICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24p
KQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVl
UmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlPih0aGlzKSkpCisjZW5kaWYKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5hZGRP
YnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVy
KCp0aGlzKTsKKyAgICB9CisKKyAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpCisgICAgeworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworI2VuZGlm
CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAg
ICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB2b2lk
IHN0YXJ0KCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5zdGFydCgpOworICAgIH0KKworICAg
IHZvaWQgc3RvcCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0KKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdl
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOworICAgIH0KKyNlbmRpZgorCitwcml2YXRl
OgorICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsCisgICAgeworICAgICAgICBpZiAobV9z
b3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90
ZVNvdXJjZVN0b3BwZWQobV9pZGVudGlmaWVyKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBhdWRp
b1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBXZWJDb3JlOjpQ
bGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKSBmaW5hbAorICAg
IHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVz
Y3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2Ny
aXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNU
eXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigp
LmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3Jp
cHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgICAgIG1fcmluZ0J1ZmZlci5hbGxvY2F0
ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFtZXMpOwor
ICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9E
YXRhKSk7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zdG9yZShkb3duY2FzdDxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUo
KSk7CisgICAgICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgICAgIHVpbnQ2NF90IGVuZEZy
YW1lOworICAgICAgICBtX3JpbmdCdWZmZXIuZ2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJh
bWUsIGVuZEZyYW1lKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVBdWRp
b1NhbXBsZXNBdmFpbGFibGUobV9pZGVudGlmaWVyLCB0aW1lLCBudW1iZXJPZkZyYW1lcywgc3Rh
cnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTSh0aW1l
KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGF1ZGlvRGF0YSk7CisgICAgICAgIFVOVVNFRF9QQVJB
TShkZXNjcmlwdGlvbik7CisgICAgICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7Cisj
ZW5kaWYKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKworICAgIHZvaWQgc3RvcmFnZUNo
YW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbAorICAgIHsKKyAgICAgICAgU2hhcmVk
TWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAg
IHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6
UmVhZE9ubHkpOworI2lmIE9TKERBUldJTikgfHwgT1MoV0lORE9XUykKKyAgICAgICAgdWludDY0
X3QgZGF0YVNpemUgPSBoYW5kbGUuc2l6ZSgpOworI2Vsc2UKKyAgICAgICAgdWludDY0X3QgZGF0
YVNpemUgPSAwOworI2VuZGlmCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U2V0U3Rv
cmFnZShtX2lkZW50aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5k
bGUpLCAgZGF0YVNpemUgfSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyksIDApOwor
ICAgIH0KKworI2VuZGlmCisKKyAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpIGZpbmFsCisg
ICAgeworI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgICAgICBhdXRvIGJ1ZmZlclNpemUgPSBB
dWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkgLyA1MDsKKyAgICAgICAg
aWYgKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnByZWZlcnJlZEJ1ZmZlclNpemUoKSA+
IGJ1ZmZlclNpemUpCisgICAgICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5z
ZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOworICAgICAgICBBdWRpb1Nlc3Npb246
OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQs
IFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVm
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAw
IH07CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVy
OworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyNlbmRp
ZgorfTsKKworU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
ICp0aGlzKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9
CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZvclRDQ0QsIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JNaWNyb3Bob25lKQoreworICAgIG1fc2Fu
ZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShz
YW5kYm94SGFuZGxlRm9yVENDRCkpOworICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yVEND
RCkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9u
IGZvciB0Y2NkIik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NE
LT5jb25zdW1lKCk7CisKKyAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUp
KTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUpCisgICAgICAgIExP
R19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgbWljcm9waG9u
ZSIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+
Y29uc3VtZSgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKK3sKKyAgICBpZiAobV9zYW5kYm94
RXh0ZW5zaW9uRm9yVENDRCkgeworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NELT5y
ZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9IG51bGxwdHI7Cisg
ICAgfQorCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUpIHsKKyAgICAg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+cmV2b2tlKCk7CisgICAgICAgIG1f
c2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBudWxscHRyOworICAgIH0KK30KKworI2Vu
ZGlmCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
YWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSkKK3sKKyAgICBhdXRvIHJl
c3VsdCA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVh
bHRpbWVNZWRpYVNvdXJjZShkZXZpY2UpOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIExP
R19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSByZWFsdGltZSBzb3VyY2UiKTsKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZChpZGVudGlmaWVyKSwgMCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7
CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlYWx0aW1lTWVkaWFT
b3VyY2U+KGlkZW50aWZpZXIsIHJlc3VsdC5zb3VyY2UoKSwgbWFrZVJlZigqbWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NvdXJjZXMucmVtb3ZlKGlkZW50aWZp
ZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJj
ZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0b3AoKTsKK30KKworSVBDOjpD
b25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpt
ZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90IFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJE
ZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MWY1YjE5ZTM3MGY1YmUwYTQ2ODRkOWUx
Y2QyN2UwMjcwYzA5MDdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgK
QEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
Ik1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6IHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2Fn
ZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworICAgIH5TcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisKKyNpZiBFTkFCTEUoU0FO
REJPWF9FWFRFTlNJT05TKQorICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJiwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpOworICAgIHZv
aWQgcmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKTsKKyNlbmRpZgorCisgICAgdm9pZCBhZGRTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAg
IElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsK
KyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOwor
CisgICAgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgUmVhbHRp
bWVNZWRpYVNvdXJjZTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fc291cmNl
czsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgUmVmUHRyPFNhbmRib3hF
eHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Q7CisgICAgUmVmUHRyPFNhbmRib3hF
eHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmU7CisjZW5kaWYKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMTI1N2EyODI1OWFmNWM3ZDQ4YWY3MGQ0YjhmZGI3MWQxMDQxOWRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzgg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEFkZFNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlIGRldmljZSkKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNBTkRCT1hf
RVhURU5TSU9OUykKKyAgICBHcmFudFNhbmRib3hFeHRlbnNpb25zKFdlYktpdDo6U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVGb3JUQ0NELCBXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yTWljcm9waG9u
ZSkKKyAgICBSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCisjZW5kaWYKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCmluZGV4IDNm
MzUzMTk0YTMyYzNlNjc5YmNhMjlmYmVhODUwMzFjOTIxZTRmYzQuLmUwZDJhNTk4NTU1Yjk4OTc4
NTg1OGFiNmM2NGE3NTRhZmRhMTEwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uY3BwCkBAIC00Niw2ICs0NiwxMCBAQCBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNv
Z25pdGlvbgogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwg
MCk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsK
KyNlbmRpZgogfQogCiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGYyZjIyODIyYzdiMjIzZmNhNTlmOTU1NzNkMTFkYzk5YjEwMzQ4MTEuLmIxMjM5
YzU3N2JiODQ2YThjYzRkZmNmMjhiZDJkMzA0MDRkM2RmNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQcm9jZXNz
QXNzZXJ0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgog
I2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5oIgpAQCAtMTk2OSw2ICsxOTcwLDE2IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZW5hYmxlVlA5U1dE
ZWNvZGVyKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3M6OmVuc3VyZVNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICgh
bV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKQorICAgICAgICBt
X3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVl
PFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+KCk7CisKKyAgICBy
ZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX1NF
U1NJT05fSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGU5YzQ3ZGI0
YzQ0N2MwZjRhYjYyN2MwOTRiNWY2OGRiNTY1YTlhNmMuLjdlNWE0Y2FhNGM1ZDJlMjM3ODgxM2Vi
NGYyZjQyMjhiZGU0Y2M1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApA
QCAtMTQyLDYgKzE0MiwxMCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiBj
bGFzcyBMYXllckhvc3RpbmdDb250ZXh0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsK
KyNlbmRpZgorCiBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3MKIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM2MCw2ICszNjQsMTAgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hyb25vdXNseShjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKKwog
cHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nlc3MoKTsKQEAgLTY5Myw2
ICs3MDEsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdnA5RGVjb2RlckVuYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV92cDlTV0RlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL01vYmlsZU1pbmlCcm93c2VyL01vYmlsZU1pbmlCcm93
c2VyLnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL01vYmlsZU1pbmlCcm93c2VyLnhj
c2NoZW1lIGIvVG9vbHMvTW9iaWxlTWluaUJyb3dzZXIvTW9iaWxlTWluaUJyb3dzZXIueGNvZGVw
cm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvTW9iaWxlTWluaUJyb3dzZXIueGNzY2hlbWUKaW5k
ZXggNjJmOGU2YWNiYWRmZWIxMTM2ZGIwOTYzOTJiYWU3NzViMzkxZjZkYy4uY2U2ZWQzNzQ5YTMw
ZTNlODM4YzQwMzc0NzVlYjFiNWI4MGYxNDE4NiAxMDA2NDQKLS0tIGEvVG9vbHMvTW9iaWxlTWlu
aUJyb3dzZXIvTW9iaWxlTWluaUJyb3dzZXIueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvTW9iaWxlTWluaUJyb3dzZXIueGNzY2hlbWUKKysrIGIvVG9vbHMvTW9iaWxlTWluaUJyb3dz
ZXIvTW9iaWxlTWluaUJyb3dzZXIueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvTW9i
aWxlTWluaUJyb3dzZXIueGNzY2hlbWUKQEAgLTMxLDkgKzMxLDkgQEAKICAgICAgIDwvVGVzdGFi
bGVzPgogICAgPC9UZXN0QWN0aW9uPgogICAgPExhdW5jaEFjdGlvbgotICAgICAgYnVpbGRDb25m
aWd1cmF0aW9uID0gIkRlYnVnIgotICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAi
WGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxMREIiCi0gICAgICBzZWxlY3RlZExh
dW5jaGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIuTExE
QiIKKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNlIgorICAgICAgc2VsZWN0ZWRE
ZWJ1Z2dlcklkZW50aWZpZXIgPSAiIgorICAgICAgc2VsZWN0ZWRMYXVuY2hlcklkZW50aWZpZXIg
PSAiWGNvZGUuSURFRm91bmRhdGlvbi5MYXVuY2hlci5Qb3NpeFNwYXduIgogICAgICAgbGF1bmNo
U3R5bGUgPSAiMCIKICAgICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3RvcnkgPSAiTk8iCiAgICAg
ICBpZ25vcmVzUGVyc2lzdGVudFN0YXRlT25MYXVuY2ggPSAiTk8iCg==
</data>
<flag name="commit-queue"
          id="432348"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415364</attachid>
            <date>2020-12-03 16:12:55 -0800</date>
            <delta_ts>2020-12-03 17:53:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201203161254.patch</filename>
            <type>text/plain</type>
            <size>150113</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIwODVlNGQyMjg5NDYxZWQzNGY2ZWY3
NjczNGYyYTBlZjEzNTEzNTkuLjI5Mzg2OTZhNDg2NTRlNGM0ZmVlYTAyOGUyOWVmNDA4MDg0NWU5
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMi0w
MSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGxp
c3Qgb2YgYmxvY2sgcG9ydHMgYWNjb3JkaW5nIGZldGNoIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjQ3
NmMyNDJlMWI1MWIyMzBmZmYyNDFiNDU5ZTIwMzQ5MDQ4ODQ1Li4yMjE3MWQ5MDgxODM4YzhlNGY1
M2Y3NDhkZDBjMGFhMGI4YjI1NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAt
MTItMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0ZWQgbWFudWFsbHkgd2l0aCBNb2JpbGVNaW5pQnJvd3Nlci4K
KworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1l
ZGlhU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFs
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb24pOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAyMC0xMi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IGlmcmFtZSB3aXRoIGBzYW5kYm94PWFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZh
dGlvbmAgY2FuIG5hdmlnYXRlIHRvcCBmcmFtZSB3aGVuIHRoZSB1c2VyIGludGVyYWN0cyB3aXRo
IGFuIGlmcmFtZSBmcm9tIGFub3RoZXIgb3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4NjExODg1N2U2ZTI2
M2ZjYTNiZWExMDc5NjU1OTk4ZTYxNDZmNjcuLjExMTc3NWQ5OWVkOGFjMDM4Yzc1ZTZlYmQ1ZmQ2
NmIwN2Q0MGU2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQxIEBACisyMDIwLTEyLTAzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2hhcmVkL21lZGlhL1Jl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1l
ZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdl
YktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0
YXJ0KToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAg
KFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0dGluZ3MgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6c3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3Jh
bnRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6Y2xvbmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAg
KFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlcXVlc3RUb0VuZCk6CisgICAg
ICAgICogU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgor
ICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6c291cmNlVHlwZUZyb21EZXZpY2VU
eXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZh
aWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90
ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjp3aGVuUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpzZXRBc1JlYWR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFi
bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91
bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0
VG9FbmQpOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjYXB0dXJlRGV2aWNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y29uc3RyYWludHMgY29uc3QpOgorICAgICAgICAqIFNo
YXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZUZyb21DbG9uZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3Vy
Y2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5h
dGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZCk6
CisgICAgICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpz
ZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjplbnN1cmVSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRl
RGlzcGxheUNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwLgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0Ojpzb3VyY2VUeXBlRnJvbURldmljZVR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6fldlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjp3aGVuUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1w
bGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0Rh
dGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRT
aG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0
cmFpbnRzRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6aGFzRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpjYXB0dXJlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjppZGVudGlmaWVyIGNvbnN0KToKKwogMjAyMC0xMi0wMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggdGhlIGlPUyBidWls
ZCBhZnRlciByMjcwMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGQ0ZGFhMmIy
OTFkZTU2MjFkODc5M2JjNmFjMzJjYzdlYzhkMTQyZjIuLjU3OWFhNTNiYzliZDgxMDhkYmZmYmY0
Nzc3NmRlZDE3MDNlNGEzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC03ODgs
NiArNzg4LDcgQEAgU3BlZWNoUmVjb2duaXRpb25FbmFibGVkOgogICAgIFdlYktpdExlZ2FjeToK
ICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViS2l0OgorICAgICAgIlBMQVRGT1JNKElPU19G
QU1JTFlfU0lNVUxBVE9SKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0YTA0MjI3NDg1
NGJhZjQ2NjcxYWEzMDljNzM4NzlhMzU4MTNkMTlkLi4xMmVhNDdjN2ZmN2YwMDYzODExODNjNWQw
NDlkOGIwNWQxNjIyMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzMjcsNiArMTMyNyw3IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKICAgICBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCisgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgKICAgICBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmNwcAppbmRleCBjOTNiNmYzOGJjNjIzOGRhMWRiYTg2OGUyOWUxZTVi
MWU2ZjY2YjZiLi4yZTU2YTkxOGUzOTlmZDcwM2ZlMmZjZDQzZDczMTA5NzJmMzhhZGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTM0LDkgKzM0LDEwIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ss
IFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrKQotewogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKK09wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKQorewogICAgIE9wdGlvbmFsPENh
cHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CiAgICAgYXV0byBkZXZpY2VzID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlv
Q2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOwogICAgIGZvciAoYXV0byBk
ZXZpY2UgOiBkZXZpY2VzKSB7CkBAIC01MSwyNiArNTIsMTkgQEAgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2du
aXRpb24KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBj
YXB0dXJlRGV2aWNlOworfQogCi0gICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7Ci0gICAgICAgIGF1
dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUi
IH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9CitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVy
ZURldmljZSkKK3sKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0
dXJlRGV2aWNlLCB7IH0sIHsgfSk7Cit9CiAKLSAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoKmNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKLSAgICBpZiAoIXJl
c3VsdCkgewotICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJlc3VsdC5lcnJvck1lc3Nh
Z2UgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYgc291cmNlKQoreworICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJh
Y2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkpOworfQog
Ci0gICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3Rh
dGVVcGRhdGVDYWxsYmFjayksIHJlc3VsdC5zb3VyY2UoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBVTlVTRURfUEFSQU0oZGF0YUNhbGxiYWNrKTsK
LSAgICBVTlVTRURfUEFSQU0oc3RhdGVVcGRhdGVDYWxsYmFjayk7CiAjZW5kaWYKLX0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCA3Mzg2
Y2VlZTI3NDA3Y2M2MTA0ZTI5ZWQ3M2RlN2RhMGE0OWY0ZTBhLi4zMjAxYWMyZTMwYmUwOGY1OTI3
NWY0MWRjZmQ0ZWJmNDdiZDhiNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAt
NDIsMTAgKzQyLDE2IEBAIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOwogY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1
bHQ7CiAgICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAg
ICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1l
JiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
Jiwgc2l6ZV90KT47CiAgICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZv
aWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47Ci0gICAgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYpOworCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0
YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIHN0
YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBmaW5kQ2FwdHVyZURldmljZSgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVS
ZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyNlbmRpZgogCiBwcml2
YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwuY3BwCmluZGV4IGJmYzViZTEwMzRiZTNjMTJkMmNhZGVjM2UxMjE5NDNlYWI4OTkz
MjMuLjk4NDI2N2UyYjE5NDkxYzY0YWM1ZWRlYzYzNDNkMDc2ZWI0MTQxYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCkBAIC04OCw2ICs4OCwxMCBAQCB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmCiAgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+
aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAh
PSBkZXNjcmlwdGlvbikgewogICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURh
dGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCBtX3NvdXJjZS5n
ZXQoKSk7CiAgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2Ny
aXB0aW9uKSkgeworICAgICAgICAgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAg
ICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1
dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpXSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAg
ICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0
ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0
IGZvcm1hdCIgfSkpOwpAQCAtOTYsNiArMTAwLDEwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYK
ICAgICAgICAgfQogCiAgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRPdXRwdXRGb3JtYXQoYXVk
aW9EZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAg
ICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBz
ZXQgb3V0cHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAg
ICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBz
ZXQgb3V0cHV0IGZvcm1hdCIgfSkpOwpAQCAtMTEwLDcgKzExOCw3IEBAIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1l
ZGlhVGltZSYKICAgICB9CiAKICAgICBtX2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVzKHRpbWUsIGRh
dGEsIHNhbXBsZUNvdW50KTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1wbGVDb3VudF0g
eworICAgIGF1dG8gbWFpbnRocmVhZEhhbmRsZXIgPSBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cih0aGlzKSwgdGltZSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnRdIHsKICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTIxLDcgKzEyOSwx
MSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmCiAgICAgICAgIH0KIAogICAgICAgICBtX2RhdGFD
YWxsYmFjayh0aW1lLCBkYXRhLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7Ci0gICAg
fSk7CisgICAgfTsKKyAgICBpZiAoIWlzTWFpblRocmVhZCgpKQorICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFdURk1vdmUobWFpbnRocmVhZEhhbmRsZXIpKTsKKyAgICBlbHNlCisgICAgICAgIG1h
aW50aHJlYWRIYW5kbGVyKCk7CiAjZWxzZQogICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEs
IGRlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKaW5kZXggNWJlYjYwNTY0N2Iz
MjllMjY0ZjgzYzI0OWY1N2MyYTIwODFjMmZkNy4uYzBlMTA0OTljOTNmNTFkNDZhN2FmZmQ0MWQ1
MDgxNDA0NzNiNTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTkwLDcgKzkwLDMwIEBAIHZvaWQgU3BlZWNoUmVjb2du
aXplcjo6c3RhcnRJbnRlcm5hbCgpCiAgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CiAg
ICAgfTsKIAotICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RG
TW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSk7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZp
bmRDYXB0dXJlRGV2aWNlKCk7CisgICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7CisgICAgICAgIG1f
ZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1f
Y2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBj
YXB0dXJlIiB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9yZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pIHsKKyAgICAgICAgYXV0byByZWFsdGltZVNvdXJj
ZSA9IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKCpjYXB0dXJlRGV2aWNlKTsK
KyAgICAgICAgaWYgKCFyZWFsdGltZVNvdXJjZSkgeworICAgICAgICAgICAgbV9kZWxlZ2F0ZUNh
bGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVu
dGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5
cGU6OkF1ZGlvQ2FwdHVyZSwgIkZhaWxlZCB0byBjcmVhdGUgcmVhbHRpbWUgc291cmNlIiB9KSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9zb3VyY2UgPSBtYWtl
VW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmll
ciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBt
YWtlUmVmKCpyZWFsdGltZVNvdXJjZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
YXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0
aW1lTWVkaWFTb3VyY2UoKmNhcHR1cmVEZXZpY2UpOworICAgIGlmICghcmVzdWx0KSB7CisgICAg
ICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJy
b3IoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJlc3VsdC5lcnJvck1lc3NhZ2UgfSkp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJj
ZSgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxkR2Vu
ZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCmluZGV4IGU2ZjEzZmVl
ODRhNTMzYWYwZjA0ZTA3NjljMWFlMDk1YmU1YmZmM2YuLjZmMTEyOWM1NDQ1YWRjY2U3NDA1NDFh
OTdkZmYzNjA2YjJjYzBhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTQ1LDYgKzQ1LDExIEBAIHB1YmxpYzoKIAogICAgIE9w
dGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGN1cnJl
bnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9
CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVzaW5nIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFJlZlB0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlPihjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik+OworICAgIHZvaWQgc2V0UmVh
bHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVG
dW5jdGlvbiYmIGZ1bmN0aW9uKSB7IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9u
ID0gV1RGTW92ZShmdW5jdGlvbik7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcmVz
ZXQoKTsKICAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoKTsKQEAgLTUzLDYgKzU4LDEwIEBAIHByaXZh
dGU6CiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllcj4gbV9jbGllbnRJZGVudGlmaWVyOwogICAgIERlbGVnYXRlQ2FsbGJhY2sgbV9kZWxlZ2F0
ZUNhbGxiYWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U+IG1fc291cmNlOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVu
Y3Rpb247CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZjgzYWU1
NmYyM2Y4MWJmOTFjZjYyNTVkNWVlOTc5MGUyYzliMmM3Li4yMzFlODQ0YTJlMTQwM2M4ZWFlYTQ0
ZjM4Y2U1NTgxOGZkMjg4NTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzYyNywxMyArMjM2MjcsNiBAQAogCQkJcGF0aCA9
IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJOTNGNkI4MEUyNTY2
RURFMTAwQTA4NDg4IC8qIGNvY29hICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGls
ZHJlbiA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4NEYgLyogcGFyc2VyICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1NjY0LDcgKzI1NjU3LDYg
QEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4
IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3cr
U3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyog
RE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5
NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApp
bmRleCA4OGUxNTFiMTIyMjRmZWJjYzg5M2I1M2Q2ODVlM2VjMWIwMTBjZDQ1Li44MDJiN2NmMWVl
NDNkMjc5ZDgxNDc3ZmM0NzIwMDA4ZTEwNTY0OTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTUw
LDYgKzUwLDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExIgogICAgICIke1dFQktJVF9ESVJ9L1No
YXJlZC9SZW1vdGVMYXllclRyZWUiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1dlYnNpdGVE
YXRhIgorICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9tZWRpYSIKICAgICAiJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSSIKICAgICAiJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL0MiCkBAIC0xMDMsNiArMTA0LDcgQEAgc2V0KFdlYktp
dF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVn
aW5zIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUiCisgICAgIiR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9TcGVlY2giCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9T
dG9yYWdlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQiCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydCIKQEAgLTE4NSw2ICsxODcs
OSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBTaGFyZWQvUGx1Z2lucy9O
UE9iamVjdE1lc3NhZ2VSZWNlaXZlcgogCisgICAgU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyCisgICAgU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyCisKICAgICBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQogICAgIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZTUx
Y2FlZDIxZTE4NmNmMmExNzNjYjhhMzMzMTJiZTBiMzA0YmIwMC4uNzI2MDU3MzBmMWNjY2Q5ODNl
NDQxMTRhMDc5Mzc0MDg5MDA3MDBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtOTEsNiArOTEsOCBAQCAkKFBST0pFQ1RfRElSKS9TaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0hU
VFBTVXBncmFkZS9IVFRQU1VwZ3JhZGVMaXN0LnR4dAogJChQUk9KRUNUX0RJUikvU2hhcmVkL1Bs
dWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1NoYXJlZC9XZWJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9TaGFyZWQv
bWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9E
SVIpL1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29u
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vz
c2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZTg4YjJjMjFmYTcxN2M3N2QyMzAyY2I1MThi
YTRhZDNlZGUyNTc0YS4uMDVmYjNlZjY1ZWJjZTM4NWEyOTg2MmYxNjQwYTk0MzBkM2YxYTQwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC0xMzEsNiArMTMxLDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2lu
UHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlck1lc3NhZ2VzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCkBA
IC0yMjQsNiArMjI3LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VzUmVwbGkKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCA2ODE0ODU1ZmY5ZDIzYWYwYTc3ZTVmZGE2ZGZkMmZkNTUwOTc2ZjY5Li5mOWM2ZmRkMjNhZTY4
YmRiZWNjNTAyZTUxMGJjODcxMDQ1OGRhNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0xMzgsNiArMTM4LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJU2hhcmVkL0FwcGxl
UGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5IFwKIAlTaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyIFwKIAlTaGFyZWQvV2ViQ29ubmVjdGlvbiBcCisJU2hhcmVk
L21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKKwlTaGFyZWQvbWVkaWEvUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgXAogCVVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5IFwKIAlVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkgXAogCVVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5IFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZWEyNjEyOWQ5NjFjZjM5NzNkNWI1NDZlZWZlMDM1NjRi
ZDBiNWMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMzM4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNs
dWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxp
c3QuaD4KKyNlbHNlCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUF1ZGlvRGF0YS5oPgorI2VuZGlmCisKKyNpZiBV
U0UoQVVESU9fU0VTU0lPTikKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2Vu
ZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIDogcHJpdmF0ZSBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
LCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudAorI2VuZGlmCit7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAg
ICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgbV9jb25uZWN0aW9u
KFdURk1vdmUoY29ubmVjdGlvbikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICwgbV9y
aW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG1ha2VVbmlx
dWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKSkKKyNlbmRpZgorICAgIHsKKyAg
ICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPmFk
ZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5SZWFsdGltZU1lZGlh
U291cmNlKCkKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0b3JhZ2UoKS5p
bnZhbGlkYXRlKCk7CisjZW5kaWYKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxl
T2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMp
OworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0
YXJ0KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1fc291cmNl
LT5zdG9wKCk7CisgICAgfQorCisgICAgdm9pZCByZXF1ZXN0VG9FbmQoKQorICAgIHsKKyAgICAg
ICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7CisgICAgfQorCisgICAgT3B0aW9uYWw8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0Vycm9yPiBhcHBs
eUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRz
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKGNvbnN0
cmFpbnRzKTsKKyAgICB9CisKKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3NvdXJj
ZS0+c2V0dGluZ3MoKTsKKyAgICB9CisKKyAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZT4gY2xvbmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc291cmNlLT5jbG9uZSgpOwor
ICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
JiBzdG9yYWdlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOworICAgIH0KKyNlbmRpZgor
Citwcml2YXRlOgorICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsCisgICAgeworICAgICAg
ICBpZiAobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsKKyAgICAgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJl
bW90ZUNhcHR1cmVGYWlsZWQobV9pZGVudGlmaWVyKSwgMCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZp
ZXIpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBN
ZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0Rh
dGEsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBz
aXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAg
QVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFdlYkNvcmU6
OlBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAgICAg
ICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwor
CisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRl
KCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRlKG1fZGVzY3JpcHRpb24u
c3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAgICAgIH0KKworICAg
ICAgICBBU1NFUlQoaXM8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsK
KyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkNvcmU6OldlYkF1ZGlvQnVm
ZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1
ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5k
RnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRG
cmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFi
bGUobV9pZGVudGlmaWVyLCB0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJh
bWUpLCAwKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKKyAgICAgICAgVU5V
U0VEX1BBUkFNKGF1ZGlvRGF0YSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7
CisgICAgICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKyAgICB9CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKworICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVt
b3J5KiBzdG9yYWdlKSBmaW5hbAorICAgIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUg
aGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0
ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworI2lm
IE9TKERBUldJTikgfHwgT1MoV0lORE9XUykKKyAgICAgICAgdWludDY0X3QgZGF0YVNpemUgPSBo
YW5kbGUuc2l6ZSgpOworI2Vsc2UKKyAgICAgICAgdWludDY0X3QgZGF0YVNpemUgPSAwOworI2Vu
ZGlmCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OlNldFN0b3JhZ2UobV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgIGRhdGFTaXplIH0sIG1fZGVzY3JpcHRpb24s
IG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdm9pZCBhdWRp
b1VuaXRXaWxsU3RhcnQoKSBmaW5hbAorICAgIHsKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAg
ICAgICAgYXV0byBidWZmZXJTaXplID0gV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNz
aW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTA7CisgICAgICAgIGlmIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS5wcmVmZXJyZWRCdWZmZXJTaXplKCkgPiBidWZmZXJTaXplKQor
ICAgICAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpQ
bGF5QW5kUmVjb3JkLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOworI2Vu
ZGlmCisgICAgfQorCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
bV9pZGVudGlmaWVyOworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBtX3Nv
dXJjZTsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgaW50NjRf
dCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2Vi
Q29yZTo6Q0FSaW5nQnVmZmVyIG1fcmluZ0J1ZmZlcjsKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CisjZW5kaWYKK307CisKK1JlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9
CisKK1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cigqdGhpcyk7Cit9CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorCit2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JUQ0NELCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkKK3sKKyAgICBtX3NhbmRib3hF
eHRlbnNpb25Gb3JUQ0NEID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJv
eEhhbmRsZUZvclRDQ0QpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpCisg
ICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3Ig
dGNjZCIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+Y29u
c3VtZSgpOworCisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JNaWNyb3Bob25lKSk7Cisg
ICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKQorICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIG1pY3JvcGhvbmUiKTsK
KyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPmNvbnN1
bWUoKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJv
eEV4dGVuc2lvbnMoKQoreworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKSB7Cisg
ICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPnJldm9rZSgpOworICAgICAgICBtX3Nh
bmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobV9zYW5k
Ym94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkgeworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25G
b3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWlj
cm9waG9uZSA9IG51bGxwdHI7CisgICAgfQorfQorCisjZW5kaWYKKwordm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1
cmVEZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJiBjb25zdHJhaW50cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwg
U3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3Ig
c291cmNlT3JFcnJvcjsKKyAgICBzd2l0Y2ggKGNhcHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAg
ICAgICBzb3VyY2VPckVycm9yID0gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZShjYXB0dXJlRGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpD
YW1lcmE6CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCAmY29uc3RyYWlu
dHMpOworICAgICAgICBpZiAoc291cmNlT3JFcnJvcikKKyAgICAgICAgICAgIHNvdXJjZU9yRXJy
b3IuY2FwdHVyZVNvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG1fb3JpZW50YXRpb25Ob3RpZmll
cik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6V2luZG93OgorICAgICAgICBzb3VyY2VPckVycm9yID0gV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3Jl
YXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgJmNvbnN0cmFpbnRzKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpTcGVha2VyOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
VW5rbm93bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIGJvb2wgc3VjY2VlZGVkID0gISFzb3VyY2VPckVycm9yOworICAgIFN0cmlu
ZyBpbnZhbGlkQ29uc3RyYWludHM7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIHNldHRpbmdzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMgY2FwYWJpbGl0aWVzOworICAgIGlmIChzdWNjZWVkZWQpIHsKKyAgICAgICAgYXV0byBz
b3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJjZSgpOworICAgICAgICBzZXR0aW5ncyA9IHNvdXJj
ZS0+c2V0dGluZ3MoKTsKKyAgICAgICAgY2FwYWJpbGl0aWVzID0gc291cmNlLT5jYXBhYmlsaXRp
ZXMoKTsKKyAgICAgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwor
ICAgICAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8UmVhbHRpbWVNZWRp
YVNvdXJjZT4oaWRlbnRpZmllciwgc291cmNlT3JFcnJvci5zb3VyY2UoKSwgbWFrZVJlZigqbWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSkpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW52YWxpZENv
bnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CisKKyAgICBj
b21wbGV0aW9uSGFuZGxlcihzdWNjZWVkZWQsIGludmFsaWRDb25zdHJhaW50cywgV1RGTW92ZShz
ZXR0aW5ncyksIFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1
dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5z
dGFydCgpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNl
LT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKK30KKwordWludDY0
X3QgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklE
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6Y2xvbmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgb3JpZ2luYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBuZXdJZGVudGlmaWVyKQoreworICAgIC8vIFRPRE86IGltcGxlbWVudCB0aGlzLgorICAg
IGF1dG8gb3JpZ2luYWxTb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KG9yaWdpbmFsSWRlbnRpZmllcik7
CisgICAgaWYgKCFvcmlnaW5hbFNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJU
KCFtX3NvdXJjZXMuY29udGFpbnMobmV3SWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQo
bmV3SWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlPihuZXdJZGVudGlm
aWVyLCBvcmlnaW5hbFNvdXJjZS0+Y2xvbmUoKSwgbWFrZVJlZigqbWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSkpKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U2hv
dWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgaWYgKGF1dG8gc291
cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7
Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHMo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCit7CisgICAgYXV0byBzb3Vy
Y2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpOworICAgIGlmICghc291cmNlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cyhj
b25zdHJhaW50cyk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVk
KGlkZW50aWZpZXIsIHNvdXJjZS0+c2V0dGluZ3MoKSkpOworICAgIGVsc2UKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFwcGx5Q29uc3Ry
YWludHNGYWlsZWQoaWRlbnRpZmllciwgcmVzdWx0LT5iYWRDb25zdHJhaW50LCByZXN1bHQtPm1l
c3NhZ2UpKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVxdWVzdFRv
RW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAg
ICAgc291cmNlLT5yZXF1ZXN0VG9FbmQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGQwNDEzYzVkZTg0ZmIzNDA2N2M1
MDcxMTdkZWYwNDNmMDFkZjU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDg3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgor
I2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL09yaWVudGF0
aW9uTm90aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CitjbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3M7CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOworc3Ry
dWN0IE1lZGlhQ29uc3RyYWludHM7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgflJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKCk7CisKK3ByaXZhdGU6CisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lk
IGFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRl
ZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+
JiYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIpOworICAgIHZvaWQgY2xvbmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgb3JpZ2luYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBuZXdJZGVudGlmaWVyKTsKKyAgICB2b2lkIHNldFNob3VsZEFwcGx5
Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGJvb2wgc2hv
dWxkQXBwbHlSb3RhdGlvbik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJik7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIpOworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgdm9pZCBn
cmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9pZCByZXZva2VTYW5kYm94RXh0ZW5zaW9ucygp
OworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwor
CisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2Vu
ZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgY2xhc3MgUmVhbHRpbWVNZWRp
YVNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKKyAgICBIYXNo
TWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fc291cmNlczsKKyAgICBXZWJDb3JlOjpPcmllbnRh
dGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllciB7IDAgfTsKKworI2lmIEVOQUJMRShT
QU5EQk9YX0VYVEVOU0lPTlMpCisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJv
eEV4dGVuc2lvbkZvclRDQ0Q7CisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJv
eEV4dGVuc2lvbkZvck1pY3JvcGhvbmU7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1Jl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDllZGJiOTBkZWMzZmM3OTJlOWUyYTUyYTBmYzNjNDA1N2Y0MTI2NAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBBZGRTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBp
bnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBz
ZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmls
aXRpZXMpIEFzeW5jCisgICAgUmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgU3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisgICAgU3RvcChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKworICAgIENsb25lU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG9yaWdpbmFsSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbmV3SWRlbnRpZmllcikKKyAg
ICBTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKKyAgICBBcHBseUNv
bnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKQorICAgIFJl
cXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQorCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICBHcmFudFNhbmRib3hF
eHRlbnNpb25zKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNp
b25IYW5kbGVGb3JUQ0NELCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlRm9yTWljcm9waG9uZSkKKyAgICBSZXZva2VTYW5kYm94RXh0ZW5zaW9u
cygpCisjZW5kaWYKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY3
ZGQ3MzU5ODYzMjIyZTU5ZjI1OWUxMTU4MmY0N2ZhNGU4OTA4NAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CkBAIC0wLDAgKzEsMzQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5o
IgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgaW5saW5lIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZUZyb21EZXZpY2VUeXBlKFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSkKK3sKKyAgICBzd2l0Y2gg
KGRldmljZVR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbzsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYToKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OlZpZGVvOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
U3BlYWtlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVu
a25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4g
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKK30KKworUmVmPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0
ZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyYgY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIG1hbmFnZXIs
IGNhcHR1cmVEZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hT
YWx0KSkpOworfQorCisvKiBSZW1vdGVyZWFsdGltZW1lZGlhc291cmNlIGluIHNwZWVjaCByZWNv
Z25pdGlvbgorIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZyb21EZXZp
Y2VUeXBlKGRldmljZVR5cGUpLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3Ry
aW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9KQorKi8KK1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVE
ZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgT3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXI+IG9yaWdpbmFsSWRlbnRpZmllcikKKyAgICA6IFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZyb21EZXZpY2VUeXBlKGNhcHR1cmVEZXZp
Y2UudHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJ
bnQ2NCgpKSwgV1RGTW92ZShoYXNoU2FsdCkpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmll
cikKKyAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyAgICAsIG1fY2FwdHVy
ZURldmljZShjYXB0dXJlRGV2aWNlKQorICAgICwgbV9jb25zdHJhaW50cyhjb25zdHJhaW50cykK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
bnVsbHB0cikpKQorI2VuZGlmCit7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHN3
aXRjaCAobV9jYXB0dXJlRGV2aWNlLnR5cGUoKSkgeworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNl
dEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAgICAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCku
c2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBjYXNl
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKCFvcmlnaW5hbElk
ZW50aWZpZXIpIHsKKyAgICAgICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2VGcm9tQ2xvbmUoKnRo
aXMsICpvcmlnaW5hbElkZW50aWZpZXIpOworfQorCitSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
Ojp+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBzd2l0Y2ggKG1fY2FwdHVyZURldmljZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAgICAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1
cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBj
YXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVh
a2VyOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93
bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBp
ZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnJlbW92ZVNvdXJjZSgqdGhpcyk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkK
K3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6
OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdGFydCB7IG1faWRlbnRpZmllciB9KTsKK30K
Kwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7
CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RvcCB7IG1faWRlbnRpZmllciB9KTsKK30KKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNl
dFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29y
ZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMpCit7CisgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworCisgICAgUmVm
UHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5OworICAgIGlmICghaGFuZGxlLmlzTnVsbCgpKSB7Cisg
ICAgICAgIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQ
cm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0
ZSBzaGFyZWQgbWVtb3J5IGZvciByZW1vdGUgc291cmNlIik7CisgICAgfQorCisgICAgYXV0byYg
c3RvcmFnZSA9IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVm
ZmVyLT5zdG9yYWdlKCkpOworICAgIGlmICghbWVtb3J5KSB7CisgICAgICAgIG1fcmluZ0J1ZmZl
ci0+ZGVhbGxvY2F0ZSgpOworICAgICAgICBzdG9yYWdlLnNldFJlYWRPbmx5KGZhbHNlKTsKKyAg
ICAgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAg
ICBzdG9yYWdlLnNldFJlYWRPbmx5KHRydWUpOworICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUo
ZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8
V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OworfQorCisjZW5kaWYKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVD
YXB0dXJlRmFpbGVkKCkKK3sKKyAgICBjYXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3RvcHBlZCgpCit7CisgICAgc3RvcCgp
OworfQorCisvLyBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlCit2b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OndoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+
JiYgY2FsbGJhY2spCit7CisgICAgaWYgKG1faXNSZWFkeSkKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKFdURk1vdmUobV9lcnJvck1lc3NhZ2UpKTsKKyAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0QXNSZWFk
eSgpCit7CisgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAg
ICAgbV9jYWxsYmFjayh7IH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQoreworICAgIG1faXNSZWFkeSA9IHRydWU7
CisgICAgbV9lcnJvck1lc3NhZ2UgPSBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7CisgICAgaWYgKG1f
Y2FsbGJhY2spCisgICAgICAgIG1fY2FsbGJhY2sobV9lcnJvck1lc3NhZ2UpOworfQorCitSZWY8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2xvbmUoKQoreworICAgIHN3aXRjaCAodHlwZSgpKSB7CisgICAgY2FzZSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbzoKKyAgICAgICAgcmV0dXJuIGNsb25lVmlkZW9Tb3VyY2UoKTsK
KyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0K
K30KKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2UoKQoreworICAgIGlmICghbV9tYW5hZ2VyKSB7Cisg
ICAgICAgIExPR19FUlJPUigiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1Nv
dXJjZSBtYW5hZ2VyIGRvZXMgbm90IGV4aXN0Iik7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAg
ICB9CisKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBhdXRvIGxhYmVsID0gbV9zZXR0aW5ncy5sYWJl
bCgpLnN0cmluZygpOworICAgIGF1dG8gY2xvbmVTb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UoaWRlbnRpZmllciwgKm1fbWFuYWdlciwgbV9jYXB0dXJlRGV2
aWNlLCBtX2NvbnN0cmFpbnRzLCBTdHJpbmcgeyBsYWJlbCB9LCBkZXZpY2VJREhhc2hTYWx0KCks
IG1faWRlbnRpZmllcikpOworICAgIGNsb25lU291cmNlLT5zZXRTZXR0aW5ncyhXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgeyBtX3NldHRpbmdzIH0pOworICAgIHJldHVybiBj
bG9uZVNvdXJjZTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRDYXBh
YmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFi
aWxpdGllcykKK3sKKyAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsK
K30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTZXR0aW5ncyhXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKK3sKKyAgICBhdXRvIGNo
YW5nZWQgPSBtX3NldHRpbmdzLmRpZmZlcmVuY2Uoc2V0dGluZ3MpOworICAgIG1fc2V0dGluZ3Mg
PSBXVEZNb3ZlKHNldHRpbmdzKTsKKyAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2VydmVy
cyhjaGFuZ2VkKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVB
dWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJh
bWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBpZiAoIW1fYnVmZmVyKSB7CisgICAgICAgIExPR19FUlJPUigiQnVm
ZmVyIGZvciByZW1vdGUgc291cmNlIGlzIG51bGwiKTsKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9idWZmZXItPnNldFNhbXBsZUNvdW50
KG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5k
cyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChtX2J1ZmZl
ci0+bGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgYXVkaW9T
YW1wbGVzQXZhaWxhYmxlKHRpbWUsICptX2J1ZmZlciwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odGltZSk7CisgICAgVU5VU0VEX1BBUkFN
KG51bWJlck9mRnJhbWVzKTsKKyAgICBVTlVTRURfUEFSQU0oc3RhcnRGcmFtZSk7CisgICAgVU5V
U0VEX1BBUkFNKGVuZEZyYW1lKTsKKyNlbmRpZgorfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFi
bGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCit7CisgICAgQVNT
RVJUKHR5cGUoKSA9PSBUeXBlOjpWaWRlbyk7CisKKyAgICBzZXRJbnRyaW5zaWNTaXplKHJlbW90
ZVNhbXBsZS5zaXplKCkpOworCisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVv
Rm9ybWF0KCkpCisgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBXZWJDb3JlOjpJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOwor
CisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzYW1wbGVSZWYg
PSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUp
OworICAgIGlmICghc2FtcGxlUmVmKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9T
YW1wbGVBdmFpbGFibGUoKnNhbXBsZVJlZik7Cit9CisKKyNlbmRpZgorCitib29sIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBs
eVJvdGF0aW9uKQoreworICAgIGlmIChtX21hbmFnZXIpIHsKKyAgICAgICAgbV9tYW5hZ2VyLT5z
ZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U2V0U2hvdWxkQXBwbHlS
b3RhdGlvbihtX2lkZW50aWZpZXIsIHNob3VsZEFwcGx5Um90YXRpb24pKTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgLy8gRklYTUU6IFVzZSBzZW5kQXN5bmNXaXRoUmVwbHkuCisg
ICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
QXBwbHlDb25zdHJhaW50cyB7IG1faWRlbnRpZmllciwgY29uc3RyYWludHMgfSk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChj
b25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQorewor
ICAgIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyhzZXR0
aW5ncykpOworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2Fs
bGJhY2tzLnRha2VGaXJzdCgpOworICAgIGNhbGxiYWNrKHsgfSk7Cit9CisKK3ZvaWQgUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWls
ZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCit7CisgICAgYXV0byBjYWxsYmFj
ayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7CisgICAg
Y2FsbGJhY2soQXBwbHlDb25zdHJhaW50c0Vycm9yIHsgV1RGTW92ZShmYWlsZWRDb25zdHJhaW50
KSwgV1RGTW92ZShlcnJvck1lc3NhZ2UpIH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN0b3BCZWluZ09ic2VydmVkKCkKK3sKKyAgICBtX21hbmFnZXItPnNlbmQoTWVz
c2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZXF1ZXN0VG9FbmQgeyBtX2lkZW50
aWZpZXIgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRv
RW5kKE9ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNh
c2UgVHlwZTo6QXVkaW86CisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0Vu
ZChvYnNlcnZlcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZTo6VmlkZW86CisgICAg
ICAgIHN0b3BCZWluZ09ic2VydmVkKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZTo6
Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTJmMTQ5
YzdhZjIxNDY0NThlYjBjMjY1MjAzZjkyZDgyYjUzMDk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0w
LDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworY2xhc3MgSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworCitjbGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
IDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCk7CisgICAgflJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBj
YXB0dXJlRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9jYXB0dXJlRGV2aWNlOyB9OworICAgIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1
cm4gbV9jb25zdHJhaW50czsgfTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0
U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgor
ICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsK
KyAgICB2b2lkIHJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0
b3BwZWQoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxl
QXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOyAvLyBBZGRlZAorI2VuZGlm
CisKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFp
bGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSk7Cisg
ICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBzZXRBc1Jl
YWR5KCk7CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYmKTsKKyAgICB2b2lkIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKKyAgICAKK3ByaXZhdGU6CisgICAgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBPcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllcj4gb3JpZ2luYWxJZGVudGlmaWVyID0gV1RGOjpudWxsb3B0KTsKKyAgICBSZWY8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmVWaWRlb1NvdXJjZSgpOworICAgIAor
ICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2b2lkIHN0YXJ0UHJvZHVj
aW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAg
ICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmls
aXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIGNvbnN0IFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7IHJldHVy
biBtX3NldHRpbmdzOyB9CisgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wpIGZp
bmFsOworICAgIHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJikgZmluYWw7CisgICAgdm9pZCBz
dG9wQmVpbmdPYnNlcnZlZCgpIGZpbmFsOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJikg
ZmluYWw7CisgICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcp
PiYmKSBmaW5hbDsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmUoKSBmaW5hbDsK
KworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKKyAgICBXZWFrUHRyPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX21hbmFn
ZXI7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFi
aWxpdGllczsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0
aW5nczsKKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fY2FwdHVyZURldmljZTsKKyAgICBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CisKKyAgICBEZXF1ZTxBcHBs
eUNvbnN0cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrczsK
KyAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07CisgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdl
OworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbjsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyNlbmRpZgorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTc5ZGFiYjM0ZTU1M2Y3Zjc1NmRkZDYxYjJjNTBkYTY0MTc4N2ZjZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDE1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpD
b25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25u
ZWN0aW9uKSkKK3sKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
YWRkU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRv
IGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9zb3VyY2Vz
LmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1h
a2VXZWFrUHRyKHNvdXJjZSkpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykgJiYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAoIW1faGFzR3JhbnRlZFNhbmRib3hFeHRl
bnNpb25zKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JUQ0NE
OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJj
b20uYXBwbGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCksIGhhbmRsZUZv
clRDQ0QpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yTWljcm9w
aG9uZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4
dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9zLCBoYW5kbGVGb3JNaWNyb3Bo
b25lKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OkdyYW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9yVENDRCwgaGFuZGxlRm9yTWljcm9waG9u
ZSkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IHRydWU7CisgICAg
fQorI2VuZGlmCisKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UoaWRlbnRpZmllciwgc291cmNlLmNhcHR1cmVEZXZp
Y2UoKSwgc291cmNlLmRldmljZUlESGFzaFNhbHQoKSwgc291cmNlLmNvbnN0cmFpbnRzKCkpLCBb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgaWRlbnRpZmllcl0oYm9vbCBzdWNj
ZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFi
aWxpdGllcykgeworICAgICAgICBhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmll
cik7CisgICAgICAgIGlmICghc291cmNlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGlmICghc3VjY2VlZGVkKSB7CisgICAgICAgICAgICBzb3VyY2UtPmRpZEZhaWwoV1RGTW92ZShl
cnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IHNvdXJjZS0+c2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwor
ICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICAgICAg
c291cmNlLT5zZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKKyAgICAgICAg
c291cmNlLT5zZXRBc1JlYWR5KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZUZyb21DbG9uZShSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlJiBzb3VyY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG9y
aWdpbmFsSWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKG9yaWdp
bmFsSWRlbnRpZmllcikpOworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVy
KCk7CisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1f
c291cmNlcy5hZGQoaWRlbnRpZmllciwgbWFrZVdlYWtQdHIoc291cmNlKSk7CisKKyAgICAvLyBU
T0RPOiBhZGQgdGhpcyB0byBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyAgICBzZW5kKE1l
c3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Q2xvbmVTb3VyY2UgeyBvcmlnaW5h
bElkZW50aWZpZXIsIGlkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBz
b3VyY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAg
ICBBU1NFUlQobV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAgICBtX3Nv
dXJjZXMucmVtb3ZlKGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9O
UykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAobV9zb3VyY2VzLmlzRW1wdHko
KSAmJiBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tlU2FuZGJveEV4dGVuc2lvbnMo
KSk7CisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gZmFsc2U7CisgICAg
fQorI2VuZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVtb3ZlU291cmNlKGlkZW50aWZpZXIpKTsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
Cit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorewor
ICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVy
T2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1l
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3Qg
ZW5kRnJhbWUpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlm
aWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwg
bnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRv
IHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVt
b3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2Vz
LmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVTb3VyY2VTdG9wcGVkKCk7
Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0
aW9uLnB0cigpOworfQorCit1aW50NjRfdCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiAwOwor
fQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFp
bnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGlu
Z3MpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKHNldHRpbmdzKTsKK30K
Kwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50
c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBtZXNzYWdlKQoreworICAgIGlm
IChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJj
ZS0+YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZN
b3ZlKG1lc3NhZ2UpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTU5YzhkMDk2MjViMmZjNjkyNGI3
ZWM1OTM3MDgxZDJkZmQ2NWJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDg2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRl
ci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRp
YVRpbWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7Citj
bGFzcyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M7CisKKyNpZiBQTEFURk9STShDT0NPQSkK
K2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKKyNlbmRpZgorfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTsKKworY2xhc3MgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIHZvaWQgYWRkU291cmNlKFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UmKTsKKyAgICB2b2lkIGFkZFNvdXJjZUZyb21DbG9uZShSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsK
KworcHJpdmF0ZToKKyAgICAvLyBNZXNzYWdlcworICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVz
QXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBX
VEY6Ok1lZGlhVGltZSYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZVNv
dXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAg
IHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
Jik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBTdHJpbmcmJiwgU3RyaW5nJiYpOworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIHZvaWQgc2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5k
aWYKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAv
LyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgV2Vha1B0cjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworICAg
IGJvb2wgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYjA1MjFhZDk5MTU0OGU3ZDVmMGM5Njc4
ODdiZTU1MDhkOGNlOTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
ZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDQwIEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3Rv
cmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMpCisjZW5kaWYKKworICAgIFJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUgdGltZSwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVu
ZEZyYW1lKQorICAgIFJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBSZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisKKyAgICBBcHBs
eUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0
aW5ncykKKyAgICBBcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBmYWlsZWRDb25zdHJhaW50LCBTdHJp
bmcgbWVzc2FnZSkKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDA5MTdmMDFiZTFjOWY4
Y2FhMmFiZjdmMGY4OTBmODk1YTNmMmVmODYuLmE2NzU0NTBjZTE4NzZkMjAwMDhkYTVjM2IzYTEw
MDMzYjYyYmJiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjc3LDYgKzI3NywxMCBAQCBTaGFyZWQvUGx1
Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAgQG5vLXVuaWZ5CiAKIFNoYXJlZC9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKIAorU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcAorU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCitTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisK
IFVJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwCiBVSVByb2Nlc3MvQmFja2dyb3Vu
ZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcAogVUlQcm9jZXNzL0RldmljZUlkSGFzaFNh
bHRTdG9yYWdlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDRlYThiNzgxZDIwYTgxYTA4
ZTQ0YjQ0ZGJhMGI1OGYyMWJkNmY5NzMuLjY5Y2U1MWE3Y2MxNzMxMTc3YmJkMjMyYjY2ZjRhZTEz
Y2RjN2NkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU2NiwxMCArNTY2LDEwIEBAIFdl
YlByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yQ29jb2EubW0KIAog
V2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAotV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5t
bQogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KK1dlYlByb2Nlc3MvY29jb2Ev
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50
L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApp
bmRleCA5ZjYwMGQzZjVjZGM2YzMyYzU0OGEwYTA5YWIwMmJjMTQ1MzQ1MjQ0Li5kZDM4NzhhZDA0
OWFkYWEwZmNmNmFjNWIyMjM0OTU1MjZmYzM3YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC05MSw2ICs5MSwxNCBA
QCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgogCiAgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0
ZSk7CiAgICAgICAgIH0pOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAgICAgaWYg
KG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKSB7CisgICAgICAgICAgICBtX3Jl
Y29nbml6ZXItPnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpc10oYXV0
byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fcmVhbHRpbWVNZWRpYVNvdXJj
ZUNyZWF0ZUZ1bmN0aW9uKGRldmljZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorI2Vu
ZGlmCiAgICAgfQogCiAgICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
CmluZGV4IGE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcuLjdiMDZmZjEz
NzU5ZTRkODI3NzQ2YmQzOGJkNWQ4MjQ2ZTdiM2E0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtNTcsNiArNTcsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgYWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBpbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwogCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgICB2b2lkIHNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
bihXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVu
Y3Rpb24mJiBmdW5jdGlvbikgeyBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9
IFdURk1vdmUoZnVuY3Rpb24pOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVl
c3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qm
KTsKICAgICB2b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CkBAIC03NSw2ICs3OSwxMCBAQCBwcml2YXRlOgogICAg
IEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+
IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Bl
cm1pc3Npb25DaGVja2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pemVyPiBtX3JlY29nbml6ZXI7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
biBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcAppbmRleCBlN2Q5Y2RmZTU1MzVjMjdjNDUwNGYwMTBhNmVkZjhlNGM1ZTNjYTZhLi4w
NTQ4MWZiZmMyMTg1NDRhNTk2ZjIwMDgxZTlmYTg1ZTI5MDc1OTFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDkgQEAKICNpbmNs
dWRlICJQbHVnaW5JbmZvU3RvcmUuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5o
IgogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIK
ICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
VGV4dENoZWNrZXIuaCIKQEAgLTE3MDIsOCArMTcwNSw4IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlBy
b2Nlc3NQcm94eTo6c2Vzc2lvbklEKCkgY29uc3QKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNy
ZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRp
ZmllciBpZGVudGlmaWVyKQogewotICAgIGF1dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBt
X3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsKLSAg
ICBBU1NFUlQoc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAgQVNTRVJU
KCFtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAg
ICBhdXRvJiBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBXZWJQ
YWdlUHJveHkqIHRhcmdldFBhZ2UgPSBudWxscHRyOwogICAgIGZvciAoYXV0byogcGFnZSA6IHBh
Z2VzKCkpIHsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+d2ViUGFnZUlEKCkgPT0gaWRlbnRp
ZmllcikgewpAQCAtMTcxNSw3ICsxNzE4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0
ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKICAg
ICBpZiAoIXRhcmdldFBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNwZWVjaFJlY29nbml0
aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1h
a2VXZWFrUHRyKHRhcmdldFBhZ2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFu
ZGxlcikgbXV0YWJsZSB7CisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVl
PFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlm
aWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBh
dXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdl
KSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25EZWNpc2lvbjo6RGVueSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzIzLDcgKzE3
MjYsMjEgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKIAogICAgICAgICB3ZWFrUGFnZS0+cmVx
dWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKICAgICB9KTsKLSAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIs
ICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUpOworICAgIGFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyKTsKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXItPnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0
cih0YXJnZXRQYWdlKV0oYXV0byYgZGV2aWNlKSAtPiBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICAgICAgaWYgKCF3ZWFrUGFnZSB8fCB3ZWFrUGFnZS0+cHJlZmVyZW5j
ZXMoKS5jYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgICAgICBhdXRvJiBzb3VyY2VNYW5hZ2VyID0gZW5zdXJlUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyBjb25zdHJhaW50czsKKyAgICAgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmNyZWF0ZShzb3VyY2VNYW5hZ2VyLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBTdHJpbmcg
eyBkZXZpY2UubGFiZWwoKSB9LCB7IH0pOworICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xNzMzLDYgKzE3NTAsMjAgQEAg
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcklkZW4KICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFw
LnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9yZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSkpOworICAgICAgICBhZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksICptX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKTsKKyAgICB9CisK
KyAgICByZXR1cm4gKm1fcmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisKKyNl
bmRpZgorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0
YXJ0QmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVsbHNjcmVlbklucHV0KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzEwYjM5NDhkNzc2NzYzNzE0ZDE2NDc5
YjU5MzYyODJhNjk3MzNkYS4uZTExYzdiMThiOGU4ODZlZDMyOTcyMGRkMGY3NTRkODg1ZjRiODY4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEwMyw2
ICsxMDMsMTAgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZTsKIHN0cnVjdCBXZWJzaXRlRGF0YTsKIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCitjbGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRp
ZgorCiBlbnVtIEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBS
ZWZDb3VudGVyPEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQ
cm9jZXNzQ291bnRlcjsKIHR5cGVkZWYgRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tl
biBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuOwpAQCAtNTA1LDYgKzUwOSw5IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnRpZmllcik7CiAgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiAKICAgICB2b2lkIHN5
c3RlbUJlZXAoKTsKICAgICAKQEAgLTY0Myw2ICs2NTAsOSBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNwZWVjaFJlY29nbml0aW9u
U2VydmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVy
Pj47CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1hcDsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9yZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MDM3MDQw
NGU0OWE3OGQ4YWJlNzMyMmE3OGVjOTJmYzFjMGJhMGEyLi5lZmJjMGNiYTg5YzI2M2E3ZjhmMzUx
NTE1OGYwY2Y4ZjYzNjY2OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MDQsNiArMTQwNCwxNiBAQAogCQk5MTk3OTQwODIzREJD
NENCMDAyNTc4OTIgLyogV2ViUGFnZUluc3BlY3RvckFnZW50QmFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE5Nzk0MDcyM0RCQzRDQTAwMjU3ODky
IC8qIFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaCAqLzsgfTsKIAkJOTE5Nzk0MEEyM0RCQzRF
MDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE5Nzk0MDkyM0RCQzRFMDAwMjU3ODkyIC8qIEFQSUlu
c3BlY3RvckNsaWVudC5oICovOyB9OwogCQk5MTk3OTQwQzIzREJDNTAzMDAyNTc4OTIgLyogX1dL
SW5zcGVjdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkxOTc5NDBCMjNEQkM1MDMwMDI1Nzg5MiAvKiBfV0tJbnNwZWN0b3JEZWxlZ2F0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkz
MDAzRUZGMjU3OENENjEwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0VGODI1NzhD
NEUzMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OworCQk5MzAw
M0YwMDI1NzhDRDY1MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRUZB
MjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICov
OyB9OworCQk5MzAwM0YwMTI1NzhDRDY3MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MDAzRUZDMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICov
OyB9OworCQk5MzAwM0YwNDI1NzhEN0JCMDBGMkEzREEgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMwMDNGMDIyNTc4RDdBNzAwRjJBM0RBIC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aCAqLzsgfTsKKwkJOTMwMDNGMEUyNTc4REEzODAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzMDAzRjBDMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkzMDAzRjBGMjU3OERCMDYw
MEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwNzI1
NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OworCQk5MzAwM0YxMDI1NzhEQjA4MDBGMkEzREEgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwMDNGMDkyNTc4RDk4QzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJOTMwMDNGMTEyNTc4REIwQTAwRjJBM0RB
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwNjI1NzhEOThCMDBG
MkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsg
fTsKKwkJOTMwMDNGMTIyNTc4REIwQzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRjBCMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTkzMDAz
RjEzMjU3OERCMTIwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMwMDNGMEQyNTc4RDlFRTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTkzMjFENTg2MUEzOEVFM0MwMDgw
NTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMjFENTg1MUEzOEVFM0MwMDgwNTJCRSAvKiBX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJOTMyMUQ1OEExQTM4RjE5NjAw
ODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMjFENTg5MUEzOEYxOTYwMDgwNTJCRSAvKiBXS0lt
bWVkaWF0ZUFjdGlvblR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTMyMzYxMUUxQjAxNURBODAwRkE5MjMyIC8qIF9XS092ZXJsYXlTY3Jv
bGxiYXJTdHlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMyMzYxMUQxQjAxNURBODAwRkE5MjMyIC8qIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNTY2
LDggKzM1NzYsNiBAQAogCQk0MTY4NEM0RDI0NjQzQkZBMDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxNjg0QzRFMjQ2NDNDODEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTY4NEM0RjI0NjQz
RDNGMDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTY4NEM1MDI0NjQ1MEZEMDAxQ0U4RUQg
LyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNDE2ODRDNTEyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZD
RDc0NTIzRkIxNzhCMDA2NjFEOTkgLyogTUROU1JlZ2lzdGVySWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmg7IHBhdGgg
PSBOZXR3b3JrL3dlYnJ0Yy9NRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNkY4MDg2MjQ1QjM5NzQwMEI2OEYwMiAvKiBMaWJXZWJSVENOZXR3
b3JrLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IExpYldlYlJUQ05ldHdvcmsu
bWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZGODA4OTI0NUM3RkY1MDBC
NjhGMDIgLyogTGliV2ViUlRDTmV0d29yay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBMaWJXZWJSVENOZXR3b3JrLmNwcDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDU2MCw2
ICs0NTY4LDIyIEBACiAJCTkxOTc5NDA3MjNEQkM0Q0EwMDI1Nzg5MiAvKiBXZWJQYWdlSW5zcGVj
dG9yQWdlbnRCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2VJ
bnNwZWN0b3JBZ2VudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE5Nzk0
MDkyM0RCQzRFMDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBUElJbnNwZWN0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTE5Nzk0MEIyM0RCQzUwMzAwMjU3ODkyIC8qIF9XS0luc3BlY3RvckRl
bGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0luc3BlY3RvckRl
bGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUY3MjU3OEM0RTMw
MEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUY4MjU3OEM0RTMw
MEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRjkyNTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzMDAzRUZBMjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAw
M0VGQjI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
MDAzRUZDMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0VGRDI1NzhDQzQ5MDBGMkEz
REEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUZFMjU3OENDNEEwMEYyQTNEQSAvKiBSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzMDAzRjAyMjU3OEQ3QTcwMEYyQTNEQSAvKiBXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMw
MDNGMDMyNTc4RDdBODAwRjJBM0RBIC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjA2MjU3
OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzAwM0YwNzI1NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzAwM0YwOTI1NzhEOThDMDBGMkEzREEgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzMDAzRjBCMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjBDMjU3OEQ5
RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNG
MEQyNTc4RDlFRTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzMjFENTg1MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
MjFENTg3MUEzOEVFNzQwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjFENTg5MUEz
OEYxOTYwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTYyNTMsNiArNjI3Nyw3IEBACiAJCQkJNTE1QkUxQUUxRDU5MDAz
NDAwREQ3QzY4IC8qIEdhbWVwYWQgKi8sCiAJCQkJMkRBOTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8q
IGlvcyAqLywKIAkJCQlCQzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTkz
MDAzRUY2MjU3OEM0NTAwMEYyQTNEQSAvKiBtZWRpYSAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0
MDA4NTI0MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyog
UmVtb3RlTGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJz
aXRlRGF0YSAqLywKQEAgLTg3OTQsOCArODgxOSw2IEBACiAJCQkJNDE2ODRDNEYyNDY0M0QzRjAw
MUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCAqLywKIAkJCQk0MTY4NEM0
RTI0NjQzQzgxMDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCAqLywKIAkJ
CQk0MTY4NEM0RDI0NjQzQkZBMDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
bWVzc2FnZXMuaW4gKi8sCi0JCQkJNDE2ODRDNTAyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAotCQkJCTQxNjg0QzUxMjQ2NDUwRkQwMDFDRThFRCAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8sCiAJCQkJQ0Q0OTFCMDUxRTcwRDA1RjAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAqLywKIAkJCQlDRDQ5MUIwNjFF
NzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLywKIAkJCQlDRDQ5
MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMu
aW4gKi8sCkBAIC04ODAzLDYgKzg4MjYsOCBAQAogCQkJCTUyRDVBMUIzMUM1NzQ5RjIwMERFMzRB
MyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTUyRDVBMUI0
MUM1NzQ5RjIwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICovLAogCQkJCTdD
NkU3MEY5MThCMkQ0QTAwMEYyNEUyRSAvKiBXZWJQcm9jZXNzQ29jb2EubW0gKi8sCisJCQkJOTMw
MDNGMDMyNTc4RDdBODAwRjJBM0RBIC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
ICovLAorCQkJCTkzMDAzRjAyMjU3OEQ3QTcwMEYyQTNEQSAvKiBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTg5NjAsNiArODk4NSwyMSBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTkzMDAzRUY2MjU3OEM0NTAwMEYyQTNEQSAv
KiBtZWRpYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJ
OTMwMDNFRkUyNTc4Q0M0QTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cCAqLywKKwkJCQk5MzAwM0VGQzI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCAqLywKKwkJCQk5MzAwM0VGRDI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJOTMwMDNFRjkyNTc4QzRFNDAw
RjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCTkzMDAzRUY4
MjU3OEM0RTMwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8sCisJCQkJ
OTMwMDNFRjcyNTc4QzRFMzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcCAqLywKKwkJCQk5MzAwM0VGQTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5MzAwM0VGQjI1NzhDNEU0MDBGMkEzREEg
LyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkp
OworCQkJcGF0aCA9IG1lZGlhOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
OTM5Mjg4RTAyMTQwNERGMDAwRUJCQTMzIC8qIEluZGV4ZWREQiAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xMDQ4MSw2ICsxMDUyMSw5IEBACiAJCQkJMUEw
NDNCNUMxMjRENUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8s
CiAJCQkJMUE4RUZBNkUxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQkxQThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlN
ZXNzYWdlcy5oICovLAorCQkJCTkzMDAzRjA3MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTMwMDNGMDkyNTc4
RDk4QzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywK
KwkJCQk5MzAwM0YwNjI1NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQlDREQ1MzU3NjI0MERERTA3MDBGN0I4QzQgLyog
UmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREQ1MzU3NTI0
MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCAqLywKIAkJCQlD
REQ1MzU3NDI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBs
aWVzLmggKi8sCkBAIC0xMDUzNCw2ICsxMDU3Nyw5IEBACiAJCQkJMUREMkE2NjEyNTYxMjJGMTAw
RkY3QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJ
CQkxQUMxMzM4MzE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQzEzMzg0MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVP
YmplY3RSZWdpc3RyeU1lc3NhZ2VzLmggKi8sCisJCQkJOTMwMDNGMEIyNTc4RDlFRDAwRjJBM0RB
IC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKKwkJCQk5MzAwM0YwQzI1NzhEOUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzMDAzRjBEMjU3OEQ5RUUwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAog
CQkJCTBGNTk0N0E1MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMEY1OTQ3QTYxODdCNTE3NjAwNDM3ODU3IC8q
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCAqLywKIAkJCQkxREQyQTY2QjI1
NjIwMjFFMDBGRjdCNkYgLyogUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLApAQCAtMTE1MjksNiArMTE1NzUsOSBAQAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcw
MDZBNiAvKiBRdWFyYW50aW5lU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBDMjI3RTI0NTEx
MzBBMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBRUU1NzI1MjQwOUYxNDIwMDIwMDVENiAvKiBRdWlja0xvb2tUaHVtYm5haWxM
b2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRjAxMjU3OENENjcwMEYyQTNEQSAvKiBS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNGMTAy
NTc4REIwODAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzMDAzRjExMjU3OERCMEEwMEYyQTNEQSAvKiBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdG
RDMxODIyMkIzNTE1RTAwOEQwRThCIC8qIFJlZGlyZWN0U09BdXRob3JpemF0aW9uU2Vzc2lvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjEyMjlDRDIz
RkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTE1NjksNiArMTE2MTgsMTAgQEAKIAkJCQkxQTU3MDRGQzFCRTE3NTExMDA4
NzRBRjEgLyogUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFD
MTMzODAxODU5MEFFNDAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUMxMzM4NjE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0
cnlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNFRkYyNTc4Q0Q2MTAwRjJBM0RB
IC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAz
RjAwMjU3OENENjUwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNGMEUyNTc4REEzODAwRjJBM0RBIC8qIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
MDAzRjEzMjU3OERCMTIwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OTAxODdCM0IzQTAw
NDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjU5NDdBODE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OUIxODdCM0I2MDAwNDM3ODU3IC8q
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLApAQCAtMTE4
NzQsNiArMTE5MjcsNyBAQAogCQkJCTFBMUUwOTM0MTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkY1ODlEMTJBODgzODgw
MDYyOTUzMCAvKiBXZWJQcm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MUND
Q0E2MjMxNDg1QUEwMEI2NTlCOSAvKiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTMwMDNGMDQyNTc4RDdCQjAwRjJBM0RBIC8qIFdlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODYwRTcxMjMwRjY3RkMwMDQ2MUFB
RSAvKiBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxMEFGRkJBMTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTFGMDYwRTAxNjU0MzE3RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTMzNTksNiArMTM0MTMsNyBAQAogCQkJCTJE
NTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUEwQzIyN0YyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGlu
Z1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyNUUyNDM1NzVDRDAwRUQ2MTRE
IC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkzMDAz
RjBGMjU3OERCMDYwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QjEyMjlDRTIzRkYyNUYyMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUQwMzY5QUUyNTY3OTZCOTAwNDQwMzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEQg
LyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0xMzM4MCw2ICsxMzQzNSw3IEBACiAJCQkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3
QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFERDJBNjYzMjU2MTI0NkYwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNv
dXJjZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzg1
MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzAwM0YxMjI1NzhEQjBDMDBGMkEzREEgLyogUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY1OTQ3QTcxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJBNjZFMjU2
MjAyMUUwMEZGN0I2RiAvKiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDAzNjlBQzI1Njc5Njk5MDA0NDAzNzIgLyogUmVtb3Rl
VGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCmluZGV4IDNmMzUzMTk0
YTMyYzNlNjc5YmNhMjlmYmVhODUwMzFjOTIxZTRmYzQuLmNmMjgzZWQzNWI1ZjAxM2E3NmJjZTk5
ZmM3OWMyNWM1MDJjZGVkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uY3BwCkBAIC00Niw2ICs0NiwxMCBAQCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlv
bgogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1faWRlbnRpZmllciwgKnRoaXMpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7CisK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIH0KIAogV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBmMmYyMjgyMmM3YjIy
M2ZjYTU5Zjk1NTczZDExZGM5OWIxMDM0ODExLi5hMzk0NTI0OGYzNmQzNDcwNTY1ZTEyYjNhNmU2
NDMxNzI1OGJiYzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNs
dWRlICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1v
dGVMZWdhY3lDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKQEAgLTE5
NjksNiArMTk3MCwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmVuYWJsZVZQOVNXRGVjb2RlcigpCiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciYgV2ViUHJvY2Vzczo6ZW5zdXJlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQor
eworICAgIGlmICghbV9yZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcikKKyAgICAgICAgbV9yZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI+KCk7CisKKyAgICByZXR1cm4gKm1fcmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19T
RVNTSU9OX0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlOWM0N2Ri
NGM0NDdjMGY0YWI2MjdjMDk0YjVmNjhkYjU2NWE5YTZjLi5hMDQxNTUyZDExOTkxNGM5Y2YyNGZm
NGM5MTM5Yjg0ODYwODY1ODc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
QEAgLTE0Miw2ICsxNDIsMTAgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwog
Y2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGNsYXNz
IFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcwogewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwpAQCAtMzYwLDYgKzM2NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRX
cml0ZVRvUGFzdGVib2FyZEFzeW5jaHJvbm91c2x5KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogICAgIH5XZWJQcm9jZXNzKCk7CkBA
IC02OTMsNiArNzAxLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ZwOURlY29kZXJFbmFibGVk
IHsgZmFsc2UgfTsKICAgICBib29sIG1fdnA5U1dEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAj
ZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwCmluZGV4IDViM2U3MDBlMDk1OGUyZmJkNTY5MTc4MDQyNzFkZWRjOTRmYzVlNDkuLjJhMTEz
MjMxMjE0NzE1ZGI4NzFjY2E0NTBhYmQ2NzEzMWU0NmEwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
OjpzZXRDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKICAgICAgICAgbV9j
b25uZWN0aW9uLT5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQogCi12b2lk
IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYgc291cmNlKQordm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6
YWRkU291cmNlKFJlZjxXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKIHsK
ICAgICBBU1NFUlQoV1RGOjppc01haW5SdW5Mb29wKCkpOwogICAgIHNldENvbm5lY3Rpb24oc291
cmNlLT5jb25uZWN0aW9uKCkpOwpAQCAtMTExLDkgKzExMSw5IEBAIHZvaWQgUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291CiAgICAgaXRlcmF0b3ItPnZhbHVlLT5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwg
bnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKIH0KIAotUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpSZW1vdGVBdWRpbyhSZWY8UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCitSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVt
b3RlQXVkaW86OlJlbW90ZUF1ZGlvKFJlZjxXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYm
IHNvdXJjZSkKICAgICA6IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKLSAgICAsIG1fcmluZ0J1
ZmZlcihtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZT4obnVsbHB0cikpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2Vi
Q29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
PihudWxscHRyKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKaW5kZXggNmZiNGJjMzdi
OTM4MDE2ZmNlNWM1YzVhYzVhNDM3MDI3ZjE4NmJlNC4uYWUwYTZlMGZjODlhOTJhZWQxZjg3N2M4
NjBhYTZhY2JmZWMwN2ZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKQEAgLTI5LDggKzI5LDgg
QEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKLSNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSAiU2hh
cmVkTWVtb3J5LmgiCisjaW5jbHVkZSAiV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVy
TGlzdC5oPgpAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIoKTsKICAgICB+UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKIAotICAgIHZv
aWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICB2b2lk
IGFkZFNvdXJjZShSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CiAgICAgdm9p
ZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwog
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKTsKQEAgLTYzLDEzICs2MywxMyBAQCBwcml2YXRlOgogICAgIGNsYXNzIFJlbW90ZUF1ZGlv
IHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAg
ICBleHBsaWNpdCBSZW1vdGVBdWRpbyhSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7
CisgICAgICAgIGV4cGxpY2l0IFJlbW90ZUF1ZGlvKFJlZjxXZWJSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlPiYmKTsKIAogICAgICAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5
OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcyk7CiAgICAgICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxl
KE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUs
IHVpbnQ2NF90IGVuZEZyYW1lKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZjxSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICAgICAgUmVmPFdlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAgICAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2J1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY5YzJhYWQwOTE5NjJlMzU5NmVm
ODkzYjM1OWMxZDFkNjg0YWUzNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMTAgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmgiCi0KLSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQot
I2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaCIKLSNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgotI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29y
ZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0
cmFpbnRzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZm
ZXJMaXN0Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1SZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
IGRldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYg
bWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotewotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UudHlwZSgpLCBXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cykpOwotICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwotICAgIHNvdXJj
ZS0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhzb3VyY2UtPmlkZW50aWZpZXIoKSwgZGV2aWNlLCBzb3VyY2UtPmRldmljZUlE
SGFzaFNhbHQoKSwgY29uc3RyYWludHMpLCBbc291cmNlID0gc291cmNlLmNvcHlSZWYoKV0oYm9v
bCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYm
IGNhcGFiaWxpdGllcykgewotICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgewotICAgICAgICAgICAg
c291cmNlLT5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLSAgICAgICAgc291cmNlLT5zZXROYW1lKFN0cmluZyB7IHNldHRpbmdz
LmxhYmVsKCkuc3RyaW5nKCkgfSk7Ci0gICAgICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92
ZShzZXR0aW5ncykpOwotICAgICAgICBzb3VyY2UtPnNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNh
cGFiaWxpdGllcykpOwotICAgICAgICBzb3VyY2UtPnNldEFzUmVhZHkoKTsKLSAgICB9KTsKLSAg
ICByZXR1cm4gc291cmNlOwotfQotCi1zdGF0aWMgaW5saW5lIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGUgc291cmNlVHlwZUZyb21EZXZpY2VUeXBlKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUg
ZGV2aWNlVHlwZSkKLXsKLSAgICBzd2l0Y2ggKGRldmljZVR5cGUpIHsKLSAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6Ci0gICAgICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYToKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVl
bjoKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAg
cmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOwotICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OlVua25vd246Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0K
LSAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKLX0KLQotUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
IGRldmljZVR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQot
ICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShzb3VyY2VUeXBlRnJvbURldmljZVR5cGUoZGV2aWNl
VHlwZSksIFdURk1vdmUobmFtZSksIFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9VSW50NjQo
KSksIFdURk1vdmUoaGFzaFNhbHQpKQotICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0g
ICAgLCBtX21hbmFnZXIobWFuYWdlcikKLSAgICAsIG1fZGV2aWNlVHlwZShkZXZpY2VUeXBlKQot
ICAgICwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MpCi17Ci0gICAgc3dpdGNoIChtX2RldmljZVR5cGUpIHsKLSAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJl
RmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5k
aWYKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
Y3JlZW46Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoK
LSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLX0KLQotUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQotewotICAgIHN3aXRjaCAobV9kZXZpY2VU
eXBlKSB7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgq
dGhpcyk7Ci0jZW5kaWYKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpDYW1lcmE6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgp
LnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotICAgICAgICBicmVhazsKLSAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKLSAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
fQotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OndoZW5SZWFkeShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCi17Ci0gICAgaWYgKG1faXNSZWFk
eSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKFdURk1vdmUobV9lcnJvck1lc3NhZ2UpKTsKLSAg
ICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgbV9p
c1JlYWR5ID0gdHJ1ZTsKLSAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdl
KTsKLSAgICBpZiAobV9jYWxsYmFjaykKLSAgICAgICAgbV9jYWxsYmFjayhtX2Vycm9yTWVzc2Fn
ZSk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0QXNSZWFkeSgpCi17
Ci0gICAgbV9pc1JlYWR5ID0gdHJ1ZTsKLSAgICBpZiAobV9jYWxsYmFjaykKLSAgICAgICAgbV9j
YWxsYmFjayh7IH0pOwotfQotCi1SZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Y2xvbmUoKQotewotICAgIHN3aXRjaCAodHlwZSgpKSB7Ci0gICAgY2Fz
ZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKLSAgICAgICAgcmV0dXJuIGNsb25l
VmlkZW9Tb3VyY2UoKTsKLSAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
OgotICAgICAgICBicmVhazsKLSAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5v
bmU6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLSAgICByZXR1cm4gKnRo
aXM7Ci19Ci0KLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjbG9uZVZpZGVvU291cmNlKCkKLXsKLSAgICBhdXRvIGlkZW50aWZpZXIgPSBSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBpZiAoIWNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q2xvbmUgeyBt
X2lkZW50aWZpZXIsIGlkZW50aWZpZXIgfSwgMCkpCi0gICAgICAgIHJldHVybiAqdGhpczsKLQot
ICAgIGF1dG8gY2xvbmVTb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UoaWRlbnRpZmllciwgZGV2aWNlVHlwZSgpLCBTdHJpbmcgeyBtX3NldHRpbmdzLmxhYmVs
KCkuc3RyaW5nKCkgfSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcykpOwotICAgIGNsb25lU291cmNlLT5zZXRTZXR0aW5ncyhSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MgeyBtX3NldHRpbmdzIH0pOwotICAgIG1fbWFuYWdlci5hZGRT
b3VyY2UoY2xvbmVTb3VyY2UuY29weVJlZigpKTsKLSAgICByZXR1cm4gY2xvbmVTb3VyY2U7Ci19
Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCi17Ci0gICAgbV9jYXBh
YmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYg
c2V0dGluZ3MpCi17Ci0gICAgYXV0byBjaGFuZ2VkID0gbV9zZXR0aW5ncy5kaWZmZXJlbmNlKHNl
dHRpbmdzKTsKLSAgICBtX3NldHRpbmdzID0gV1RGTW92ZShzZXR0aW5ncyk7Ci0gICAgbm90aWZ5
U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMoY2hhbmdlZCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6
TWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzaXplKQotewotICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBk
YXRhLCBkZXNjcmlwdGlvbiwgc2l6ZSk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3RlVmlkZW9TYW1wbGUmJiByZW1v
dGVTYW1wbGUpCi17Ci0gICAgQVNTRVJUKHR5cGUoKSA9PSBUeXBlOjpWaWRlbyk7Ci0KLSAgICBz
ZXRJbnRyaW5zaWNTaXplKHJlbW90ZVNhbXBsZS5zaXplKCkpOwotCi0gICAgaWYgKCFtX2ltYWdl
VHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkg
IT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCi0gICAgICAgIG1faW1hZ2VUcmFuc2ZlclNl
c3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVv
Rm9ybWF0KCkpOwotCi0gICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7Ci0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0
byBzYW1wbGVSZWYgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShy
ZW1vdGVTYW1wbGUpOwotICAgIGlmICghc2FtcGxlUmVmKSB7Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoKnNhbXBsZVJlZik7Ci19Ci0KLUlQQzo6Q29ubmVj
dGlvbiogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y29ubmVjdGlvbigpCi17Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0gICAgaWYgKG1f
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICAgICAgcmV0dXJuICZXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKLSNl
bmRpZgotICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJv
ZHVjaW5nRGF0YSgpCi17Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIg
fSwgMCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2lu
Z0RhdGEoKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7
Ci19Ci0KLWJvb2wgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2hvdWxkQXBwbHlSb3Rh
dGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pCi17Ci0gICAgY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTZXRTaG91bGRBcHBseVJv
dGF0aW9uIHsgbV9pZGVudGlmaWVyLCBzaG91bGRBcHBseVJvdGF0aW9uIH0sIDApOwotICAgIHJl
dHVybiB0cnVlOwotfQotCi1jb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXBhYmlsaXRpZXMoKQotewotICAg
IHJldHVybiBtX2NhcGFiaWxpdGllczsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAvLyBGSVhNRTogVXNlIHNlbmRBc3luY1dpdGhSZXBs
eS4KLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OkFwcGx5Q29uc3RyYWludHMgeyBtX2lkZW50aWZpZXIsIGNvbnN0cmFpbnRzIH0s
IDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWlu
dHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBz
ZXR0aW5ncykKLXsKLSAgICBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3Moc2V0dGluZ3MpKTsKLQotICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBs
eUNvbnN0cmFpbnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOwotICAgIGNhbGxiYWNrKHsgfSk7Ci19
Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c0ZhaWxl
ZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCi17Ci0g
ICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MudGFr
ZUZpcnN0KCk7Ci0gICAgY2FsbGJhY2soQXBwbHlDb25zdHJhaW50c0Vycm9yIHsgV1RGTW92ZShm
YWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2UpIH0pOwotfQotCi12b2lkIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6Omhhc0VuZGVkKCkKLXsKLSAgICBjb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7IG1faWRl
bnRpZmllciB9LCAwKTsKLSAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKG1faWRlbnRpZmllcik7
Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQot
ewotICAgIHN0b3AoKTsKLSAgICBoYXNFbmRlZCgpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQotewotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OmNhcHR1cmVGYWlsZWQoKTsKLSAgICBoYXNFbmRlZCgpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnN0b3BCZWluZ09ic2VydmVkKCkKLXsKLSAgICBjb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlJlcXVlc3RUb0Vu
ZCB7IG1faWRlbnRpZmllciB9LCAwKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpyZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQotewotICAgIHN3aXRjaCAodHlw
ZSgpKSB7Ci0gICAgY2FzZSBUeXBlOjpBdWRpbzoKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVxdWVzdFRvRW5kKG9ic2VydmVyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBUeXBl
OjpWaWRlbzoKLSAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBUeXBlOjpOb25lOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9
Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMWM4OTBiZWIxYjAzMTNkNGUyMzAyOTUyOWY1MWQxMTE3MGU5YjViOC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTExICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSA8V2ViQ29y
ZS9DYXB0dXJlRGV2aWNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNl
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgot
I2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rp
b247Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbjsKLWNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7Ci1zdHJ1Y3QgTWVkaWFDb25zdHJh
aW50czsKLWNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI7Ci0KLWNsYXNzIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgPSBmYWxzZSk7Ci0gICAg
flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKLQotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH0KLSAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKTsKLQotICAgIHZvaWQgc2V0
U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwotCi0gICAg
dm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYpOwotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJp
bmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwotCi0gICAgdm9p
ZCBjYXB0dXJlU3RvcHBlZCgpOwotICAgIHZvaWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOwotCi0g
ICAgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1Nh
bXBsZSYmKTsKLSAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6
Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2Vi
Q29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk7Ci0KLXByaXZhdGU6Ci0gICAg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKLQotICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKLSAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwotICAgIHZvaWQgc3RvcFByb2R1Y2lu
Z0RhdGEoKSBmaW5hbDsKLSAgICBib29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQot
ICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQotICAgIGJvb2wgc2V0U2hv
dWxkQXBwbHlSb3RhdGlvbihib29sIC8qIHNob3VsZEFwcGx5Um90YXRpb24gKi8pIGZpbmFsOwot
ICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
JiwgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJikgZmluYWw7Ci0gICAgdm9pZCByZXF1ZXN0VG9F
bmQoT2JzZXJ2ZXImKSBmaW5hbDsKLSAgICB2b2lkIHN0b3BCZWluZ09ic2VydmVkKCkgZmluYWw7
Ci0gICAgdm9pZCBoYXNFbmRlZCgpIGZpbmFsOwotICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdz
OyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYg
Y2FwYWJpbGl0aWVzKCkgZmluYWw7Ci0gICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdHJpbmcpPiYmKSBmaW5hbDsKLSAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RldmljZVR5cGU7
IH0KLSAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmUoKSBmaW5hbDsKLQotICAgIHZv
aWQgZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwotICAgIHZvaWQgc2V0QXNSZWFkeSgp
OwotICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMmJik7Ci0gICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lVmlkZW9T
b3VyY2UoKTsKLQotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKLSAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwotICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7
Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7Ci0K
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9p
bWFnZVRyYW5zZmVyU2Vzc2lvbjsKLSAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlIG1fZGV2aWNlVHlwZSB7IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVu
a25vd24gfTsKLQotICAgIERlcXVlPEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdB
cHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzOwotICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07Ci0gICAgU3Ry
aW5nIG1fZXJyb3JNZXNzYWdlOwotICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4g
bV9jYWxsYmFjazsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwCmluZGV4IDA4M2Y4MjlhZjc1YWU5OWY2YzI4Y2Q2NzBiOTBhNjY3Nzg5ZjM3
ZTMuLjU4YzgwNmI1ZmFkZjUyNGQwZThiOTRjMjE5YjcwZGRhMDY3ZDBkOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcApAQCAtMzAsMTAgKzMwLDEwIEBACiAKICNpbmNsdWRlICJBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlci5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCi0j
aW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgpAQCAtODUs
NyArODUsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzZXR1cENhcHR1cmVQcm9j
ZXNzZXMoYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUAogICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkobV9kaXNw
bGF5RmFjdG9yeSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJj
ZShSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit2b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYgc291cmNlKQogewogICAgIGlmIChzb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbykKICAgICAgICAgbV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CkBAIC0xNTgsNyArMTU4LDcgQEAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3Jl
YXRlQXVkaW9DYXB0dXJlU28KICAgICAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRT
aG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRpZgogCi0gICAgcmV0
dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJhaW50
cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsKKyAgICByZXR1cm4gV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoYm9v
bCB2YWx1ZSkKQEAgLTE3Niw3ICsxNzYsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTbwogICAg
ICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiVmlkZW8gY2FwdHVyZSBpbiBHUFVQ
cm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRlZCJfcyB9OwogI2VuZGlmCiAKLSAgICByZXR1cm4gUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIpOworICAgIHJldHVybiBXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgV1RGTW92
ZShoYXNoU2FsdCksIG1fbWFuYWdlcik7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpA
QCAtMTkxLDcgKzE5MSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1CiAgICAgaWYgKCFjb25z
dHJhaW50cykKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgeyB9LCBtX21h
bmFnZXIpOworICAgIHJldHVybiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUo
ZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgeyB9LCBtX21hbmFnZXIpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5oCmluZGV4IGIwYjE5ODI5MDU0MjJkZTcyOTU0MmFiYjNlZTA5YmM3ZTMzMGQwMmQu
LjVlNDRhNThiNDRmODQ5YjI4ZjgzZjBiZDZmOWQ5NWIwMWVlYTYwYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTsKK2NsYXNzIFdl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CiBjbGFzcyBXZWJQcm9jZXNzOwogCiBjbGFzcyBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVi
bGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBkZWNvZGVyKTsgfQogICAgIHZvaWQgc2V0dXBDYXB0dXJlUHJvY2Vzc2VzKGJvb2wg
c2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5H
UFVQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRlb0luVUlQcm9jZXNzLCBib29sIHNob3Vs
ZENhcHR1cmVWaWRlb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlRGlzcGxheUluVUlQ
cm9jZXNzKTsKIAotICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZT4mJik7CiAgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgpAQCAtMTI4LDkgKzEyOCw5IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFN0cmluZyYmLCBTdHJpbmcmJik7CiAKLSAgICBSZWY8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmVWaWRlb1NvdXJjZShSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlJik7CisgICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+
IGNsb25lVmlkZW9Tb3VyY2UoV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwogCi0gICAg
SGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgUmVmPFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U+PiBtX3NvdXJjZXM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U+PiBtX3NvdXJjZXM7CiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogICAgIE5vT3BD
YXB0dXJlRGV2aWNlTWFuYWdlciBtX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsKICAgICBBdWRp
b0ZhY3RvcnkgbV9hdWRpb0ZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTgxZjEyOGU3MjZiNWRhMzhiMjYzNWJhNjYwMGI3NzAwZDQ1ZGM5NQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcApAQCAtMCwwICsxLDMxMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgi
CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1
ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
ZW1vdGVWaWRlb1NhbXBsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gV2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRl
dmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFu
YWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQoreworICAgIGF1dG8gc291cmNl
ID0gYWRvcHRSZWYoKm5ldyBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UudHlwZSgpLCBXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cykpOworICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOworICAgIHNvdXJj
ZS0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhzb3VyY2UtPmlkZW50aWZpZXIoKSwgZGV2aWNlLCBzb3VyY2UtPmRldmljZUlE
SGFzaFNhbHQoKSwgY29uc3RyYWludHMpLCBbc291cmNlID0gc291cmNlLmNvcHlSZWYoKV0oYm9v
bCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYm
IGNhcGFiaWxpdGllcykgeworICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgeworICAgICAgICAgICAg
c291cmNlLT5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgc291cmNlLT5zZXROYW1lKFN0cmluZyB7IHNldHRpbmdz
LmxhYmVsKCkuc3RyaW5nKCkgfSk7CisgICAgICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92
ZShzZXR0aW5ncykpOworICAgICAgICBzb3VyY2UtPnNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNh
cGFiaWxpdGllcykpOworICAgICAgICBzb3VyY2UtPnNldEFzUmVhZHkoKTsKKyAgICB9KTsKKyAg
ICByZXR1cm4gc291cmNlOworfQorCitzdGF0aWMgaW5saW5lIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGUgc291cmNlVHlwZUZyb21EZXZpY2VUeXBlKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUg
ZGV2aWNlVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGRldmljZVR5cGUpIHsKKyAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHJldHVybiBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYToKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVl
bjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAg
cmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOworICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKK30KKworV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlIGRldmljZVR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShzb3VyY2VUeXBlRnJvbURldmljZVR5cGUo
ZGV2aWNlVHlwZSksIFdURk1vdmUobmFtZSksIFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9V
SW50NjQoKSksIFdURk1vdmUoaGFzaFNhbHQpKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fZGV2aWNlVHlwZShkZXZpY2VU
eXBlKQorICAgICwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpCit7CisgICAgc3dpdGNoIChtX2RldmljZVR5cGUpIHsKKyAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9D
YXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisjZW5kaWYKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7
CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpTY3JlZW46CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3Bl
YWtlcjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKworV2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6fldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQoreworICAgIHN3aXRj
aCAobV9kZXZpY2VUeXBlKSB7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpN
aWNyb3Bob25lOgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFj
dGl2ZVNvdXJjZSgqdGhpcyk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0
dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyNlbmRpZgorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6Ondo
ZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCit7Cisg
ICAgaWYgKG1faXNSZWFkeSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKFdURk1vdmUobV9lcnJv
ck1lc3NhZ2UpKTsKKyAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Cit9CisKK3Zv
aWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1l
c3NhZ2UpCit7CisgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdU
Rk1vdmUoZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxs
YmFjayhtX2Vycm9yTWVzc2FnZSk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6c2V0QXNSZWFkeSgpCit7CisgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICBpZiAobV9j
YWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjayh7IH0pOworfQorCitSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmUoKQoreworICAgIHN3
aXRjaCAodHlwZSgpKSB7CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRl
bzoKKyAgICAgICAgcmV0dXJuIGNsb25lVmlkZW9Tb3VyY2UoKTsKKyAgICBjYXNlIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1JlZjxSZWFsdGltZU1lZGlhU291cmNl
PiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZVZpZGVvU291cmNlKCkKK3sKKyAg
ICBhdXRvIGlkZW50aWZpZXIgPSBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJh
dGUoKTsKKyAgICBpZiAoIWNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q2xvbmUgeyBtX2lkZW50aWZpZXIsIGlkZW50aWZpZXIgfSwgMCkp
CisgICAgICAgIHJldHVybiAqdGhpczsKKworICAgIGF1dG8gY2xvbmVTb3VyY2UgPSBhZG9wdFJl
ZigqbmV3IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoaWRlbnRpZmllciwgZGV2aWNlVHlw
ZSgpLCBTdHJpbmcgeyBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSwgZGV2aWNlSURIYXNo
U2FsdCgpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGNs
b25lU291cmNlLT5zZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgeyBtX3Nl
dHRpbmdzIH0pOworICAgIG1fbWFuYWdlci5hZGRTb3VyY2UoY2xvbmVTb3VyY2UuY29weVJlZigp
KTsKKyAgICByZXR1cm4gY2xvbmVTb3VyY2U7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmJiBjYXBhYmlsaXRpZXMpCit7CisgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFi
aWxpdGllcyk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2V0
dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCit7CisgICAgYXV0
byBjaGFuZ2VkID0gbV9zZXR0aW5ncy5kaWZmZXJlbmNlKHNldHRpbmdzKTsKKyAgICBtX3NldHRp
bmdzID0gV1RGTW92ZShzZXR0aW5ncyk7CisgICAgbm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNl
cnZlcnMoY2hhbmdlZCk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYgZGVzY3JpcHRpb24sIHNpemVfdCBzaXplKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBkYXRhLCBkZXNjcmlwdGlvbiwg
c2l6ZSk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlk
ZW9TYW1wbGVBdmFpbGFibGUoUmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCit7Cisg
ICAgQVNTRVJUKHR5cGUoKSA9PSBUeXBlOjpWaWRlbyk7CisKKyAgICBzZXRJbnRyaW5zaWNTaXpl
KHJlbW90ZVNhbXBsZS5zaXplKCkpOworCisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9u
IHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxl
LnZpZGVvRm9ybWF0KCkpCisgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOworCisg
ICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzYW1wbGVSZWYgPSBt
X2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUpOwor
ICAgIGlmICghc2FtcGxlUmVmKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1w
bGVBdmFpbGFibGUoKnNhbXBsZVJlZik7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogV2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6Y29ubmVjdGlvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgaWYgKG1fc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcykKKyAgICAgICAgcmV0dXJuICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKKyNlbmRpZgorICAgIHJl
dHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOwor
fQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0
YSgpCit7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9
CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEo
KQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisK
K2Jvb2wgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlv
bihib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTZXRTaG91bGRBcHBseVJvdGF0
aW9uIHsgbV9pZGVudGlmaWVyLCBzaG91bGRBcHBseVJvdGF0aW9uIH0sIDApOworICAgIHJldHVy
biB0cnVlOworfQorCitjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXBhYmlsaXRpZXMoKQoreworICAg
IHJldHVybiBtX2NhcGFiaWxpdGllczsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMm
IGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBwZW5kKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAvLyBGSVhNRTogVXNlIHNlbmRBc3luY1dpdGhS
ZXBseS4KKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OkFwcGx5Q29uc3RyYWludHMgeyBtX2lkZW50aWZpZXIsIGNvbnN0cmFpbnRz
IH0sIDApOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29u
c3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBzZXR0aW5ncykKK3sKKyAgICBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3Moc2V0dGluZ3MpKTsKKworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRp
bmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOworICAgIGNhbGxiYWNrKHsg
fSk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJh
aW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3Nh
Z2UpCit7CisgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxs
YmFja3MudGFrZUZpcnN0KCk7CisgICAgY2FsbGJhY2soQXBwbHlDb25zdHJhaW50c0Vycm9yIHsg
V1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2UpIH0pOworfQor
Cit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6Omhhc0VuZGVkKCkKK3sKKyAgICBj
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OkVuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKKyAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKG1f
aWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2Fw
dHVyZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKKyAgICBoYXNFbmRlZCgpOworfQorCit2b2lk
IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQoreworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKTsKKyAgICBoYXNFbmRlZCgpOworfQor
Cit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BCZWluZ09ic2VydmVkKCkK
K3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlJlcXVlc3RUb0VuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBX
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2Vy
dmVyKQoreworICAgIHN3aXRjaCAodHlwZSgpKSB7CisgICAgY2FzZSBUeXBlOjpBdWRpbzoKKyAg
ICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKG9ic2VydmVyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpWaWRlbzoKKyAgICAgICAgc3RvcEJlaW5nT2JzZXJ2
ZWQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpOb25lOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWU2NDVjNDM0NGE0MDljYTY1OTI3YTM2MTJiNmM4NTgx
ZDJlZDhlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDExMSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisKK25h
bWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVDsKK3N0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOworY2xhc3MgUmVtb3RlVmlkZW9TYW1w
bGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjsKKworY2xhc3MgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcyA9IGZhbHNlKTsKKyAgICB+V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZSgpOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIElQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbigpOworCisgICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CisKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNT
dWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7Cisg
ICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQs
IFN0cmluZyYmIGVycm9yTWVzc2FnZSk7CisKKyAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKCk7Cisg
ICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7CisKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2Ft
cGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOworICAgIHZvaWQgcmVt
b3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2Vi
Q29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgc2l6ZV90KTsKKworcHJpdmF0ZToKKyAgICBXZWJSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MpOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIHZvaWQgc3RhcnRQcm9kdWNp
bmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAg
IGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisgICAgdm9pZCBjb21taXRDb25m
aWd1cmF0aW9uKCkgZmluYWwgeyB9CisgICAgYm9vbCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJv
b2wgLyogc2hvdWxkQXBwbHlSb3RhdGlvbiAqLykgZmluYWw7CisgICAgdm9pZCBhcHBseUNvbnN0
cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRz
SGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RUb0VuZChPYnNlcnZlciYpIGZpbmFs
OworICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQoKSBmaW5hbDsKKyAgICB2b2lkIGhhc0VuZGVk
KCkgZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
JiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAgICBjb25zdCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5h
bDsKKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYp
IGZpbmFsOworICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlw
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNlVHlwZTsgfQorICAgIFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFsOworCisgICAgdm9pZCBkaWRGYWlsKFN0cmluZyYm
IGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBzZXRBc1JlYWR5KCk7CisgICAgdm9pZCBzZXRDYXBh
YmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKTsKKyAg
ICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmVWaWRlb1NvdXJjZSgpOworCisgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKKyAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKworICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9u
OworICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgbV9kZXZpY2VUeXBlIHsg
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93biB9OworCisgICAgRGVx
dWU8QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxs
YmFja3M7CisgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsKKyAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7
CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBtX2NhbGxiYWNrOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415371</attachid>
            <date>2020-12-03 17:53:14 -0800</date>
            <delta_ts>2020-12-03 18:07:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201203175313.patch</filename>
            <type>text/plain</type>
            <size>150852</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIwODVlNGQyMjg5NDYxZWQzNGY2ZWY3
NjczNGYyYTBlZjEzNTEzNTkuLjI5Mzg2OTZhNDg2NTRlNGM0ZmVlYTAyOGUyOWVmNDA4MDg0NWU5
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMi0w
MSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGxp
c3Qgb2YgYmxvY2sgcG9ydHMgYWNjb3JkaW5nIGZldGNoIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjQ3
NmMyNDJlMWI1MWIyMzBmZmYyNDFiNDU5ZTIwMzQ5MDQ4ODQ1Li4yMjE3MWQ5MDgxODM4YzhlNGY1
M2Y3NDhkZDBjMGFhMGI4YjI1NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAt
MTItMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0ZWQgbWFudWFsbHkgd2l0aCBNb2JpbGVNaW5pQnJvd3Nlci4K
KworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1l
ZGlhU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFs
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb24pOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAyMC0xMi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IGlmcmFtZSB3aXRoIGBzYW5kYm94PWFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZh
dGlvbmAgY2FuIG5hdmlnYXRlIHRvcCBmcmFtZSB3aGVuIHRoZSB1c2VyIGludGVyYWN0cyB3aXRo
IGFuIGlmcmFtZSBmcm9tIGFub3RoZXIgb3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4NjExODg1N2U2ZTI2
M2ZjYTNiZWExMDc5NjU1OTk4ZTYxNDZmNjcuLjExMTc3NWQ5OWVkOGFjMDM4Yzc1ZTZlYmQ1ZmQ2
NmIwN2Q0MGU2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQxIEBACisyMDIwLTEyLTAzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2hhcmVkL21lZGlhL1Jl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1l
ZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdl
YktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0
YXJ0KToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAg
KFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0dGluZ3MgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6c3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3Jh
bnRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6Y2xvbmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAg
KFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlcXVlc3RUb0VuZCk6CisgICAg
ICAgICogU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgor
ICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6c291cmNlVHlwZUZyb21EZXZpY2VU
eXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZh
aWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90
ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjp3aGVuUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpzZXRBc1JlYWR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFi
bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91
bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0
VG9FbmQpOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjYXB0dXJlRGV2aWNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y29uc3RyYWludHMgY29uc3QpOgorICAgICAgICAqIFNo
YXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZUZyb21DbG9uZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3Vy
Y2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5h
dGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZCk6
CisgICAgICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpz
ZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjplbnN1cmVSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRl
RGlzcGxheUNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwLgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0Ojpzb3VyY2VUeXBlRnJvbURldmljZVR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6fldlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjp3aGVuUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1w
bGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0Rh
dGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRT
aG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0
cmFpbnRzRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6aGFzRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpjYXB0dXJlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjppZGVudGlmaWVyIGNvbnN0KToKKwogMjAyMC0xMi0wMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggdGhlIGlPUyBidWls
ZCBhZnRlciByMjcwMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGQ0ZGFhMmIy
OTFkZTU2MjFkODc5M2JjNmFjMzJjYzdlYzhkMTQyZjIuLjU3OWFhNTNiYzliZDgxMDhkYmZmYmY0
Nzc3NmRlZDE3MDNlNGEzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC03ODgs
NiArNzg4LDcgQEAgU3BlZWNoUmVjb2duaXRpb25FbmFibGVkOgogICAgIFdlYktpdExlZ2FjeToK
ICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViS2l0OgorICAgICAgIlBMQVRGT1JNKElPU19G
QU1JTFlfU0lNVUxBVE9SKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0YTA0MjI3NDg1
NGJhZjQ2NjcxYWEzMDljNzM4NzlhMzU4MTNkMTlkLi4xMmVhNDdjN2ZmN2YwMDYzODExODNjNWQw
NDlkOGIwNWQxNjIyMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzMjcsNiArMTMyNyw3IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKICAgICBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCisgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgKICAgICBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmNwcAppbmRleCBjOTNiNmYzOGJjNjIzOGRhMWRiYTg2OGUyOWUxZTVi
MWU2ZjY2YjZiLi4yZTU2YTkxOGUzOTlmZDcwM2ZlMmZjZDQzZDczMTA5NzJmMzhhZGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTM0LDkgKzM0LDEwIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ss
IFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrKQotewogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKK09wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKQorewogICAgIE9wdGlvbmFsPENh
cHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CiAgICAgYXV0byBkZXZpY2VzID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlv
Q2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOwogICAgIGZvciAoYXV0byBk
ZXZpY2UgOiBkZXZpY2VzKSB7CkBAIC01MSwyNiArNTIsMTkgQEAgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2du
aXRpb24KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBj
YXB0dXJlRGV2aWNlOworfQogCi0gICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7Ci0gICAgICAgIGF1
dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUi
IH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9CitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVy
ZURldmljZSkKK3sKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0
dXJlRGV2aWNlLCB7IH0sIHsgfSk7Cit9CiAKLSAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoKmNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKLSAgICBpZiAoIXJl
c3VsdCkgewotICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJlc3VsdC5lcnJvck1lc3Nh
Z2UgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYgc291cmNlKQoreworICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJh
Y2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkpOworfQog
Ci0gICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3Rh
dGVVcGRhdGVDYWxsYmFjayksIHJlc3VsdC5zb3VyY2UoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBVTlVTRURfUEFSQU0oZGF0YUNhbGxiYWNrKTsK
LSAgICBVTlVTRURfUEFSQU0oc3RhdGVVcGRhdGVDYWxsYmFjayk7CiAjZW5kaWYKLX0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCA3Mzg2
Y2VlZTI3NDA3Y2M2MTA0ZTI5ZWQ3M2RlN2RhMGE0OWY0ZTBhLi42OWY5YTg4YjI2MWU3MWY2NmVj
MDBiYjllNzFkYTBmM2FjODE5NDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAt
NDIsMTAgKzQyLDE2IEBAIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOwogY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1
bHQ7CiAgICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAg
ICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1l
JiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
Jiwgc2l6ZV90KT47CiAgICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZv
aWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47Ci0gICAgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYpOworCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0
YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBmaW5k
Q2FwdHVyZURldmljZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsK
KyNlbmRpZgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IGJmYzViZTEwMzRiZTNjMTJkMmNhZGVj
M2UxMjE5NDNlYWI4OTkzMjMuLjk4NDI2N2UyYjE5NDkxYzY0YWM1ZWRlYzYzNDNkMDc2ZWI0MTQx
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCkBAIC04OCw2ICs4
OCwxMCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmCiAgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwg
IW1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0
RGVzY3JpcHRpb24oKSAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBhdXRvIGRhdGFTb3VyY2Ug
PSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkg
KiAxLCBtX3NvdXJjZS5nZXQoKSk7CiAgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZv
cm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAgaWYgKGlzTWFpblRocmVhZCgp
KSB7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5h
YmxlIHRvIHNldCBpbnB1dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQog
ICAgICAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFi
bGUgdG8gc2V0IGlucHV0IGZvcm1hdCIgfSkpOwpAQCAtOTYsNiArMTAwLDEwIEBAIHZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNv
bnN0IE1lZGlhVGltZSYKICAgICAgICAgfQogCiAgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRP
dXRwdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGlmIChpc01haW5U
aHJlYWQoKSkgeworICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgIlVuYWJsZSB0byBzZXQgb3V0cHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgICAgICAgICBpZiAod2Vh
a1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgIlVuYWJsZSB0byBzZXQgb3V0cHV0IGZvcm1hdCIgfSkpOwpAQCAtMTEwLDcgKzExOCw3IEBA
IHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAgICB9CiAKICAgICBtX2RhdGFTb3VyY2UtPnB1c2hT
YW1wbGVzKHRpbWUsIGRhdGEsIHNhbXBsZUNvdW50KTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0aW9u
LCBzYW1wbGVDb3VudF0geworICAgIGF1dG8gbWFpbnRocmVhZEhhbmRsZXIgPSBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgdGltZSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxl
Q291bnRdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtMTIxLDcgKzEyOSwxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmCiAgICAgICAgIH0KIAog
ICAgICAgICBtX2RhdGFDYWxsYmFjayh0aW1lLCBkYXRhLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1w
bGVDb3VudCk7Ci0gICAgfSk7CisgICAgfTsKKyAgICBpZiAoIWlzTWFpblRocmVhZCgpKQorICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUobWFpbnRocmVhZEhhbmRsZXIpKTsKKyAgICBl
bHNlCisgICAgICAgIG1haW50aHJlYWRIYW5kbGVyKCk7CiAjZWxzZQogICAgIG1fZGF0YUNhbGxi
YWNrKHRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKaW5k
ZXggNWJlYjYwNTY0N2IzMjllMjY0ZjgzYzI0OWY1N2MyYTIwODFjMmZkNy4uYzYwMzZkNzBjMTdj
ZTc3Y2JmYTk3OTIxZDM4NzJlMmQ0MjMwMGVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTU4LDExICs1OCwxNyBAQCB2
b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIgaWRlbnRpZgogCiAgICAgbV9jbGllbnRJZGVudGlmaWVyID0gaWRlbnRp
ZmllcjsKICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0
YXJ0KSk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0gICAgc3RhcnRJbnRlcm5h
bCgpOwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiYmIHNvdXJjZSkKK3sKKyAgICBzdGFydChpZGVudGlmaWVyKTsKKyAgICBzZXRTb3VyY2UoV1RG
TW92ZShzb3VyY2UpKTsKIH0KIAotdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFs
KCkKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiYmIHNvdXJjZSkKIHsKICAgICBhdXRvIGRhdGFDYWxsYmFjayA9IFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKHRoaXMpXShjb25zdCBhdXRvJiB0aW1lLCBjb25zdCBhdXRvJiBkYXRhLCBjb25z
dCBhdXRvJiBkZXNjcmlwdGlvbiwgYXV0byBzYW1wbGVDb3VudCkgewogICAgICAgICBpZiAoIXdl
YWtUaGlzKQpAQCAtOTAsOSArOTYsMTEgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydElu
dGVybmFsKCkKICAgICAgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKICAgICB9OwogCi0gICAg
bV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1f
Y2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBk
YXRlQ2FsbGJhY2spKTsKKyAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFj
ayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIFdURk1vdmUoc291cmNlKSk7CiB9CiAK
KyNlbmRpZgorCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5h
bFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KQogewogICAgIGlmICghbV9jbGllbnRJ
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5oCmluZGV4IGU2ZjEzZmVlODRhNTMzYWYwZjA0ZTA3NjljMWFlMDk1YmU1YmZmM2Yu
LmYzZWU4NDY0ZmRmZTE0OWVkZDUyNjRmMDU0NTNhMjdkZTRkMTA4YjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTM5LDcgKzM5
LDExIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25p
emVyKERlbGVnYXRlQ2FsbGJhY2smJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflNwZWVjaFJlY29n
bml6ZXIoKSA9IGRlZmF1bHQ7CiAKKwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYm
KTsKKyNlbmRpZgogICAgIGVudW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7IE5v
LCBZZXMgfTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVGaW5h
bFJlc3VsdCA9IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7CiAKQEAgLTQ3LDkgKzUx
LDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9pZCBz
dGFydEludGVybmFsKCk7CiAgICAgdm9pZCBzdG9wSW50ZXJuYWwoKTsKIAorI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgdm9pZCBzZXRTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
JiYpOworI2VuZGlmCisKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7CiAgICAgRGVsZWdhdGVDYWxsYmFj
ayBtX2RlbGVnYXRlQ2FsbGJhY2s7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmY4M2FlNTZmMjNmODFiZjkxY2Y2MjU1
ZDVlZTk3OTBlMmM5YjJjNy4uMjMxZTg0NGEyZTE0MDNjOGVhZWE0NGYzOGNlNTU4MThmZDI4ODU5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjM2MjcsMTMgKzIzNjI3LDYgQEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTkzRjZCODBFMjU2NkVERTEwMEEwODQ4OCAvKiBj
b2NvYSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkpOwot
CQkJcGF0aCA9IGNvY29hOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJOTQ2
RDM3MjcxRDZDQjIyNTAwNzcwODRGIC8qIHBhcnNlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNTY2NCw3ICsyNTY1Nyw2IEBACiAJCUFBMkE1QUI3MTZB
NDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotCQkJCTkzRjZCODBFMjU2NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLywKIAkJ
CQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5p
ZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5
bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpcy5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggODhlMTUxYjEyMjI0
ZmViY2M4OTNiNTNkNjg1ZTNlYzFiMDEwY2Q0NS4uODAyYjdjZjFlZTQzZDI3OWQ4MTQ3N2ZjNDcy
MDAwOGUxMDU2NDkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC01MCw2ICs1MCw3IEBAIHNldChX
ZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVn
aW5zL05ldHNjYXBlL3gxMSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9XZWJzaXRlRGF0YSIKKyAgICAiJHtXRUJL
SVRfRElSfS9TaGFyZWQvbWVkaWEiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzIgogICAg
ICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DIgpAQCAtMTAzLDYgKzEwNCw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RP
UklFUwogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0v
V2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIgorICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
U3BlZWNoIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3RvcmFnZSIKICAgICAiJHtX
RUJLSVRfRElSfS9XZWJQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQiCkBAIC0xODUsNiArMTg3LDkgQEAgc2V0KFdlYktpdF9N
RVNTQUdFU19JTl9GSUxFUwogCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVj
ZWl2ZXIKIAorICAgIFNoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgorICAg
IFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgorCiAgICAgVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKICAgICBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGU1MWNhZWQyMWUxODZjZjJhMTcz
Y2I4YTMzMzEyYmUwYjMwNGJiMDAuLjcyNjA1NzMwZjFjY2NkOTgzZTQ0MTE0YTA3OTM3NDA4OTAw
NzAwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QKQEAgLTkxLDYgKzkxLDggQEAgJChQUk9KRUNUX0RJUikvU2hhcmVkL0F1eGlsaWFyeVByb2Nl
c3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9IVFRQU1VwZ3JhZGUvSFRUUFNV
cGdyYWRlTGlzdC50eHQKICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvV2ViQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9TaGFyZWQvbWVkaWEv
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24ubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IGU4OGIyYzIxZmE3MTdjNzdkMjMwMmNiNTE4YmE0YWQzZWRlMjU3NGEuLjA1
ZmIzZWY2NWViY2UzODVhMjk4NjJmMTY0MGE5NDMwZDNmMWE0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTMxLDYgKzEzMSw5IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb2Nl
c3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNz
YWdlcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZXMuaApAQCAtMjI0LDYgKzIyNyw5IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
U291cmNlUHJveHlNZXNzYWdlc1JlcGxpCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJl
Z2lzdHJ5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2Vz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNz
YWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2Vz
UmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNjgxNDg1NWZmOWQyM2Fm
MGE3N2U1ZmRhNmRmZDJmZDU1MDk3NmY2OS4uZjljNmZkZDIzYWU2OGJkYmVjYzUwMmU1MTBiYzg3
MTA0NThkYTQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTM4LDYgKzEzOCw4
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eSBcCiAJU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlciBcCiAJU2hhcmVkL1dlYkNvbm5lY3Rpb24gXAorCVNoYXJlZC9tZWRpYS9SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlciBcCisJU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyIFwKIAlVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSBcCiAJVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwK
IAlVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmVhMjYxMjlkOTYxY2YzOTczZDViNTQ2ZWVmZTAzNTY0YmQwYjVjMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDMzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisjZWxzZQorI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUGxhdGZvcm1BdWRpb0RhdGEuaD4KKyNlbmRpZgorCisjaWYgVVNFKEFVRElPX1NFU1NJT04p
CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVk
aWFTb3VyY2UKKyAgICA6IHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2Jz
ZXJ2ZXIKKyAgICAsIHByaXZhdGUgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9T
YW1wbGVPYnNlcnZlcgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgcHVibGljIFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyNlbmRpZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYgc291cmNlLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24p
CisgICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2Uo
V1RGTW92ZShzb3VyY2UpKQorICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rp
b24pKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5p
cXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlPih0aGlzKSkpCisjZW5kaWYKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5h
ZGRPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2Vy
dmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpCisgICAgewor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworI2Vu
ZGlmCisgICAgICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsK
KyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB2
b2lkIHN0YXJ0KCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5zdGFydCgpOworICAgIH0KKwor
ICAgIHZvaWQgc3RvcCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0K
KworICAgIHZvaWQgcmVxdWVzdFRvRW5kKCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5yZXF1
ZXN0VG9FbmQoKnRoaXMpOworICAgIH0KKworICAgIE9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OkFwcGx5Q29uc3RyYWludHNFcnJvcj4gYXBwbHlDb25zdHJhaW50cyhjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKKyAgICB7CisgICAgICAg
IHJldHVybiBtX3NvdXJjZS0+YXBwbHlDb25zdHJhaW50cyhjb25zdHJhaW50cyk7CisgICAgfQor
CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9zb3VyY2UtPnNldHRpbmdzKCk7Cisg
ICAgfQorCisgICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX3NvdXJjZS0+Y2xvbmUoKTsKKyAgICB9CisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpCisgICAg
eworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPiht
X3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsKKyAgICB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICB2
b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKG1fc291cmNlLT5j
YXB0dXJlRGlkRmFpbCgpKSB7CisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVk
KG1faWRlbnRpZmllciksIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlJlbW90ZVNvdXJjZVN0b3BwZWQobV9pZGVudGlmaWVyKSwgMCk7CisgICAgfQor
CisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBj
b25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBXZWJDb3Jl
OjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJh
bWVzKSBmaW5hbAorICAgIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKG1fZGVz
Y3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlv
bi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBXZWJDb3JlOjpQbGF0Zm9ybURlc2NyaXB0
aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24g
PSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRp
b24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgbV9u
dW1iZXJPZkZyYW1lcyA9IG1fZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAg
ICAgIG1fcmluZ0J1ZmZlci5hbGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9u
KCksIG1fbnVtYmVyT2ZGcmFtZXMpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdl
YkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKSk7CisgICAgICAgIG1fcmluZ0J1
ZmZlci5zdG9yZShkb3duY2FzdDxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0
YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgICAgIHVp
bnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgICAgIHVpbnQ2NF90IGVuZEZyYW1lOworICAgICAgICBt
X3JpbmdCdWZmZXIuZ2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsK
KyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6UmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKG1faWRlbnRpZmllciwg
dGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKSwgMCk7CisjZWxzZQor
ICAgICAgICBVTlVTRURfUEFSQU0odGltZSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShhdWRpb0Rh
dGEpOworICAgICAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOworICAgICAgICBVTlVTRURf
UEFSQU0obnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisgICAgfQorCisjaWYgUExBVEZPUk0oQ09D
T0EpCisKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmlu
YWwKKyAgICB7CisgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAg
aWYgKHN0b3JhZ2UpCisgICAgICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyNpZiBPUyhEQVJXSU4pIHx8IE9T
KFdJTkRPV1MpCisgICAgICAgIHVpbnQ2NF90IGRhdGFTaXplID0gaGFuZGxlLnNpemUoKTsKKyNl
bHNlCisgICAgICAgIHVpbnQ2NF90IGRhdGFTaXplID0gMDsKKyNlbmRpZgorICAgICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpTZXRTdG9yYWdlKG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZN
b3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9LCBtX2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJhbWVz
KSwgMCk7CisgICAgfQorCisjZW5kaWYKKworICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkg
ZmluYWwKKyAgICB7CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgICAgIGF1dG8gYnVmZmVy
U2l6ZSA9IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUo
KSAvIDUwOworICAgICAgICBpZiAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9u
KCkucHJlZmVycmVkQnVmZmVyU2l6ZSgpID4gYnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUo
YnVmZmVyU2l6ZSk7CisgICAgICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lv
bigpLnNldENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCwgV2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyNlbmRpZgorICAgIH0KKworICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAg
ICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1l
cyB7IDAgfTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OkNBUmluZ0J1ZmZl
ciBtX3JpbmdCdWZmZXI7CisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1f
ZGVzY3JpcHRpb24geyB9OworI2VuZGlmCit9OworCitSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6flJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoKnRoaXMpOworfQorCisj
aWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
JiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJv
eEhhbmRsZUZvck1pY3JvcGhvbmUpCit7CisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JUQ0NEKSk7
CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKQorICAgICAgICBMT0dfRVJST1Io
IkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIHRjY2QiKTsKKyAgICBlbHNl
CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPmNvbnN1bWUoKTsKKworICAgIG1f
c2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUo
V1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgIGlmICghbV9zYW5kYm94
RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3Jl
YXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBtaWNyb3Bob25lIik7CisgICAgZWxzZQorICAgICAg
ICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5jb25zdW1lKCk7Cit9CisKK3ZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKK3sK
KyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCkgeworICAgICAgICBtX3NhbmRib3hF
eHRlbnNpb25Gb3JUQ0NELT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9y
VENDRCA9IG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbkZvck1p
Y3JvcGhvbmUpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+cmV2
b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBudWxscHRy
OworICAgIH0KK30KKworI2VuZGlmCisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OmFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29u
c3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7Cisg
ICAgc3dpdGNoIChjYXB0dXJlRGV2aWNlLnR5cGUoKSkgeworICAgIGNhc2UgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKKyAgICAgICAgc291cmNlT3JFcnJv
ciA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwg
V1RGTW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAgICAgICBz
b3VyY2VPckVycm9yID0gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjYXB0
dXJlRGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAgaWYg
KHNvdXJjZU9yRXJyb3IpCisgICAgICAgICAgICBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2Ut
Pm1vbml0b3JPcmllbnRhdGlvbihtX29yaWVudGF0aW9uTm90aWZpZXIpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoK
KyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAg
ICAgICAgc291cmNlT3JFcnJvciA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJl
U291cmNlKGNhcHR1cmVEZXZpY2UsICZjb25zdHJhaW50cyk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBj
YXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBib29s
IHN1Y2NlZWRlZCA9ICEhc291cmNlT3JFcnJvcjsKKyAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFp
bnRzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGll
czsKKyAgICBpZiAoc3VjY2VlZGVkKSB7CisgICAgICAgIGF1dG8gc291cmNlID0gc291cmNlT3JF
cnJvci5zb3VyY2UoKTsKKyAgICAgICAgc2V0dGluZ3MgPSBzb3VyY2UtPnNldHRpbmdzKCk7Cisg
ICAgICAgIGNhcGFiaWxpdGllcyA9IHNvdXJjZS0+Y2FwYWJpbGl0aWVzKCk7CisgICAgICAgIEFT
U0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV9zb3VyY2Vz
LmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2U+KGlkZW50aWZp
ZXIsIHNvdXJjZU9yRXJyb3Iuc291cmNlKCksIG1ha2VSZWYoKm1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkpKSk7CisgICAgfSBlbHNlCisgICAgICAgIGludmFsaWRDb25zdHJhaW50cyA9IFdURk1v
dmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOworCisgICAgY29tcGxldGlvbkhhbmRsZXIo
c3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHMsIFdURk1vdmUoc2V0dGluZ3MpLCBXVEZNb3Zl
KGNhcGFiaWxpdGllcykpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBtX3NvdXJjZXMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291
cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RhcnQoKTsKK30KKwordm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1f
c291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RvcCgpOworfQorCitJ
UEM6OkNvbm5lY3Rpb24qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90IFJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIDA7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNsb25lU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG9yaWdpbmFsSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbmV3SWRlbnRpZmll
cikKK3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQgdGhpcy4KKyAgICBhdXRvIG9yaWdpbmFsU291
cmNlID0gbV9zb3VyY2VzLmdldChvcmlnaW5hbElkZW50aWZpZXIpOworICAgIGlmICghb3JpZ2lu
YWxTb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRh
aW5zKG5ld0lkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKG5ld0lkZW50aWZpZXIsIG1h
a2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZT4obmV3SWRlbnRpZmllciwgb3JpZ2luYWxTb3Vy
Y2UtPmNsb25lKCksIG1ha2VSZWYoKm1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkpKSk7Cit9CisK
K3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNldFNob3VsZEFwcGx5Um90YXRpb24o
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBz
aG91bGRBcHBseVJvdGF0aW9uKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5n
ZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RvcCgpOworfQorCit2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdl
dChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMpOworICAg
IGlmICghcmVzdWx0KQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6QXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChpZGVudGlmaWVyLCBzb3Vy
Y2UtPnNldHRpbmdzKCkpKTsKKyAgICBlbHNlCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzRmFpbGVkKGlkZW50
aWZpZXIsIHJlc3VsdC0+YmFkQ29uc3RyYWludCwgcmVzdWx0LT5tZXNzYWdlKSk7Cit9CisKK3Zv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNv
dXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVxdWVz
dFRvRW5kKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzhkMDQxM2M1ZGU4NGZiMzQwNjdjNTA3MTE3ZGVmMDQzZjAxZGY1
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTYW5kYm94
RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9PcmllbnRhdGlvbk5vdGlmaWVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBDYXB0dXJlRGV2aWNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOworY2xh
c3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczsKK3N0cnVjdCBNZWRpYUNvbnN0cmFp
bnRzOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2Vu
ZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcigpOworICAgIH5SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigp
OworCitwcml2YXRlOgorICAgIC8vIE1lc3NhZ2VzCisgICAgdm9pZCBhZGRTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlk
Q29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpPiYmKTsKKyAgICB2b2lkIHJl
bW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGNsb25lU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG9y
aWdpbmFsSWRlbnRpZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
bmV3SWRlbnRpZmllcik7CisgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBib29sIHNob3VsZEFwcGx5Um90YXRpb24p
OworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOworICAgIHZvaWQg
cmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyNp
ZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5z
aW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiYpOworICAgIHZvaWQgcmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKTsKKyNlbmRpZgorCisgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVz
c2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkgY29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQo
KSBjb25zdCBmaW5hbDsKKworICAgIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CisgICAgZnJp
ZW5kIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2U7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiBtX3NvdXJjZXM7CisgICAgV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllciBtX29y
aWVudGF0aW9uTm90aWZpZXIgeyAwIH07CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05T
KQorICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NE
OworICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNy
b3Bob25lOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5ZWRiYjkwZGVjM2Zj
NzkyZTllMmE1MmEwZmMzYzQwNTdmNDEyNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDQ0IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgQWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Ug
ZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
IGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRz
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKSBBc3luYworICAg
IFJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyKQorICAgIFN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpOworICAgIFN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllcik7CisKKyAgICBDbG9uZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZpZXIpCisgICAgU2V0U2hvdWxkQXBwbHlS
b3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCisgICAgQXBwbHlDb25zdHJhaW50cyhXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykKKyAgICBSZXF1ZXN0VG9FbmQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKworI2lmIEVOQUJM
RShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhXZWJLaXQ6
OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yVENDRCwg
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZv
ck1pY3JvcGhvbmUpCisgICAgUmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorI2VuZGlmCit9CisK
KyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2MzcyYjliODNkNmUwNWUyZWI4
M2RlM2Q3MGNlNTUzNDQ1YjhhYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMCwwICsxLDM0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNlbmRpZgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworc3RhdGljIGlubGluZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlIHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlIGRldmljZVR5cGUpCit7CisgICAgc3dpdGNoIChkZXZpY2VUeXBlKSB7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87
CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKKyAgICBj
YXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7Cit9CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
IGNhcHR1cmVEZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFp
bnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBj
b25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKK30KKworLyog
UmVtb3RlcmVhbHRpbWVtZWRpYXNvdXJjZSBpbiBzcGVlY2ggcmVjb2duaXRpb24KKyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShkZXZpY2VUeXBl
KSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZp
Y2UucGVyc2lzdGVudElkKCkgfSkKKyovCitSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2Vy
LCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIE9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyPiBvcmlnaW5hbElkZW50aWZpZXIpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlKHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShjYXB0dXJlRGV2aWNlLnR5cGUoKSksIFdURk1v
dmUobmFtZSksIFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9VSW50NjQoKSksIFdURk1vdmUo
aGFzaFNhbHQpKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFn
ZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX2NhcHR1cmVEZXZpY2UoY2FwdHVyZURl
dmljZSkKKyAgICAsIG1fY29uc3RyYWludHMoY29uc3RyYWludHMpCisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkKKyNlbmRp
ZgoreworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzd2l0Y2ggKG1fY2FwdHVyZURl
dmljZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRo
aXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkNhbWVyYToKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgq
dGhpcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6V2luZG93OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmICghb3JpZ2luYWxJZGVudGlmaWVyKSB7CisgICAg
ICAgIG1fbWFuYWdlci0+YWRkU291cmNlKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fbWFuYWdlci0+YWRkU291cmNlRnJvbUNsb25lKCp0aGlzLCAqb3JpZ2luYWxJZGVu
dGlmaWVyKTsKK30KKworUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoKQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3dpdGNoICht
X2NhcHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3Rp
dmVTb3VyY2UoKnRoaXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0
QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKG1fbWFuYWdlcikKKyAg
ICAgICAgbV9tYW5hZ2VyLT5yZW1vdmVTb3VyY2UoKnRoaXMpOworfQorCit2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1fbWFu
YWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6U3RhcnQgeyBtX2lkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFn
ZXIpCisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlN0b3AgeyBtX2lkZW50aWZpZXIgfSk7Cit9CisKKyNpZiBQTEFURk9STShDT0NP
QSkKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNo
YXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAg
IG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+
IG1lbW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtZW1vcnkgPSBT
aGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9u
bHkpOworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBm
b3IgcmVtb3RlIHNvdXJjZSIpOworICAgIH0KKworICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNf
Y2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsK
KyAgICBpZiAoIW1lbW9yeSkgeworICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsK
KyAgICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2Uuc2V0
U3RvcmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0b3JhZ2Uu
c2V0U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAgc3RvcmFnZS5zZXRSZWFk
T25seSh0cnVlKTsKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7CisgICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OldlYkF1ZGlv
QnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCgpCit7
CisgICAgY2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnJlbW90ZVNvdXJjZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKworLy8gV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZQordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp3
aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKQorewor
ICAgIGlmIChtX2lzUmVhZHkpCisgICAgICAgIHJldHVybiBjYWxsYmFjayhXVEZNb3ZlKG1fZXJy
b3JNZXNzYWdlKSk7CisgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOworfQorCit2
b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEFzUmVhZHkoKQoreworICAgIG1faXNS
ZWFkeSA9IHRydWU7CisgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgIG1fY2FsbGJhY2soeyB9
KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpkaWRGYWlsKFN0cmluZyYm
IGVycm9yTWVzc2FnZSkKK3sKKyAgICBtX2lzUmVhZHkgPSB0cnVlOworICAgIG1fZXJyb3JNZXNz
YWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOworICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAg
ICBtX2NhbGxiYWNrKG1fZXJyb3JNZXNzYWdlKTsKK30KKworUmVmPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lKCkKK3sKKyAgICBz
d2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Vmlk
ZW86CisgICAgICAgIHJldHVybiBjbG9uZVZpZGVvU291cmNlKCk7CisgICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIGNh
c2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9Cit9CisKK1JlZjxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZVZp
ZGVvU291cmNlKCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikgeworICAgICAgICBMT0dfRVJST1Io
IlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2UgbWFuYWdlciBkb2Vz
IG5vdCBleGlzdCIpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgYXV0byBp
ZGVudGlmaWVyID0gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVy
YXRlKCk7CisgICAgYXV0byBsYWJlbCA9IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKTsKKyAg
ICBhdXRvIGNsb25lU291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKGlkZW50aWZpZXIsICptX21hbmFnZXIsIG1fY2FwdHVyZURldmljZSwgbV9jb25zdHJhaW50
cywgU3RyaW5nIHsgbGFiZWwgfSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX2lkZW50aWZpZXIpKTsK
KyAgICBjbG9uZVNvdXJjZS0+c2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzIHsgbV9zZXR0aW5ncyB9KTsKKyAgICByZXR1cm4gY2xvbmVTb3VyY2U7Cit9CisK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCit7CisgICAg
bV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7Cit9CisKK3ZvaWQgUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCit7CisgICAgYXV0byBjaGFuZ2VkID0gbV9zZXR0aW5n
cy5kaWZmZXJlbmNlKHNldHRpbmdzKTsKKyAgICBtX3NldHRpbmdzID0gV1RGTW92ZShzZXR0aW5n
cyk7CisgICAgbm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMoY2hhbmdlZCk7Cit9CisK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxh
YmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3Rh
cnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
aWYgKCFtX2J1ZmZlcikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZlciBmb3IgcmVtb3RlIHNv
dXJjZSBpcyBudWxsIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7
CisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5k
RnJhbWUpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVy
T2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0
aW1lLCAqbV9idWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7
CisgICAgVU5VU0VEX1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShlbmRGcmFt
ZSk7CisjZW5kaWYKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90
ZVZpZGVvU2FtcGxlJiYgcmVtb3RlU2FtcGxlKQoreworICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlw
ZTo6VmlkZW8pOworCisgICAgc2V0SW50cmluc2ljU2l6ZShyZW1vdGVTYW1wbGUuc2l6ZSgpKTsK
KworICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uLT5waXhlbEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQorICAgICAg
ICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y3JlYXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKKworICAgIGlmICghbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc2FtcGxlUmVmID0gbV9pbWFnZVRyYW5zZmVy
U2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUocmVtb3RlU2FtcGxlKTsKKyAgICBpZiAoIXNhbXBs
ZVJlZikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpz
YW1wbGVSZWYpOworfQorCisjZW5kaWYKKworYm9vbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKK3sKKyAg
ICBpZiAobV9tYW5hZ2VyKSB7CisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNzYWdlczo6UmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNldFNob3VsZEFwcGx5Um90YXRpb24obV9pZGVudGlm
aWVyLCBzaG91bGRBcHBseVJvdGF0aW9uKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
YXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJh
aW50cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wZW5kaW5nQXBwbHlD
b25zdHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIC8vIEZJWE1FOiBVc2Ugc2VuZEFzeW5jV2l0aFJlcGx5LgorICAgIG1fbWFuYWdlci0+c2Vu
ZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFwcGx5Q29uc3RyYWludHMg
eyBtX2lkZW50aWZpZXIsIGNvbnN0cmFpbnRzIH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICBzZXRTZXR0aW5ncyhX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Moc2V0dGluZ3MpKTsKKyAgICBhdXRv
IGNhbGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3Qo
KTsKKyAgICBjYWxsYmFjayh7IH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3Ry
aW5nJiYgZXJyb3JNZXNzYWdlKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBs
eUNvbnN0cmFpbnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOworICAgIGNhbGxiYWNrKEFwcGx5Q29u
c3RyYWludHNFcnJvciB7IFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JN
ZXNzYWdlKSB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVp
bmdPYnNlcnZlZCgpCit7CisgICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6UmVxdWVzdFRvRW5kIHsgbV9pZGVudGlmaWVyIH0pOworfQorCit2
b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChPYnNlcnZlciYgb2Jz
ZXJ2ZXIpCit7CisgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICBjYXNlIFR5cGU6OkF1ZGlvOgor
ICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQob2JzZXJ2ZXIpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFR5cGU6OlZpZGVvOgorICAgICAgICBzdG9wQmVpbmdPYnNl
cnZlZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGU6Ok5vbmU6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEyZjE0OWM3YWYyMTQ2NDU4ZWIwYzI2
NTIwM2Y5MmQ4MmI1MzA5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDEwOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgQ2FwdHVyZURldmljZTsKK2NsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjsKKworY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIH5S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CisgICAgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY2FwdHVyZURldmljZTsgfTsKKyAgICBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWludHM7
IH07CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hh
cmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKyAgICB2b2lkIHJlbW90ZUF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1
aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCByZW1vdGVD
YXB0dXJlRmFpbGVkKCk7CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKCk7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsgLy8gQWRkZWQKKyNlbmRpZgorCisgICAgdm9pZCBhcHBs
eUNvbnN0cmFpbnRzU3VjY2VlZGVkKGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyYpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWls
ZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOworICAgIHZvaWQgZGlkRmFpbChT
dHJpbmcmJiBlcnJvck1lc3NhZ2UpOworICAgIHZvaWQgc2V0QXNSZWFkeSgpOworICAgIHZvaWQg
c2V0Q2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
Jik7CisgICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmJik7CisgICAgCitwcml2YXRlOgorICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgT3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI+IG9yaWdp
bmFsSWRlbnRpZmllciA9IFdURjo6bnVsbG9wdCk7CisgICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U+IGNsb25lVmlkZW9Tb3VyY2UoKTsKKyAgICAKKyAgICAvLyBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsK
KyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyBy
ZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQor
ICAgIGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sKSBmaW5hbDsKKyAgICB2b2lkIHJl
cXVlc3RUb0VuZChPYnNlcnZlciYpIGZpbmFsOworICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQo
KSBmaW5hbDsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQg
d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7CisgICAg
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkgZmluYWw7CisKKyAgICBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9tYW5hZ2VyOworICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7CisgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisgICAgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSBtX2NhcHR1cmVEZXZpY2U7CisgICAgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyBtX2NvbnN0cmFpbnRzOworCisgICAgRGVxdWU8QXBwbHlDb25zdHJhaW50c0hhbmRs
ZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CisgICAgYm9vbCBtX2lzUmVh
ZHkgeyBmYWxzZSB9OworICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKKyAgICBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24gbV9kZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVm
ZmVyPiBtX3JpbmdCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlv
QnVmZmVyTGlzdD4gbV9idWZmZXI7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3
OWRhYmIzNGU1NTNmN2Y3NTZkZGQ2MWIyYzUwZGE2NDE3ODdmY2UKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHAKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCit7Cit9CisK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291
cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlm
aWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cihzb3VyY2Up
KTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisgICAgaWYgKCFtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworICAgICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yVENDRDsKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnRjY2QiX3Ms
IG1fY29ubmVjdGlvbi0+Z2V0QXVkaXRUb2tlbigpLCBoYW5kbGVGb3JUQ0NEKTsKKyAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvck1pY3JvcGhvbmU7CisgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBs
ZS53ZWJraXQubWljcm9waG9uZSJfcywgaGFuZGxlRm9yTWljcm9waG9uZSk7CisgICAgICAgIHNl
bmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpHcmFudFNhbmRib3hFeHRl
bnNpb25zKGhhbmRsZUZvclRDQ0QsIGhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyAgICAgICAgbV9o
YXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgPSB0cnVlOworICAgIH0KKyNlbmRpZgorCisgICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
QWRkU291cmNlKGlkZW50aWZpZXIsIHNvdXJjZS5jYXB0dXJlRGV2aWNlKCksIHNvdXJjZS5kZXZp
Y2VJREhhc2hTYWx0KCksIHNvdXJjZS5jb25zdHJhaW50cygpKSwgW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyksIGlkZW50aWZpZXJdKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJy
b3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMpIHsKKyAgICAg
ICAgYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpOworICAgICAgICBpZiAo
IXNvdXJjZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXN1Y2NlZWRlZCkg
eworICAgICAgICAgICAgc291cmNlLT5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzb3VyY2UtPnNldE5hbWUo
U3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKKyAgICAgICAgc291cmNlLT5z
ZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0Q2FwYWJp
bGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0QXNSZWFk
eSgpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjphZGRTb3VyY2VGcm9tQ2xvbmUoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIp
Cit7CisgICAgQVNTRVJUKG1fc291cmNlcy5jb250YWlucyhvcmlnaW5hbElkZW50aWZpZXIpKTsK
KyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVCgh
bV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50
aWZpZXIsIG1ha2VXZWFrUHRyKHNvdXJjZSkpOworCisgICAgLy8gVE9ETzogYWRkIHRoaXMgdG8g
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OkNsb25lU291cmNlIHsgb3JpZ2luYWxJZGVudGlmaWVyLCBpZGVu
dGlmaWVyIH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1
dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fc291cmNl
cy5nZXQoaWRlbnRpZmllcikgPT0gJnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVu
dGlmaWVyKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisgICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkgJiYgbV9oYXNHcmFudGVk
U2FuZGJveEV4dGVuc2lvbnMpIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOworICAgICAgICBtX2hh
c0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0KKyNlbmRpZgorCisgICAg
c2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW92ZVNvdXJjZShp
ZGVudGlmaWVyKSk7Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRs
ZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAoYXV0byBzb3Vy
Y2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnNldFN0b3Jh
Z2UoaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKwor
I2VuZGlmCisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAg
IGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzLCBz
dGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJj
ZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUNhcHR1cmVGYWlsZWQo
KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291
cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikp
CisgICAgICAgIHNvdXJjZS0+cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5l
Y3Rpb24qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKK30KKwor
dWludDY0X3QgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJE
ZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQoreworICAgIGlmIChh
dXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+
YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChzZXR0aW5ncyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgZmFpbGVk
Q29uc3RyYWludCwgU3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBt
X3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShtZXNzYWdlKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWU1OWM4ZDA5NjI1YjJmYzY5MjRiN2VjNTkzNzA4MWQyZGZkNjVi
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1l
c3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJT
aGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworY2xhc3MgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzOworCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CisKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgSVBDOjpN
ZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
Jik7CisgICAgdm9pZCBhZGRTb3VyY2VGcm9tQ2xvbmUoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZSYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJl
bW92ZVNvdXJjZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJik7CisKK3ByaXZhdGU6CisgICAg
Ly8gTWVzc2FnZXMKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5k
RnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGFwcGx5Q29uc3Ry
YWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAgIHZvaWQgYXBw
bHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgU3RyaW5nJiYsIFN0cmluZyYmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNl
dFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNo
YXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2Vu
ZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25z
dCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0
IGZpbmFsOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhh
c2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fc291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRl
ZFNhbmRib3hFeHRlbnNpb25zIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYmIwNTIxYWQ5OTE1NDhlN2Q1ZjBjOTY3ODg3YmU1NTA4ZDhjZTkxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0MCBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKK21lc3NhZ2VzIC0+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNv
dW50ZWQgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFN0b3JhZ2UoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24gZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorI2VuZGlmCisKKyAg
ICBSZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICBSZW1v
dGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCisgICAgUmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorCisgICAgQXBwbHlDb25zdHJhaW50c1N1Y2Nl
ZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCisgICAgQXBwbHlD
b25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBTdHJpbmcgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nIG1lc3NhZ2UpCit9CisK
KyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwOTE3ZjAxYmUxYzlmOGNhYTJhYmY3ZjBmODkwZjg5
NWEzZjJlZjg2Li5hNjc1NDUwY2UxODc2ZDIwMDA4ZGE1YzNiM2ExMDAzM2I2MmJiYmM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKQEAgLTI3Nyw2ICsyNzcsMTAgQEAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1
Z2luSW5mb3JtYXRpb24uY3BwIEBuby11bmlmeQogCiBTaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGEuY3BwCiAKK1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAK
K1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorU2hhcmVkL21lZGlh
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorCiBVSVByb2Nlc3MvQXV4aWxp
YXJ5UHJvY2Vzc1Byb3h5LmNwcAogVUlQcm9jZXNzL0JhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2
ZW5lc3NUaW1lci5jcHAKIFVJUHJvY2Vzcy9EZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAppbmRleCA0ZWE4Yjc4MWQyMGE4MWEwOGU0NGI0NGRiYTBiNThmMjFi
ZDZmOTczLi42OWNlNTFhN2NjMTczMTE3N2JiZDIzMmI2NmY0YWUxM2NkYzdjZDg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CkBAIC01NjYsMTAgKzU2NiwxMCBAQCBXZWJQcm9jZXNzL0FwcGxlUGF5
L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvckNvY29hLm1tCiAKIFdlYlByb2Nlc3MvY29jb2Ev
UGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlci5jcHAKLVdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAKIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCiBX
ZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KIFdlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCitXZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCiAKIFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNl
L1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKaW5kZXggOWY2MDBkM2Y1Y2Rj
NmMzMmM1NDhhMGEwOWFiMDJiYzE0NTM0NTI0NC4uMDJhYjZjMjdlMWVmYmRiNjMwMjY0NWFlZTlj
ZDUxYzhjOWMxNWFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtOTMsNiArOTMsMzYgQEAgdm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24KICAgICAgICAgfSk7CiAgICAgfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6
OmZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7CisgICAgICAg
IG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICBzZW5kVXBkYXRl
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlv
Q2FwdHVyZSwgIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH0pKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVG
dW5jdGlvbikgeworICAgICAgICBhdXRvIHJlYWx0aW1lU291cmNlID0gbV9yZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb24oKmNhcHR1cmVEZXZpY2UpOworICAgICAgICBpZiAoIXJlYWx0
aW1lU291cmNlKSB7CisgICAgICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlm
aWVyKTsKKyAgICAgICAgICAgIHNlbmRVcGRhdGUoU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiRmFpbGVkIHRvIGNyZWF0ZSBy
ZWFsdGltZSBzb3VyY2UiIH0pKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIsIG1ha2VSZWYoKnJlYWx0
aW1lU291cmNlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHNvdXJjZU9y
RXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVk
aWFTb3VyY2UoKmNhcHR1cmVEZXZpY2UpOworICAgIGlmICghc291cmNlT3JFcnJvcikgeworICAg
ICAgICBtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKyAgICAgICAgc2VuZFVw
ZGF0ZShTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpB
dWRpb0NhcHR1cmUsIHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlIH0pKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllciwg
c291cmNlT3JFcnJvci5zb3VyY2UoKSk7CisgICAgcmV0dXJuOworI2VuZGlmCisKICAgICBtX3Jl
Y29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAppbmRleCBhN2Y3NmQzOGVl
NTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li5jMjljM2E3MjQ3ZThlMWY0MjIyZGNkYjBk
Y2M2ZDE1NzAwYjQwZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTU3LDYgKzU3LDExIEBAIHB1YmxpYzoKICAgICB2b2lk
IGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIpOwogICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
dXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gRnVuY3Rpb248UmVmUHRy
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmKT47CisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oUmVh
bHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYgZnVuY3Rpb24pIHsgbV9yZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorI2VuZGlmCisK
IHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CiAgICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwpAQCAtNzUs
NiArODAsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9wZXJtaXNzaW9uQ2hlY2tlcjsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOworCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24g
bV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggZTdkOWNkZmU1NTM1YzI3YzQ1MDRmMDEwYTZlZGY4ZTRjNWUzY2E2YS4uMDU0
ODFmYmZjMjE4NTQ0YTU5NmYyMDA4MWU5ZmE4NWUyOTA3NTkxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVk
ZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIK
ICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRl
eHRDaGVja2VyLmgiCkBAIC0xNzAyLDggKzE3MDUsOCBAQCBQQUw6OlNlc3Npb25JRCBXZWJQcm9j
ZXNzUHJveHk6OnNlc3Npb25JRCgpIGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVh
dGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9z
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cik7Ci0gICAg
QVNTRVJUKHNwZWVjaFJlY29nbml0aW9uU2VydmVyLmlzTmV3RW50cnkpOworICAgIEFTU0VSVCgh
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAg
YXV0byYgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVy
TWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgV2ViUGFn
ZVByb3h5KiB0YXJnZXRQYWdlID0gbnVsbHB0cjsKICAgICBmb3IgKGF1dG8qIHBhZ2UgOiBwYWdl
cygpKSB7CiAgICAgICAgIGlmIChwYWdlICYmIHBhZ2UtPndlYlBhZ2VJRCgpID09IGlkZW50aWZp
ZXIpIHsKQEAgLTE3MTUsNyArMTcxOCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAgICAg
aWYgKCF0YXJnZXRQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBzcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtl
V2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRs
ZXIpIG11dGFibGUgeworICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbWFrZVVuaXF1ZTxT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmll
ciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0
byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrUGFnZSkg
ewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uRGVjaXNpb246OkRlbnkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTcyMyw3ICsxNzI2
LDIxIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAKICAgICAgICAgd2Vha1BhZ2UtPnJlcXVl
c3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiAgICAgfSk7Ci0gICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAq
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlKTsKKyAgICBhZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlcik7CisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHdlYWtQYWdlID0gbWFrZVdlYWtQdHIo
dGFyZ2V0UGFnZSldKGF1dG8mIGRldmljZSkgLT4gUmVmUHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgICAgIGlmICghd2Vha1BhZ2UgfHwgd2Vha1BhZ2UtPnByZWZlcmVuY2Vz
KCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICAgICAgYXV0byYgc291cmNlTWFuYWdlciA9IGVuc3VyZVJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMgY29uc3RyYWludHM7CisgICAgICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjcmVhdGUoc291cmNlTWFuYWdlciwgZGV2aWNlLCBjb25zdHJhaW50cywgU3RyaW5nIHsg
ZGV2aWNlLmxhYmVsKCkgfSwgeyB9KTsKKyAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTczMyw2ICsxNzUwLDIwIEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVuCiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5y
ZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzc1Byb3h5OjplbnN1cmVSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKSB7CisgICAgICAgIG1fcmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
PihtYWtlUmVmKCpjb25uZWN0aW9uKCkpKTsKKyAgICAgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCAqbV9yZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik7CisgICAgfQorCisg
ICAgcmV0dXJuICptX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorCisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFy
dEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGMxMGIzOTQ4ZDc3Njc2MzcxNGQxNjQ3OWI1
OTM2MjgyYTY5NzMzZGEuLmUxMWM3YjE4YjhlODg2ZWQzMjk3MjBkZDBmNzU0ZDg4NWY0Yjg2OGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMDMsNiAr
MTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlBy
ZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYK
KwogZW51bSBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBlIHsgfTsKIHR5cGVkZWYgUmVm
Q291bnRlcjxGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBlPiBGb3JlZ3JvdW5kV2ViUHJv
Y2Vzc0NvdW50ZXI7CiB0eXBlZGVmIEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlcjo6VG9rZW4g
Rm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbjsKQEAgLTUwNSw2ICs1MDksOSBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgogCiAgICAgdm9pZCBzeXN0
ZW1CZWVwKCk7CiAgICAgCkBAIC02NDMsNiArNjUwLDkgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5n
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+
OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fcmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODAzNzA0MDRl
NDlhNzhkOGFiZTczMjJhNzhlYzkyZmMxYzBiYTBhMi4uZWZiYzBjYmE4OWMyNjNhN2Y4ZjM1MTUx
NThmMGNmOGY2MzY2NjhmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xNDA0LDYgKzE0MDQsMTYgQEAKIAkJOTE5Nzk0MDgyM0RCQzRD
QjAwMjU3ODkyIC8qIFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5NDA3MjNEQkM0Q0EwMDI1Nzg5MiAv
KiBXZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmggKi87IH07CiAJCTkxOTc5NDBBMjNEQkM0RTAw
MDI1Nzg5MiAvKiBBUElJbnNwZWN0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5NDA5MjNEQkM0RTAwMDI1Nzg5MiAvKiBBUElJbnNw
ZWN0b3JDbGllbnQuaCAqLzsgfTsKIAkJOTE5Nzk0MEMyM0RCQzUwMzAwMjU3ODkyIC8qIF9XS0lu
c3BlY3RvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MTk3OTQwQjIzREJDNTAzMDAyNTc4OTIgLyogX1dLSW5zcGVjdG9yRGVsZWdhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzAw
M0VGRjI1NzhDRDYxMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNFRjgyNTc4QzRF
MzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJOTMwMDNG
MDAyNTc4Q0Q2NTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0VGQTI1
NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLzsg
fTsKKwkJOTMwMDNGMDEyNTc4Q0Q2NzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAw
M0VGQzI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLzsg
fTsKKwkJOTMwMDNGMDQyNTc4RDdCQjAwRjJBM0RBIC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MDAzRjAyMjU3OEQ3QTcwMEYyQTNEQSAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgg
Ki87IH07CisJCTkzMDAzRjBFMjU3OERBMzgwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzAwM0YwQzI1NzhEOUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQk5MzAwM0YwRjI1NzhEQjA2MDBG
MkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNGMDcyNTc4
RDk4QjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKKwkJOTMwMDNGMTAyNTc4REIwODAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMDAzRjA5MjU3OEQ5OEMwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkzMDAzRjExMjU3OERCMEEwMEYyQTNEQSAv
KiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNGMDYyNTc4RDk4QjAwRjJB
M0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07
CisJCTkzMDAzRjEyMjU3OERCMEMwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwQjI1NzhEOUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk5MzAwM0Yx
MzI1NzhEQjEyMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMDAzRjBEMjU3OEQ5RUUwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQk5MzIxRDU4NjFBMzhFRTNDMDA4MDUy
QkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIxRDU4NTFBMzhFRTNDMDA4MDUyQkUgLyogV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmggKi87IH07CiAJCTkzMjFENThBMUEzOEYxOTYwMDgw
NTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIxRDU4OTFBMzhGMTk2MDA4MDUyQkUgLyogV0tJbW1l
ZGlhdGVBY3Rpb25UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzMjM2MTFFMUIwMTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xs
YmFyU3R5bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMjM2MTFEMUIwMTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzU2Niw4
ICszNTc2LDYgQEAKIAkJNDE2ODRDNEQyNDY0M0JGQTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTY4NEM0RTI0NjQzQzgxMDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2ODRDNEYyNDY0M0Qz
RjAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE2ODRDNTAyNDY0NTBGRDAwMUNFOEVEIC8q
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTQxNjg0QzUxMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2Q0Q3
NDUyM0ZCMTc4QjAwNjYxRDk5IC8qIE1ETlNSZWdpc3RlcklkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTUROU1JlZ2lzdGVySWRlbnRpZmllci5oOyBwYXRoID0g
TmV0d29yay93ZWJydGMvTUROU1JlZ2lzdGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTZGODA4NjI0NUIzOTc0MDBCNjhGMDIgLyogTGliV2ViUlRDTmV0d29y
ay5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBMaWJXZWJSVENOZXR3b3JrLm1l
c3NhZ2VzLmluOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RjgwODkyNDVDN0ZGNTAwQjY4
RjAyIC8qIExpYldlYlJUQ05ldHdvcmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gTGliV2ViUlRDTmV0d29yay5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENOZXR3b3JrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ1NjAsNiAr
NDU2OCwyMiBAQAogCQk5MTk3OTQwNzIzREJDNENBMDAyNTc4OTIgLyogV2ViUGFnZUluc3BlY3Rv
ckFnZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlSW5z
cGVjdG9yQWdlbnRCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxOTc5NDA5
MjNEQkM0RTAwMDI1Nzg5MiAvKiBBUElJbnNwZWN0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQVBJSW5zcGVjdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkxOTc5NDBCMjNEQkM1MDMwMDI1Nzg5MiAvKiBfV0tJbnNwZWN0b3JEZWxl
Z2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJbnNwZWN0b3JEZWxl
Z2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0VGNzI1NzhDNEUzMDBG
MkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0VGODI1NzhDNEUzMDBG
MkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzMDAzRUY5MjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzAwM0VGQTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNF
RkIyNTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAw
M0VGQzI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRkQyNTc4Q0M0OTAwRjJBM0RB
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0VGRTI1NzhDQzRBMDBGMkEzREEgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzAwM0YwMjI1NzhEN0E3MDBGMkEzREEgLyogV2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAz
RjAzMjU3OEQ3QTgwMEYyQTNEQSAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwNjI1NzhE
OThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMw
MDNGMDcyNTc4RDk4QjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMDkyNTc4RDk4QzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzAwM0YwQjI1NzhEOUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwQzI1NzhEOUVE
MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjBE
MjU3OEQ5RUUwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzIxRDU4NTFBMzhFRTNDMDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzIx
RDU4NzFBMzhFRTc0MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzIxRDU4OTFBMzhG
MTk2MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC02MjUzLDYgKzYyNzcsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQw
MEREN0M2OCAvKiBHYW1lcGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBp
b3MgKi8sCiAJCQkJQkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQk5MzAw
M0VGNjI1NzhDNDUwMDBGMkEzREEgLyogbWVkaWEgKi8sCiAJCQkJMUFBRTA1OEMxMjc5RENENDAw
ODUyNDE4IC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQyRTA0NzYxRjVCRUM0RjAwQkIyNUVEIC8qIFJl
bW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUJGNDM3ODFBMzY4MDM1MDAzRkIwRTYgLyogV2Vic2l0
ZURhdGEgKi8sCkBAIC04Nzk0LDggKzg4MTksNiBAQAogCQkJCTQxNjg0QzRGMjQ2NDNEM0YwMDFD
RThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgKi8sCiAJCQkJNDE2ODRDNEUy
NDY0M0M4MTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggKi8sCiAJCQkJ
NDE2ODRDNEQyNDY0M0JGQTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1l
c3NhZ2VzLmluICovLAotCQkJCTQxNjg0QzUwMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcCAqLywKLQkJCQk0MTY4NEM1MTI0NjQ1MEZEMDAxQ0U4RUQgLyog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovLAogCQkJCUNENDkxQjA1MUU3MEQwNUYwMDAw
OTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q0OTFCMDYxRTcw
RDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi8sCiAJCQkJQ0Q0OTFC
MEExRTczMkQxMjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovLApAQCAtODgwMyw2ICs4ODI2LDggQEAKIAkJCQk1MkQ1QTFCMzFDNTc0OUYyMDBERTM0QTMg
LyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk1MkQ1QTFCNDFD
NTc0OUYyMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSAqLywKIAkJCQk3QzZF
NzBGOTE4QjJENEEwMDBGMjRFMkUgLyogV2ViUHJvY2Vzc0NvY29hLm1tICovLAorCQkJCTkzMDAz
RjAzMjU3OEQ3QTgwMEYyQTNEQSAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAq
LywKKwkJCQk5MzAwM0YwMjI1NzhEN0E3MDBGMkEzREEgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC04OTYwLDYgKzg5ODUsMjEgQEAKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5MzAwM0VGNjI1NzhDNDUwMDBGMkEzREEgLyog
bWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkz
MDAzRUZFMjU3OENDNEEwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAg
Ki8sCisJCQkJOTMwMDNFRkMyNTc4Q0M0OTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggKi8sCisJCQkJOTMwMDNFRkQyNTc4Q0M0OTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJCTkzMDAzRUY5MjU3OEM0RTQwMEYy
QTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5MzAwM0VGODI1
NzhDNEUzMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovLAorCQkJCTkz
MDAzRUY3MjU3OEM0RTMwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHAgKi8sCisJCQkJOTMwMDNFRkEyNTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJOTMwMDNFRkIyNTc4QzRFNDAwRjJBM0RBIC8q
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsK
KwkJCXBhdGggPSBtZWRpYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTkz
OTI4OEUwMjE0MDRERjAwMEVCQkEzMyAvKiBJbmRleGVkREIgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTA0ODEsNiArMTA1MjEsOSBAQAogCQkJCTFBMDQz
QjVDMTI0RDVFOUQwMEZGQkZCNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAog
CQkJCTFBOEVGQTZFMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJMUE4RUZBNkYxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVz
c2FnZXMuaCAqLywKKwkJCQk5MzAwM0YwNzI1NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzMDAzRjA5MjU3OEQ5
OEMwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJ
CQkJOTMwMDNGMDYyNTc4RDk4QjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJQ0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RENTM1NzUyNDBE
REUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RE
NTM1NzQyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGll
cy5oICovLApAQCAtMTA1MzQsNiArMTA1NzcsOSBAQAogCQkJCTFERDJBNjYxMjU2MTIyRjEwMEZG
N0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJ
MUFDMTMzODMxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKIAkJCQkxQUMxMzM4NDE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2Jq
ZWN0UmVnaXN0cnlNZXNzYWdlcy5oICovLAorCQkJCTkzMDAzRjBCMjU3OEQ5RUQwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CisJCQkJOTMwMDNGMEMyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5MzAwM0YwRDI1NzhEOUVFMDBGMkEzREEgLyog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJ
CQkwRjU5NDdBNTE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTBGNTk0N0E2MTg3QjUxNzYwMDQzNzg1NyAvKiBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NkIyNTYy
MDIxRTAwRkY3QjZGIC8qIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKQEAgLTExNTI5LDYgKzExNTc1LDkgQEAKIAkJCQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2
QTYgLyogUXVhcmFudGluZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMw
QTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUVFNTcyNTI0MDlGMTQyMDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0YwMTI1NzhDRDY3MDBGMkEzREEgLyogUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRjEwMjU3
OERCMDgwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzAwM0YxMTI1NzhEQjBBMDBGMkEzREEgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQz
MTgyMjJCMzUxNUUwMDhEMEU4QiAvKiBSZWRpcmVjdFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTlCMTIyOUQyMjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5Q0QyM0ZG
MjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTExNTY5LDYgKzExNjE4LDEwIEBACiAJCQkJMUE1NzA0RkMxQkUxNzUxMTAwODc0
QUYxIC8qIFJlbW90ZU9iamVjdEludm9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEz
MzgwMTg1OTBBRTQwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFDMTMzODYxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRUZGMjU3OENENjEwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0Yw
MDI1NzhDRDY1MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzMDAzRjBFMjU3OERBMzgwMEYyQTNEQSAvKiBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAw
M0YxMzI1NzhEQjEyMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0NzkwMTg3QjNCM0EwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0NzlCMTg3QjNCNjAwMDQzNzg1NyAvKiBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTExODc0
LDYgKzExOTI3LDcgQEAKIAkJCQkxQTFFMDkzNDE4ODYxRDM4MDBEMkRDNDkgLyogV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4Mzg4MDA2
Mjk1MzAgLyogV2ViUHJvdGVjdGlvblNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjFDQ0NB
NjIzMTQ4NUFBMDBCNjU5QjkgLyogV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzMDAzRjA0MjU3OEQ3QkIwMEYyQTNEQSAvKiBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg2MEU3MTIzMEY2N0ZDMDA0NjFBQUUg
LyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTBBRkZCQTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxRjA2MEUwMTY1NDMxN0YwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMzU5LDYgKzEzNDEzLDcgQEAKIAkJCQkyRDU0
QzMxQjIxMkY0REE2MDA0OUMxNzQgLyogUHJvY2Vzc0xhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBMEMyMjdGMjQ1MTEzMEEwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdT
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMEMyMjVFMjQzNTc1Q0QwMEVENjE0RCAv
KiBRdWlja0xvb2tUaHVtYm5haWxMb2FkZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk5MzAwM0Yw
RjI1NzhEQjA2MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8q
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFE
MDM2OUFFMjU2Nzk2QjkwMDQ0MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMjRBMkQxODc5RTRCQzAwM0FCRjBEIC8q
IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMTMzODAsNiArMTM0MzUsNyBAQAogCQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0Ey
NSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxREQyQTY2MzI1NjEyNDZGMDBGRjdCNkYgLyogUmVtb3RlTWVkaWFTb3Vy
Y2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUMxMzM4NTE4
NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTMwMDNGMTIyNTc4REIwQzAwRjJBM0RBIC8qIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGNTk0N0E3MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxREQyQTY2RTI1NjIw
MjFFMDBGRjdCNkYgLyogUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUQwMzY5QUMyNTY3OTY5OTAwNDQwMzcyIC8qIFJlbW90ZVRl
eHRUcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAppbmRleCAzZjM1MzE5NGEz
MmMzZTY3OWJjYTI5ZmJlYTg1MDMxYzkyMWU0ZmM0Li5jZjI4M2VkMzViNWYwMTNhNzZiY2U5OWZj
NzljMjVjNTAyY2RlZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsMTAgQEAgV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb24K
IHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX2lkZW50aWZpZXIsICp0aGlzKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJv
eHk6OkNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKG1faWRlbnRpZmllciksIDApOworCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiB9CiAKIFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZjJmMjI4MjJjN2IyMjNm
Y2E1OWY5NTU3M2QxMWRjOTliMTAzNDgxMS4uYTM5NDUyNDhmMzZkMzQ3MDU2NWUxMmIzYTZlNjQz
MTcyNThiYmM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
NDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUHJvY2Vzc0Fzc2VydGlvbi5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCkBAIC0xOTY5
LDYgKzE5NzAsMTYgQEAgdm9pZCBXZWJQcm9jZXNzOjplbmFibGVWUDlTV0RlY29kZXIoKQogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXImIFdlYlByb2Nlc3M6OmVuc3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sK
KyAgICBpZiAoIW1fcmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1fcmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyPigpOworCisgICAgcmV0dXJuICptX3JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VT
U0lPTl9JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZTljNDdkYjRj
NDQ3YzBmNGFiNjI3YzA5NGI1ZjY4ZGI1NjVhOWE2Yy4uYTA0MTU1MmQxMTk5MTRjOWNmMjRmZjRj
OTEzOWI4NDg2MDg2NTg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBA
IC0xNDIsNiArMTQyLDEwIEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIGNs
YXNzIExheWVySG9zdGluZ0NvbnRleHQ7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBjbGFzcyBX
ZWJQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3MKIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKQEAgLTM2MCw2ICszNjQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkV3Jp
dGVUb1Bhc3RlYm9hcmRBc3luY2hyb25vdXNseShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciYgZW5zdXJlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRp
ZgorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJvY2VzcygpOwpAQCAt
NjkzLDYgKzcwMSwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92cDlEZWNvZGVyRW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZwOVNXRGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9OwogI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9yZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNl
bmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cAppbmRleCA1YjNlNzAwZTA5NThlMmZiZDU2OTE3ODA0MjcxZGVkYzk0ZmM1ZTQ5Li4yYTExMzIz
MTIxNDcxNWRiODcxY2NhNDUwYWJkNjcxMzFlNDZhMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6
c2V0Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiAgICAgICAgIG1fY29u
bmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKIH0KIAotdm9pZCBS
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlPiYmIHNvdXJjZSkKK3ZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmFk
ZFNvdXJjZShSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiB7CiAg
ICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKICAgICBzZXRDb25uZWN0aW9uKHNvdXJj
ZS0+Y29ubmVjdGlvbigpKTsKQEAgLTExMSw5ICsxMTEsOSBAQCB2b2lkIFJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdQogICAgIGl0ZXJhdG9yLT52YWx1ZS0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51
bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7CiB9CiAKLVJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYgc291cmNlKQorUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90
ZUF1ZGlvOjpSZW1vdGVBdWRpbyhSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBz
b3VyY2UpCiAgICAgOiBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCi0gICAgLCBtX3JpbmdCdWZm
ZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2U+KG51bGxwdHIpKSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
bnVsbHB0cikpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCmluZGV4IDZmYjRiYzM3Yjkz
ODAxNmZjZTVjNWM1YWM1YTQzNzAyN2YxODZiZTQuLmFlMGE2ZTBmYzg5YTkyYWVkMWY4NzdjODYw
YWE2YWNiZmVjMDdmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCkBAIC0yOSw4ICsyOSw4IEBA
CiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
Ci0jaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIlNoYXJl
ZE1lbW9yeS5oIgorI2luY2x1ZGUgIldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ0FSaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxp
c3QuaD4KQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIFJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyKCk7CiAgICAgflJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCk7CiAKLSAgICB2b2lk
IGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisgICAgdm9pZCBh
ZGRTb3VyY2UoUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIHZvaWQg
cmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jik7CkBAIC02MywxMyArNjMsMTMgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBSZW1vdGVBdWRpbyB7
CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAg
ZXhwbGljaXQgUmVtb3RlQXVkaW8oUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwor
ICAgICAgICBleHBsaWNpdCBSZW1vdGVBdWRpbyhSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZT4mJik7CiAKICAgICAgICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6
SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMpOwogICAgICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShN
ZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1
aW50NjRfdCBlbmRGcmFtZSk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWY8UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgICAgIFJlZjxXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKICAgICAgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4gbV9idWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmOWMyYWFkMDkxOTYyZTM1OTZlZjg5
M2IzNTljMWQxZDY4NGFlMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzEwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oIgotCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNp
bmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKLSNpbmNs
dWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJh
aW50cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVy
TGlzdC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci11c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1h
bmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLXsKLSAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLnR5cGUoKSwgV1RGTW92ZShuYW1l
KSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
KTsKLSAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKLSAgICBzb3VyY2Ut
PmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoc291cmNlLT5pZGVudGlmaWVyKCksIGRldmljZSwgc291cmNlLT5kZXZpY2VJREhh
c2hTYWx0KCksIGNvbnN0cmFpbnRzKSwgW3NvdXJjZSA9IHNvdXJjZS5jb3B5UmVmKCldKGJvb2wg
c3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBj
YXBhYmlsaXRpZXMpIHsKLSAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKLSAgICAgICAgICAgIHNv
dXJjZS0+ZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgICAgIHNvdXJjZS0+c2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5s
YWJlbCgpLnN0cmluZygpIH0pOwotICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUo
c2V0dGluZ3MpKTsKLSAgICAgICAgc291cmNlLT5zZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBh
YmlsaXRpZXMpKTsKLSAgICAgICAgc291cmNlLT5zZXRBc1JlYWR5KCk7Ci0gICAgfSk7Ci0gICAg
cmV0dXJuIHNvdXJjZTsKLX0KLQotc3RhdGljIGlubGluZSBSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRl
dmljZVR5cGUpCi17Ci0gICAgc3dpdGNoIChkZXZpY2VUeXBlKSB7Ci0gICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICByZXR1cm4gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpDYW1lcmE6Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46
Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6Ci0gICAgICAgIHJl
dHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKLSAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpVbmtub3duOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0g
ICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7Ci19Ci0KLVJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBk
ZXZpY2VUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAg
ICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZyb21EZXZpY2VUeXBlKGRldmljZVR5
cGUpLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVyLnRvVUludDY0KCkp
LCBXVEZNb3ZlKGhhc2hTYWx0KSkKLSAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAg
ICwgbV9tYW5hZ2VyKG1hbmFnZXIpCi0gICAgLCBtX2RldmljZVR5cGUoZGV2aWNlVHlwZSkKLSAg
ICAsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyhzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KQotewotICAgIHN3aXRjaCAobV9kZXZpY2VUeXBlKSB7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZh
Y3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlm
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2Ny
ZWVuOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6Ci0g
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci19Ci0KLVJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKLXsKLSAgICBzd2l0Y2ggKG1fZGV2aWNlVHlw
ZSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRo
aXMpOwotI2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6Q2FtZXJhOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51
bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46Ci0gICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OlVua25vd246Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0K
LX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp3aGVuUmVhZHkoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKQotewotICAgIGlmIChtX2lzUmVhZHkp
Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayhXVEZNb3ZlKG1fZXJyb3JNZXNzYWdlKSk7Ci0gICAg
bV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQotewotICAgIG1faXNS
ZWFkeSA9IHRydWU7Ci0gICAgbV9lcnJvck1lc3NhZ2UgPSBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7
Ci0gICAgaWYgKG1fY2FsbGJhY2spCi0gICAgICAgIG1fY2FsbGJhY2sobV9lcnJvck1lc3NhZ2Up
OwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEFzUmVhZHkoKQotewot
ICAgIG1faXNSZWFkeSA9IHRydWU7Ci0gICAgaWYgKG1fY2FsbGJhY2spCi0gICAgICAgIG1fY2Fs
bGJhY2soeyB9KTsKLX0KLQotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNsb25lKCkKLXsKLSAgICBzd2l0Y2ggKHR5cGUoKSkgewotICAgIGNhc2Ug
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86Ci0gICAgICAgIHJldHVybiBjbG9uZVZp
ZGVvU291cmNlKCk7Ci0gICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25l
OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0gICAgcmV0dXJuICp0aGlz
OwotfQotCi1SZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6Y2xvbmVWaWRlb1NvdXJjZSgpCi17Ci0gICAgYXV0byBpZGVudGlmaWVyID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgaWYgKCFjb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNsb25lIHsgbV9p
ZGVudGlmaWVyLCBpZGVudGlmaWVyIH0sIDApKQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0KLSAg
ICBhdXRvIGNsb25lU291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKGlkZW50aWZpZXIsIGRldmljZVR5cGUoKSwgU3RyaW5nIHsgbV9zZXR0aW5ncy5sYWJlbCgp
LnN0cmluZygpIH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpKTsKLSAgICBjbG9uZVNvdXJjZS0+c2V0U2V0dGluZ3MoUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzIHsgbV9zZXR0aW5ncyB9KTsKLSAgICBtX21hbmFnZXIuYWRkU291
cmNlKGNsb25lU291cmNlLmNvcHlSZWYoKSk7Ci0gICAgcmV0dXJuIGNsb25lU291cmNlOwotfQot
Ci12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyhSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQotewotICAgIG1fY2FwYWJp
bGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNl
dHRpbmdzKQotewotICAgIGF1dG8gY2hhbmdlZCA9IG1fc2V0dGluZ3MuZGlmZmVyZW5jZShzZXR0
aW5ncyk7Ci0gICAgbV9zZXR0aW5ncyA9IFdURk1vdmUoc2V0dGluZ3MpOwotICAgIG5vdGlmeVNl
dHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1l
ZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgZGF0
YSwgZGVzY3JpcHRpb24sIHNpemUpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFJlbW90ZVZpZGVvU2FtcGxlJiYgcmVtb3Rl
U2FtcGxlKQotewotICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6VmlkZW8pOwotCi0gICAgc2V0
SW50cmluc2ljU2l6ZShyZW1vdGVTYW1wbGUuc2l6ZSgpKTsKLQotICAgIGlmICghbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9
IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQotICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zv
cm1hdCgpKTsKLQotICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgewotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8g
c2FtcGxlUmVmID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUocmVt
b3RlU2FtcGxlKTsKLSAgICBpZiAoIXNhbXBsZVJlZikgewotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1wbGVSZWYpOwotfQotCi1JUEM6OkNvbm5lY3Rp
b24qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNvbm5lY3Rpb24oKQotewotICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7Ci0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotICAgIGlmIChtX3No
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgICAgIHJldHVybiAmV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Ci0jZW5k
aWYKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1
Y2luZ0RhdGEoKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0s
IDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdE
YXRhKCkKLXsKLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwot
fQotCi1ib29sIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRp
b24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U2V0U2hvdWxkQXBwbHlSb3Rh
dGlvbiB7IG1faWRlbnRpZmllciwgc2hvdWxkQXBwbHlSb3RhdGlvbiB9LCAwKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKLXsKLSAgICBy
ZXR1cm4gbV9jYXBhYmlsaXRpZXM7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKLXsK
LSAgICBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgLy8gRklYTUU6IFVzZSBzZW5kQXN5bmNXaXRoUmVwbHku
Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpBcHBseUNvbnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9LCAw
KTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRz
U3VjY2VlZGVkKGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0
dGluZ3MpCi17Ci0gICAgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzKHNldHRpbmdzKSk7Ci0KLSAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nQXBwbHlD
b25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKLSAgICBjYWxsYmFjayh7IH0pOwotfQot
Ci12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQo
U3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQotewotICAg
IGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLnRha2VG
aXJzdCgpOwotICAgIGNhbGxiYWNrKEFwcGx5Q29uc3RyYWludHNFcnJvciB7IFdURk1vdmUoZmFp
bGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNzYWdlKSB9KTsKLX0KLQotdm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpoYXNFbmRlZCgpCi17Ci0gICAgY29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpFbmQgeyBtX2lkZW50
aWZpZXIgfSwgMCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShtX2lkZW50aWZpZXIpOwot
fQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVTdG9wcGVkKCkKLXsK
LSAgICBzdG9wKCk7Ci0gICAgaGFzRW5kZWQoKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKLXsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpj
YXB0dXJlRmFpbGVkKCk7Ci0gICAgaGFzRW5kZWQoKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCgpCi17Ci0gICAgY29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpSZXF1ZXN0VG9FbmQg
eyBtX2lkZW50aWZpZXIgfSwgMCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVxdWVzdFRvRW5kKE9ic2VydmVyJiBvYnNlcnZlcikKLXsKLSAgICBzd2l0Y2ggKHR5cGUo
KSkgewotICAgIGNhc2UgVHlwZTo6QXVkaW86Ci0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OnJlcXVlc3RUb0VuZChvYnNlcnZlcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6
VmlkZW86Ci0gICAgICAgIHN0b3BCZWluZ09ic2VydmVkKCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgVHlwZTo6Tm9uZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQot
fQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDFjODkwYmViMWIwMzEzZDRlMjMwMjk1MjlmNTFkMTExNzBlOWI1YjguLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgL2Rldi9udWxs
CkBAIC0xLDExMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgPFdlYkNvcmUv
Q2FwdHVyZURldmljZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KLSNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KLQotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBDb25uZWN0aW9u
OwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b247Ci1jbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwotc3RydWN0IE1lZGlhQ29uc3RyYWlu
dHM7Ci1jbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOwotCi1jbGFzcyBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgewotcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzID0gZmFsc2UpOwotICAgIH5S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7Ci0KLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9Ci0gICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCk7Ci0KLSAgICB2b2lkIHNldFNl
dHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKLQotICAgIHZv
aWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmKTsKLSAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5n
JiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKLQotICAgIHZvaWQg
Y2FwdHVyZVN0b3BwZWQoKTsKLSAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBmaW5hbDsKLQotICAg
IHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1w
bGUmJik7Ci0gICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpN
ZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNv
cmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOwotCi1wcml2YXRlOgotICAgIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2Vzcyk7Ci0KLSAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCi0gICAg
dm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKLSAgICB2b2lkIHN0b3BQcm9kdWNpbmdE
YXRhKCkgZmluYWw7Ci0gICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KLSAg
ICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KLSAgICBib29sIHNldFNob3Vs
ZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICovKSBmaW5hbDsKLSAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYs
IEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOwotICAgIHZvaWQgcmVxdWVzdFRvRW5k
KE9ic2VydmVyJikgZmluYWw7Ci0gICAgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgpIGZpbmFsOwot
ICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKLSAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsg
fQotICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNh
cGFiaWxpdGllcygpIGZpbmFsOwotICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nKT4mJikgZmluYWw7Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kZXZpY2VUeXBlOyB9
Ci0gICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkgZmluYWw7Ci0KLSAgICB2b2lk
IGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKLSAgICB2b2lkIHNldEFzUmVhZHkoKTsK
LSAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzJiYpOwotICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVvU291
cmNlKCk7Ci0KLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lk
ZW50aWZpZXI7Ci0gICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKLSAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOwot
ICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOwotCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1h
Z2VUcmFuc2ZlclNlc3Npb247Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZSBtX2RldmljZVR5cGUgeyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtu
b3duIH07Ci0KLSAgICBEZXF1ZTxBcHBseUNvbnN0cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBw
bHlDb25zdHJhaW50c0NhbGxiYWNrczsKLSAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9OwotICAgIFN0cmlu
ZyBtX2Vycm9yTWVzc2FnZTsKLSAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+IG1f
Y2FsbGJhY2s7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcAppbmRleCAwODNmODI5YWY3NWFlOTlmNmMyOGNkNjcwYjkwYTY2Nzc4OWYzN2Uz
Li41OGM4MDZiNWZhZGY1MjRkMGU4Yjk0YzIxOWI3MGRkYTA2N2QwZDkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAKQEAgLTMwLDEwICszMCwxMCBAQAogCiAjaW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2lu
Y2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KQEAgLTg1LDcg
Kzg1LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2V0dXBDYXB0dXJlUHJvY2Vz
c2VzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVAKICAgICAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGlzcGxheUNhcHR1cmVGYWN0b3J5KG1fZGlzcGxh
eUZhY3RvcnkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphZGRTb3VyY2Uo
UmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQordm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
PiYmIHNvdXJjZSkKIHsKICAgICBpZiAoc291cmNlLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8pCiAgICAgICAgIG1fcmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
YWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIENhcHR1cmVT
b3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvCiAgICAgICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIAotICAgIHJldHVy
biBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMs
IHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlcik7CisgICAgcmV0dXJuIFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wg
dmFsdWUpCkBAIC0xNzYsNyArMTc2LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU28KICAgICAg
ICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlZpZGVvIGNhcHR1cmUgaW4gR1BVUHJv
Y2VzcyBpcyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsKKyAgICByZXR1cm4gV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUo
aGFzaFNhbHQpLCBtX21hbmFnZXIpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAg
LTE5MSw3ICsxOTEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dQogICAgIGlmICghY29uc3Ry
YWludHMpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5h
Z2VyKTsKKyAgICByZXR1cm4gV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRl
dmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaAppbmRleCBiMGIxOTgyOTA1NDIyZGU3Mjk1NDJhYmIzZWUwOWJjN2UzMzBkMDJkLi41
ZTQ0YTU4YjQ0Zjg0OWIyOGY4M2YwYmQ2ZjlkOTViMDFlZWE2MGE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CitjbGFzcyBXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOwogY2xhc3MgV2ViUHJvY2VzczsKIAogY2xhc3MgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2Rlcik7IH0KICAgICB2b2lkIHNldHVwQ2FwdHVyZVByb2Nlc3Nlcyhib29sIHNo
b3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVBdWRpb0luR1BV
UHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9JblVJUHJvY2VzcywgYm9vbCBzaG91bGRD
YXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJv
Y2Vzcyk7CiAKLSAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZT4mJik7CisgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKQEAgLTEyOCw5ICsxMjgsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTdHJpbmcmJiwgU3RyaW5nJiYpOwogCi0gICAgUmVmPFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lVmlkZW9Tb3VyY2UoUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSYpOworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBj
bG9uZVZpZGVvU291cmNlKFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKIAotICAgIEhh
c2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlZjxSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlZjxXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlPj4gbV9zb3VyY2VzOwogICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKICAgICBOb09wQ2Fw
dHVyZURldmljZU1hbmFnZXIgbV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7CiAgICAgQXVkaW9G
YWN0b3J5IG1fYXVkaW9GYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU4MWYxMjhlNzI2YjVkYTM4YjI2MzViYTY2MDBiNzcwMGQ0NWRjOTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwzMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgor
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVt
b3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFdlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFn
ZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK3sKKyAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLnR5cGUoKSwgV1RGTW92ZShuYW1l
KSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
KTsKKyAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKKyAgICBzb3VyY2Ut
PmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoc291cmNlLT5pZGVudGlmaWVyKCksIGRldmljZSwgc291cmNlLT5kZXZpY2VJREhh
c2hTYWx0KCksIGNvbnN0cmFpbnRzKSwgW3NvdXJjZSA9IHNvdXJjZS5jb3B5UmVmKCldKGJvb2wg
c3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBj
YXBhYmlsaXRpZXMpIHsKKyAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKKyAgICAgICAgICAgIHNv
dXJjZS0+ZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIHNvdXJjZS0+c2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5s
YWJlbCgpLnN0cmluZygpIH0pOworICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUo
c2V0dGluZ3MpKTsKKyAgICAgICAgc291cmNlLT5zZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBh
YmlsaXRpZXMpKTsKKyAgICAgICAgc291cmNlLT5zZXRBc1JlYWR5KCk7CisgICAgfSk7CisgICAg
cmV0dXJuIHNvdXJjZTsKK30KKworc3RhdGljIGlubGluZSBSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRl
dmljZVR5cGUpCit7CisgICAgc3dpdGNoIChkZXZpY2VUeXBlKSB7CisgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICByZXR1cm4gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpDYW1lcmE6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46
CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIHJl
dHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKKyAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7Cit9CisKK1dlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZSBkZXZpY2VUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cykKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZyb21EZXZpY2VUeXBlKGRl
dmljZVR5cGUpLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVyLnRvVUlu
dDY0KCkpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVy
KQorICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgLCBtX2RldmljZVR5cGUoZGV2aWNlVHlw
ZSkKKyAgICAsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyhzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKQoreworICAgIHN3aXRjaCAobV9kZXZpY2VUeXBlKSB7CisgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2Fw
dHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOworI2VuZGlmCisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwor
I2VuZGlmCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U2NyZWVuOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93Ogor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFr
ZXI6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK1dlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6On5XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKK3sKKyAgICBzd2l0Y2gg
KG1fZGV2aWNlVHlwZSkgeworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWlj
cm9waG9uZToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3Rp
dmVTb3VyY2UoKnRoaXMpOworI2VuZGlmCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisjZW5kaWYKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2Fz
ZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp3aGVu
UmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKQoreworICAg
IGlmIChtX2lzUmVhZHkpCisgICAgICAgIHJldHVybiBjYWxsYmFjayhXVEZNb3ZlKG1fZXJyb3JN
ZXNzYWdlKSk7CisgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOworfQorCit2b2lk
IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNz
YWdlKQoreworICAgIG1faXNSZWFkeSA9IHRydWU7CisgICAgbV9lcnJvck1lc3NhZ2UgPSBXVEZN
b3ZlKGVycm9yTWVzc2FnZSk7CisgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgIG1fY2FsbGJh
Y2sobV9lcnJvck1lc3NhZ2UpOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnNldEFzUmVhZHkoKQoreworICAgIG1faXNSZWFkeSA9IHRydWU7CisgICAgaWYgKG1fY2Fs
bGJhY2spCisgICAgICAgIG1fY2FsbGJhY2soeyB9KTsKK30KKworUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lKCkKK3sKKyAgICBzd2l0
Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86
CisgICAgICAgIHJldHVybiBjbG9uZVZpZGVvU291cmNlKCk7CisgICAgY2FzZSBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICB9CisgICAgcmV0dXJuICp0aGlzOworfQorCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4g
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSgpCit7CisgICAg
YXV0byBpZGVudGlmaWVyID0gUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRl
KCk7CisgICAgaWYgKCFjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OkNsb25lIHsgbV9pZGVudGlmaWVyLCBpZGVudGlmaWVyIH0sIDApKQor
ICAgICAgICByZXR1cm4gKnRoaXM7CisKKyAgICBhdXRvIGNsb25lU291cmNlID0gYWRvcHRSZWYo
Km5ldyBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKGlkZW50aWZpZXIsIGRldmljZVR5cGUo
KSwgU3RyaW5nIHsgbV9zZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0sIGRldmljZUlESGFzaFNh
bHQoKSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKKyAgICBjbG9u
ZVNvdXJjZS0+c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgbV9zZXR0
aW5ncyB9KTsKKyAgICBtX21hbmFnZXIuYWRkU291cmNlKGNsb25lU291cmNlLmNvcHlSZWYoKSk7
CisgICAgcmV0dXJuIGNsb25lU291cmNlOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
JiYgY2FwYWJpbGl0aWVzKQoreworICAgIG1fY2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmls
aXRpZXMpOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRp
bmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdzKQoreworICAgIGF1dG8g
Y2hhbmdlZCA9IG1fc2V0dGluZ3MuZGlmZmVyZW5jZShzZXR0aW5ncyk7CisgICAgbV9zZXR0aW5n
cyA9IFdURk1vdmUoc2V0dGluZ3MpOworICAgIG5vdGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2
ZXJzKGNoYW5nZWQpOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJl
bW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNp
emUpOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVv
U2FtcGxlQXZhaWxhYmxlKFJlbW90ZVZpZGVvU2FtcGxlJiYgcmVtb3RlU2FtcGxlKQoreworICAg
IEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6VmlkZW8pOworCisgICAgc2V0SW50cmluc2ljU2l6ZShy
ZW1vdGVTYW1wbGUuc2l6ZSgpKTsKKworICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8
fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52
aWRlb0Zvcm1hdCgpKQorICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6Y3JlYXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKKworICAg
IGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc2FtcGxlUmVmID0gbV9p
bWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUocmVtb3RlU2FtcGxlKTsKKyAg
ICBpZiAoIXNhbXBsZVJlZikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlKCpzYW1wbGVSZWYpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFdlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNvbm5lY3Rpb24oKQoreworICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGlmIChtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpCisgICAgICAgIHJldHVybiAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7CisjZW5kaWYKKyAgICByZXR1
cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKK30K
Kwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEo
KQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6U3RhcnRQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQor
Cit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkK
K3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCiti
b29sIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRpb24o
Ym9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U2V0U2hvdWxkQXBwbHlSb3RhdGlv
biB7IG1faWRlbnRpZmllciwgc2hvdWxkQXBwbHlSb3RhdGlvbiB9LCAwKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKK3sKKyAgICBy
ZXR1cm4gbV9jYXBhYmlsaXRpZXM7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBj
b25zdHJhaW50cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgLy8gRklYTUU6IFVzZSBzZW5kQXN5bmNXaXRoUmVw
bHkuCisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpBcHBseUNvbnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9
LCAwKTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0
cmFpbnRzU3VjY2VlZGVkKGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYgc2V0dGluZ3MpCit7CisgICAgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzKHNldHRpbmdzKSk7CisKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5n
QXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKKyAgICBjYWxsYmFjayh7IH0p
OworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdl
KQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJh
Y2tzLnRha2VGaXJzdCgpOworICAgIGNhbGxiYWNrKEFwcGx5Q29uc3RyYWludHNFcnJvciB7IFdU
Rk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNzYWdlKSB9KTsKK30KKwor
dm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpoYXNFbmRlZCgpCit7CisgICAgY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpF
bmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7CisgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShtX2lk
ZW50aWZpZXIpOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1
cmVTdG9wcGVkKCkKK3sKKyAgICBzdG9wKCk7CisgICAgaGFzRW5kZWQoKTsKK30KKwordm9pZCBX
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKK3sKKyAgICBSZWFs
dGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCk7CisgICAgaGFzRW5kZWQoKTsKK30KKwor
dm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCgpCit7
CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpSZXF1ZXN0VG9FbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKK3ZvaWQgV2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKE9ic2VydmVyJiBvYnNlcnZl
cikKK3sKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgVHlwZTo6QXVkaW86CisgICAg
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChvYnNlcnZlcik7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVHlwZTo6VmlkZW86CisgICAgICAgIHN0b3BCZWluZ09ic2VydmVk
KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZTo6Tm9uZToKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzllNjQ1YzQzNDRhNDA5Y2E2NTkyN2EzNjEyYjZjODU4MWQy
ZWQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ7CitzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKK2NsYXNzIFJlbW90ZVZpZGVvU2FtcGxl
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI7CisKK2NsYXNzIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MgPSBmYWxzZSk7CisgICAgfldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24oKTsKKworICAgIHZvaWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOworCisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3Vj
Y2VlZGVkKGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAg
IHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBT
dHJpbmcmJiBlcnJvck1lc3NhZ2UpOworCisgICAgdm9pZCBjYXB0dXJlU3RvcHBlZCgpOworICAg
IHZvaWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOworCisgICAgdm9pZCByZW1vdGVWaWRlb1NhbXBs
ZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsKKyAgICB2b2lkIHJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNv
cmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYsIHNpemVfdCk7CisKK3ByaXZhdGU6CisgICAgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KTsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5n
RGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICBi
b29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorICAgIHZvaWQgY29tbWl0Q29uZmln
dXJhdGlvbigpIGZpbmFsIHsgfQorICAgIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29s
IC8qIHNob3VsZEFwcGx5Um90YXRpb24gKi8pIGZpbmFsOworICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hh
bmRsZXImJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImKSBmaW5hbDsK
KyAgICB2b2lkIHN0b3BCZWluZ09ic2VydmVkKCkgZmluYWw7CisgICAgdm9pZCBoYXNFbmRlZCgp
IGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
c2V0dGluZ3MoKSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisgICAgY29uc3QgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWw7
CisgICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBm
aW5hbDsKKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RldmljZVR5cGU7IH0KKyAgICBSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gY2xvbmUoKSBmaW5hbDsKKworICAgIHZvaWQgZGlkRmFpbChTdHJpbmcmJiBl
cnJvck1lc3NhZ2UpOworICAgIHZvaWQgc2V0QXNSZWFkeSgpOworICAgIHZvaWQgc2V0Q2FwYWJp
bGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik7CisgICAg
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lVmlkZW9Tb3VyY2UoKTsKKworICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7CisgICAgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsK
KyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIG1fZGV2aWNlVHlwZSB7IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd24gfTsKKworICAgIERlcXVl
PEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJh
Y2tzOworICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKKyAg
ICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07CisgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwor
ICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
</data>
<flag name="commit-queue"
          id="432571"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415372</attachid>
            <date>2020-12-03 18:03:18 -0800</date>
            <delta_ts>2020-12-03 22:17:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201203180317.patch</filename>
            <type>text/plain</type>
            <size>150613</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIwODVlNGQyMjg5NDYxZWQzNGY2ZWY3
NjczNGYyYTBlZjEzNTEzNTkuLjI5Mzg2OTZhNDg2NTRlNGM0ZmVlYTAyOGUyOWVmNDA4MDg0NWU5
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTItMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0xMi0w
MSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGxp
c3Qgb2YgYmxvY2sgcG9ydHMgYWNjb3JkaW5nIGZldGNoIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjQ3
NmMyNDJlMWI1MWIyMzBmZmYyNDFiNDU5ZTIwMzQ5MDQ4ODQ1Li4yMjE3MWQ5MDgxODM4YzhlNGY1
M2Y3NDhkZDBjMGFhMGI4YjI1NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAt
MTItMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0ZWQgbWFudWFsbHkgd2l0aCBNb2JpbGVNaW5pQnJvd3Nlci4K
KworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1l
ZGlhU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFs
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb24pOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAyMC0xMi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IGlmcmFtZSB3aXRoIGBzYW5kYm94PWFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZh
dGlvbmAgY2FuIG5hdmlnYXRlIHRvcCBmcmFtZSB3aGVuIHRoZSB1c2VyIGludGVyYWN0cyB3aXRo
IGFuIGlmcmFtZSBmcm9tIGFub3RoZXIgb3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4NjExODg1N2U2ZTI2
M2ZjYTNiZWExMDc5NjU1OTk4ZTYxNDZmNjcuLjExMTc3NWQ5OWVkOGFjMDM4Yzc1ZTZlYmQ1ZmQ2
NmIwN2Q0MGU2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQxIEBACisyMDIwLTEyLTAzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2hhcmVkL21lZGlhL1Jl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1l
ZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdl
YktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0
YXJ0KToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAg
KFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0dGluZ3MgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6c3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3Jh
bnRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6Y2xvbmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAg
KFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlcXVlc3RUb0VuZCk6CisgICAg
ICAgICogU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgor
ICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6c291cmNlVHlwZUZyb21EZXZpY2VU
eXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZh
aWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90
ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjp3aGVuUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpzZXRBc1JlYWR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFi
bGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91
bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0
VG9FbmQpOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjYXB0dXJlRGV2aWNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y29uc3RyYWludHMgY29uc3QpOgorICAgICAgICAqIFNo
YXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZUZyb21DbG9uZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3Vy
Y2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVT
b3VyY2VTdG9wcGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5h
dGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZCk6
CisgICAgICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpz
ZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjplbnN1cmVSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRl
RGlzcGxheUNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwLgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0Ojpzb3VyY2VUeXBlRnJvbURldmljZVR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6fldlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjp3aGVuUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1w
bGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0Rh
dGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRT
aG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0
cmFpbnRzRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6aGFzRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpjYXB0dXJlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjppZGVudGlmaWVyIGNvbnN0KToKKwogMjAyMC0xMi0wMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggdGhlIGlPUyBidWls
ZCBhZnRlciByMjcwMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGQ0ZGFhMmIy
OTFkZTU2MjFkODc5M2JjNmFjMzJjYzdlYzhkMTQyZjIuLjU3OWFhNTNiYzliZDgxMDhkYmZmYmY0
Nzc3NmRlZDE3MDNlNGEzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC03ODgs
NiArNzg4LDcgQEAgU3BlZWNoUmVjb2duaXRpb25FbmFibGVkOgogICAgIFdlYktpdExlZ2FjeToK
ICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViS2l0OgorICAgICAgIlBMQVRGT1JNKElPU19G
QU1JTFlfU0lNVUxBVE9SKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0YTA0MjI3NDg1
NGJhZjQ2NjcxYWEzMDljNzM4NzlhMzU4MTNkMTlkLi4xMmVhNDdjN2ZmN2YwMDYzODExODNjNWQw
NDlkOGIwNWQxNjIyMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzMjcsNiArMTMyNyw3IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKICAgICBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCisgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgKICAgICBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmNwcAppbmRleCBjOTNiNmYzOGJjNjIzOGRhMWRiYTg2OGUyOWUxZTVi
MWU2ZjY2YjZiLi4yZTU2YTkxOGUzOTlmZDcwM2ZlMmZjZDQzZDczMTA5NzJmMzhhZGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTM0LDkgKzM0LDEwIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ss
IFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrKQotewogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKK09wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKQorewogICAgIE9wdGlvbmFsPENh
cHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CiAgICAgYXV0byBkZXZpY2VzID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlv
Q2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOwogICAgIGZvciAoYXV0byBk
ZXZpY2UgOiBkZXZpY2VzKSB7CkBAIC01MSwyNiArNTIsMTkgQEAgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2du
aXRpb24KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBj
YXB0dXJlRGV2aWNlOworfQogCi0gICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7Ci0gICAgICAgIGF1
dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUi
IH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9CitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVy
ZURldmljZSkKK3sKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0
dXJlRGV2aWNlLCB7IH0sIHsgfSk7Cit9CiAKLSAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoKmNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKLSAgICBpZiAoIXJl
c3VsdCkgewotICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJlc3VsdC5lcnJvck1lc3Nh
Z2UgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVw
ZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYgc291cmNlKQoreworICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJh
Y2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkpOworfQog
Ci0gICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3Rh
dGVVcGRhdGVDYWxsYmFjayksIHJlc3VsdC5zb3VyY2UoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBVTlVTRURfUEFSQU0oZGF0YUNhbGxiYWNrKTsK
LSAgICBVTlVTRURfUEFSQU0oc3RhdGVVcGRhdGVDYWxsYmFjayk7CiAjZW5kaWYKLX0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCA3Mzg2
Y2VlZTI3NDA3Y2M2MTA0ZTI5ZWQ3M2RlN2RhMGE0OWY0ZTBhLi42OWY5YTg4YjI2MWU3MWY2NmVj
MDBiYjllNzFkYTBmM2FjODE5NDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAt
NDIsMTAgKzQyLDE2IEBAIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOwogY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1
bHQ7CiAgICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAg
ICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1l
JiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
Jiwgc2l6ZV90KT47CiAgICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZv
aWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47Ci0gICAgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYpOworCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0
YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBmaW5k
Q2FwdHVyZURldmljZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsK
KyNlbmRpZgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IGJmYzViZTEwMzRiZTNjMTJkMmNhZGVj
M2UxMjE5NDNlYWI4OTkzMjMuLjk4NDI2N2UyYjE5NDkxYzY0YWM1ZWRlYzYzNDNkMDc2ZWI0MTQx
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCkBAIC04OCw2ICs4
OCwxMCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmCiAgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwg
IW1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0
RGVzY3JpcHRpb24oKSAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBhdXRvIGRhdGFTb3VyY2Ug
PSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkg
KiAxLCBtX3NvdXJjZS5nZXQoKSk7CiAgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZv
cm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAgaWYgKGlzTWFpblRocmVhZCgp
KSB7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5h
YmxlIHRvIHNldCBpbnB1dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQog
ICAgICAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFi
bGUgdG8gc2V0IGlucHV0IGZvcm1hdCIgfSkpOwpAQCAtOTYsNiArMTAwLDEwIEBAIHZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNv
bnN0IE1lZGlhVGltZSYKICAgICAgICAgfQogCiAgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRP
dXRwdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGlmIChpc01haW5U
aHJlYWQoKSkgeworICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgIlVuYWJsZSB0byBzZXQgb3V0cHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKICAgICAgICAgICAgICAgICBpZiAod2Vh
a1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgIlVuYWJsZSB0byBzZXQgb3V0cHV0IGZvcm1hdCIgfSkpOwpAQCAtMTEwLDcgKzExOCw3IEBA
IHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAgICB9CiAKICAgICBtX2RhdGFTb3VyY2UtPnB1c2hT
YW1wbGVzKHRpbWUsIGRhdGEsIHNhbXBsZUNvdW50KTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0aW9u
LCBzYW1wbGVDb3VudF0geworICAgIGF1dG8gbWFpbnRocmVhZEhhbmRsZXIgPSBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgdGltZSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxl
Q291bnRdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtMTIxLDcgKzEyOSwxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmCiAgICAgICAgIH0KIAog
ICAgICAgICBtX2RhdGFDYWxsYmFjayh0aW1lLCBkYXRhLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1w
bGVDb3VudCk7Ci0gICAgfSk7CisgICAgfTsKKyAgICBpZiAoIWlzTWFpblRocmVhZCgpKQorICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUobWFpbnRocmVhZEhhbmRsZXIpKTsKKyAgICBl
bHNlCisgICAgICAgIG1haW50aHJlYWRIYW5kbGVyKCk7CiAjZWxzZQogICAgIG1fZGF0YUNhbGxi
YWNrKHRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKaW5k
ZXggNWJlYjYwNTY0N2IzMjllMjY0ZjgzYzI0OWY1N2MyYTIwODFjMmZkNy4uYzYwMzZkNzBjMTdj
ZTc3Y2JmYTk3OTIxZDM4NzJlMmQ0MjMwMGVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTU4LDExICs1OCwxNyBAQCB2
b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIgaWRlbnRpZgogCiAgICAgbV9jbGllbnRJZGVudGlmaWVyID0gaWRlbnRp
ZmllcjsKICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0
YXJ0KSk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0gICAgc3RhcnRJbnRlcm5h
bCgpOwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiYmIHNvdXJjZSkKK3sKKyAgICBzdGFydChpZGVudGlmaWVyKTsKKyAgICBzZXRTb3VyY2UoV1RG
TW92ZShzb3VyY2UpKTsKIH0KIAotdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFs
KCkKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiYmIHNvdXJjZSkKIHsKICAgICBhdXRvIGRhdGFDYWxsYmFjayA9IFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKHRoaXMpXShjb25zdCBhdXRvJiB0aW1lLCBjb25zdCBhdXRvJiBkYXRhLCBjb25z
dCBhdXRvJiBkZXNjcmlwdGlvbiwgYXV0byBzYW1wbGVDb3VudCkgewogICAgICAgICBpZiAoIXdl
YWtUaGlzKQpAQCAtOTAsOSArOTYsMTEgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydElu
dGVybmFsKCkKICAgICAgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKICAgICB9OwogCi0gICAg
bV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1f
Y2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBk
YXRlQ2FsbGJhY2spKTsKKyAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFj
ayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIFdURk1vdmUoc291cmNlKSk7CiB9CiAK
KyNlbmRpZgorCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5h
bFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KQogewogICAgIGlmICghbV9jbGllbnRJ
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5oCmluZGV4IGU2ZjEzZmVlODRhNTMzYWYwZjA0ZTA3NjljMWFlMDk1YmU1YmZmM2Yu
LjgxM2JlNWQ4ZTVhMjc1NDExMDIxODljNjAyNDhmZjU1OGZlZDg3YjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTQwLDYgKzQw
LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIH5TcGVlY2hSZWNvZ25pemVyKCkgPSBk
ZWZhdWx0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworI2VuZGlmCiAg
ICAgZW51bSBjbGFzcyBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHsgTm8sIFllcyB9OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID0gU2hv
dWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVzKTsKIApAQCAtNDcsOSArNTAsMTIgQEAgcHVibGlj
OgogCiBwcml2YXRlOgogICAgIHZvaWQgcmVzZXQoKTsKLSAgICB2b2lkIHN0YXJ0SW50ZXJuYWwo
KTsKICAgICB2b2lkIHN0b3BJbnRlcm5hbCgpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICB2b2lkIHNldFNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisjZW5kaWYK
KwogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVD
YWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlPiBtX3NvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyZjgzYWU1NmYyM2Y4MWJmOTFjZjYyNTVkNWVlOTc5MGUyYzli
MmM3Li4yMzFlODQ0YTJlMTQwM2M4ZWFlYTQ0ZjM4Y2U1NTgxOGZkMjg4NTllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzYy
NywxMyArMjM2MjcsNiBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKLQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovID0gewot
CQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29j
b2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1
MDA3NzA4NEYgLyogcGFyc2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTI1NjY0LDcgKzI1NjU3LDYgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1
IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZB
NDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlB
QTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAq
LywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhl
c2lzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA4OGUxNTFiMTIyMjRmZWJjYzg5M2I1M2Q2
ODVlM2VjMWIwMTBjZDQ1Li44MDJiN2NmMWVlNDNkMjc5ZDgxNDc3ZmM0NzIwMDA4ZTEwNTY0OTI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTUwLDYgKzUwLDcgQEAgc2V0KFdlYktpdF9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUv
eDExIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9SZW1vdGVMYXllclRyZWUiCiAgICAgIiR7
V0VCS0lUX0RJUn0vU2hhcmVkL1dlYnNpdGVEYXRhIgorICAgICIke1dFQktJVF9ESVJ9L1NoYXJl
ZC9tZWRpYSIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MiCiAgICAgIiR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL0FQSSIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL0MiCkBA
IC0xMDMsNiArMTA0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TcGVlY2giCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TdG9yYWdlIgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvVXNlckNvbnRlbnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydCIKQEAgLTE4NSw2ICsxODcsOSBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlcgogCisgICAg
U2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisgICAgU2hhcmVkL21lZGlh
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisKICAgICBVSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eQogICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJ
UHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZTUxY2FlZDIxZTE4NmNmMmExNzNjYjhhMzMzMTJiZTBi
MzA0YmIwMC4uNzI2MDU3MzBmMWNjY2Q5ODNlNDQxMTRhMDc5Mzc0MDg5MDA3MDBmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtOTEsNiAr
OTEsOCBAQCAkKFBST0pFQ1RfRElSKS9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0hUVFBTVXBncmFkZS9IVFRQU1VwZ3JhZGVMaXN0LnR4
dAogJChQUk9KRUNUX0RJUikvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9XZWJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXgg
ZTg4YjJjMjFmYTcxN2M3N2QyMzAyY2I1MThiYTRhZDNlZGUyNTc0YS4uMDVmYjNlZjY1ZWJjZTM4
NWEyOTg2MmYxNjQwYTk0MzBkM2YxYTQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzEsNiArMTMxLDkgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1BsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCkBAIC0yMjQsNiArMjI3LDkgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTb3VyY2VQcm94eU1l
c3NhZ2VzUmVwbGkKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVP
YmplY3RSZWdpc3RyeU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VSZWNlaXZlci5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBsaWVzLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2ODE0ODU1ZmY5ZDIzYWYwYTc3ZTVmZGE2ZGZk
MmZkNTUwOTc2ZjY5Li5mOWM2ZmRkMjNhZTY4YmRiZWNjNTAyZTUxMGJjODcxMDQ1OGRhNDFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMzgsNiArMTM4LDggQEAgTUVTU0FHRV9S
RUNFSVZFUlMgPSBcCiAJU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
IFwKIAlTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyIFwKIAlTaGFy
ZWQvV2ViQ29ubmVjdGlvbiBcCisJU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyIFwKKwlTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgXAog
CVVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5IFwKIAlVSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXAogCVVJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21l
ZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZWEyNjEy
OWQ5NjFjZjM5NzNkNWI1NDZlZWZlMDM1NjRiZDBiNWMwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBA
IC0wLDAgKzEsMzM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNlbHNlCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUF1
ZGlvRGF0YS5oPgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyNpbmNsdWRlIDxX
ZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAg
IDogcHJpdmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwg
cHJpdmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVy
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U6OkNsaWVudAorI2VuZGlmCit7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4m
JiBzb3VyY2UsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBt
X2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJj
ZSkpCisgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+
KHRoaXMpKSkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0
aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgIH0KKworICAgIH5SZWFsdGltZU1lZGlhU291cmNlKCkKKyAgICB7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisjZW5kaWYKKyAgICAgICAg
bV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3Nv
dXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQor
ICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9w
KCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5zdG9wKCk7CisgICAgfQorCisgICAgdm9pZCBy
ZXF1ZXN0VG9FbmQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhp
cyk7CisgICAgfQorCisgICAgT3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXBwbHlDb25zdHJhaW50c0Vycm9yPiBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc291
cmNlLT5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKTsKKyAgICB9CisKKyAgICBjb25zdCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX3NvdXJjZS0+c2V0dGluZ3MoKTsKKyAgICB9CisKKyAgICBS
ZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fc291cmNlLT5jbG9uZSgpOworICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5z
dG9yYWdlKCkpOworICAgIH0KKyNlbmRpZgorCitwcml2YXRlOgorICAgIHZvaWQgc291cmNlU3Rv
cHBlZCgpIGZpbmFsCisgICAgeworICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWls
KCkpIHsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQobV9pZGVudGlmaWVy
KSwgMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVt
b3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAgICB9CisKKyAgICB2b2lkIGF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFdlYkNvcmU6
OlBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsCisg
ICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBk
ZXNjcmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVz
Y3JpcHRpb24oKS50eXBlID09IFdlYkNvcmU6OlBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9T
dHJlYW1CYXNpY1R5cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxj
b25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURl
c2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVz
ID0gbV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVm
ZmVyLmFsbG9jYXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJP
ZkZyYW1lcyk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQ29yZTo6V2ViQXVk
aW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRv
d25jYXN0PFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51
bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRG
cmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5n
ZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpSZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZGVudGlmaWVyLCB0aW1lLCBudW1iZXJP
ZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyNlbHNlCisgICAgICAgIFVOVVNF
RF9QQVJBTSh0aW1lKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGF1ZGlvRGF0YSk7CisgICAgICAg
IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7CisgICAgICAgIFVOVVNFRF9QQVJBTShudW1iZXJP
ZkZyYW1lcyk7CisjZW5kaWYKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKworICAgIHZv
aWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbAorICAgIHsKKyAg
ICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkK
KyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6
UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworI2lmIE9TKERBUldJTikgfHwgT1MoV0lORE9XUykKKyAg
ICAgICAgdWludDY0X3QgZGF0YVNpemUgPSBoYW5kbGUuc2l6ZSgpOworI2Vsc2UKKyAgICAgICAg
dWludDY0X3QgZGF0YVNpemUgPSAwOworI2VuZGlmCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNldFN0b3JhZ2Uo
bV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwg
IGRhdGFTaXplIH0sIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9
CisKKyNlbmRpZgorCisgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBmaW5hbAorICAgIHsK
KyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICAgICAgYXV0byBidWZmZXJTaXplID0gV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTA7CisgICAg
ICAgIGlmIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5wcmVmZXJyZWRC
dWZmZXJTaXplKCkgPiBidWZmZXJTaXplKQorICAgICAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsK
KyAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdv
cnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkLCBXZWJDb3JlOjpSb3V0ZVNo
YXJpbmdQb2xpY3k6OkRlZmF1bHQpOworI2VuZGlmCisgICAgfQorCisgICAgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FSaW5nQnVmZmVyIG1fcmluZ0J1ZmZl
cjsKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7
IH07CisjZW5kaWYKK307CisKK1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Ojp+UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9CisKKyNpZiBFTkFCTEUoU0FO
REJPWF9FWFRFTlNJT05TKQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFu
dFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5k
bGVGb3JUQ0NELCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yTWlj
cm9waG9uZSkKK3sKKyAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJveEhhbmRsZUZvclRDQ0QpKTsKKyAgICBpZiAoIW1f
c2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNy
ZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgdGNjZCIpOworICAgIGVsc2UKKyAgICAgICAgbV9z
YW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+Y29uc3VtZSgpOworCisgICAgbV9zYW5kYm94RXh0ZW5z
aW9uRm9yTWljcm9waG9uZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRi
b3hIYW5kbGVGb3JNaWNyb3Bob25lKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JN
aWNyb3Bob25lKQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBl
eHRlbnNpb24gZm9yIG1pY3JvcGhvbmUiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4
dGVuc2lvbkZvck1pY3JvcGhvbmUtPmNvbnN1bWUoKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmIChtX3Nh
bmRib3hFeHRlbnNpb25Gb3JUQ0NEKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRD
Q0QtPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVsbHB0
cjsKKyAgICB9CisKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkgewor
ICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAgICAg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQorfQor
CisjZW5kaWYKKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2Vi
Q29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKKyAgICBzd2l0Y2ggKGNh
cHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBzb3VyY2VPckVycm9yID0gV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9y
eSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgICAgIHNvdXJjZU9yRXJyb3Ig
PSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0Nh
cHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIFdU
Rk1vdmUoaGFzaFNhbHQpLCAmY29uc3RyYWludHMpOworICAgICAgICBpZiAoc291cmNlT3JFcnJv
cikKKyAgICAgICAgICAgIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+bW9uaXRvck9yaWVu
dGF0aW9uKG1fb3JpZW50YXRpb25Ob3RpZmllcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAgICBzb3VyY2VP
ckVycm9yID0gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
ZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY2FwdHVy
ZURldmljZSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAgIGNhc2UgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGJvb2wgc3VjY2VlZGVkID0g
ISFzb3VyY2VPckVycm9yOworICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHM7CisgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOworICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOworICAgIGlmIChz
dWNjZWVkZWQpIHsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVycm9yLnNvdXJjZSgp
OworICAgICAgICBzZXR0aW5ncyA9IHNvdXJjZS0+c2V0dGluZ3MoKTsKKyAgICAgICAgY2FwYWJp
bGl0aWVzID0gc291cmNlLT5jYXBhYmlsaXRpZXMoKTsKKyAgICAgICAgQVNTRVJUKCFtX3NvdXJj
ZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgICAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZp
ZXIsIG1ha2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZT4oaWRlbnRpZmllciwgc291cmNlT3JF
cnJvci5zb3VyY2UoKSwgbWFrZVJlZigqbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSkpKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVy
cm9yLmVycm9yTWVzc2FnZSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZWVkZWQsIGlu
dmFsaWRDb25zdHJhaW50cywgV1RGTW92ZShzZXR0aW5ncyksIFdURk1vdmUoY2FwYWJpbGl0aWVz
KSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVu
dGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChp
ZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlv
biogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKTsKK30KKwordWludDY0X3QgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30K
Kwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Y2xvbmVTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgb3JpZ2luYWxJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBuZXdJZGVudGlmaWVyKQoreworICAgIC8v
IFRPRE86IGltcGxlbWVudCB0aGlzLgorICAgIGF1dG8gb3JpZ2luYWxTb3VyY2UgPSBtX3NvdXJj
ZXMuZ2V0KG9yaWdpbmFsSWRlbnRpZmllcik7CisgICAgaWYgKCFvcmlnaW5hbFNvdXJjZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMobmV3SWRlbnRp
ZmllcikpOworICAgIG1fc291cmNlcy5hZGQobmV3SWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZWFs
dGltZU1lZGlhU291cmNlPihuZXdJZGVudGlmaWVyLCBvcmlnaW5hbFNvdXJjZS0+Y2xvbmUoKSwg
bWFrZVJlZigqbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSkpKTsKK30KKwordm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIHNob3VsZEFwcGx5Um90
YXRpb24pCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVy
KSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29u
c3RyYWludHMpCit7CisgICAgYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIp
OworICAgIGlmICghc291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHJlc3VsdCA9
IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cyhjb25zdHJhaW50cyk7CisgICAgaWYgKCFyZXN1bHQp
CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGlkZW50aWZpZXIsIHNvdXJjZS0+c2V0dGluZ3Mo
KSkpOworICAgIGVsc2UKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OkFwcGx5Q29uc3RyYWludHNGYWlsZWQoaWRlbnRpZmllciwgcmVzdWx0
LT5iYWRDb25zdHJhaW50LCByZXN1bHQtPm1lc3NhZ2UpKTsKK30KKwordm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6cmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3Vy
Y2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5yZXF1ZXN0VG9FbmQoKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jOGQwNDEzYzVkZTg0ZmIzNDA2N2M1MDcxMTdkZWYwNDNmMDFkZjU1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisj
aW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL09yaWVudGF0aW9uTm90aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZp
Y2U7CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M7CitjbGFzcyBSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzOworc3RydWN0IE1lZGlhQ29uc3RyYWludHM7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6IHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKCk7CisgICAgflJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisKK3ByaXZhdGU6
CisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIGFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0KFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3AoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgY2xvbmVTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgb3JpZ2luYWxJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBuZXdJZGVudGlmaWVy
KTsKKyAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbik7CisgICAgdm9pZCBh
cHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworI2lmIEVOQUJMRShTQU5E
Qk9YX0VYVEVOU0lPTlMpCisgICAgdm9pZCBncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYmLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9p
ZCByZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgor
ICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5h
bDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFs
OworCisgICAgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgUmVh
bHRpbWVNZWRpYVNvdXJjZTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fc291
cmNlczsKKyAgICBXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3Rp
ZmllciB7IDAgfTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgUmVmUHRy
PFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Q7CisgICAgUmVmUHRy
PFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmU7CisjZW5k
aWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDllZGJiOTBkZWMzZmM3OTJlOWUyYTUyYTBm
YzNjNDA1N2Y0MTI2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21l
ZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDQg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RS
ZWZDb3VudGVkIHsKKyAgICBBZGRTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmlu
ZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMp
IC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIEFzeW5jCisgICAgUmVtb3ZlU291cmNl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
U3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7
CisgICAgU3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKTsKKworICAgIENsb25lU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIG9yaWdpbmFsSWRlbnRpZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgbmV3SWRlbnRpZmllcikKKyAgICBTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgc2hvdWxk
QXBwbHlSb3RhdGlvbikKKyAgICBBcHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzIGNvbnN0cmFpbnRzKQorICAgIFJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhU
RU5TSU9OUykKKyAgICBHcmFudFNhbmRib3hFeHRlbnNpb25zKFdlYktpdDo6U2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVGb3JUQ0NELCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yTWljcm9waG9uZSkK
KyAgICBSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCisjZW5kaWYKK30KKworI2VuZGlmCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZlNTA2MzVjZDlmNWUwOWY0NmJlOWVmMDdhZmY2N2Ez
ZTk1MTk1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CisKKyNpZiBQTEFURk9STShDT0NP
QSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitzdGF0aWMgaW5saW5lIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291
cmNlVHlwZUZyb21EZXZpY2VUeXBlKFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUg
ZGV2aWNlVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGRldmljZVR5cGUpIHsKKyAgICBjYXNlIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzsKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICBjYXNlIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOworICAgIGNhc2UgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KKyAgICByZXR1cm4gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6Tm9uZTsKK30KKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmlj
ZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCksIG1hbmFnZXIsIGNhcHR1cmVEZXZpY2UsIGNvbnN0cmFpbnRzLCBX
VEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworfQorCitSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2
aWNlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIE9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyPiBvcmlnaW5hbElkZW50aWZpZXIpCisgICAgOiBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShjYXB0dXJlRGV2aWNl
LnR5cGUoKSksIFdURk1vdmUobmFtZSksIFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9VSW50
NjQoKSksIFdURk1vdmUoaGFzaFNhbHQpKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
CisgICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX2NhcHR1cmVE
ZXZpY2UoY2FwdHVyZURldmljZSkKKyAgICAsIG1fY29uc3RyYWludHMoY29uc3RyYWludHMpCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3Jl
OjpDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51
bGxwdHIpKSkKKyNlbmRpZgoreworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzd2l0
Y2ggKG1fY2FwdHVyZURldmljZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRB
Y3RpdmVTb3VyY2UoKnRoaXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNl
dEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmICghb3JpZ2luYWxJZGVu
dGlmaWVyKSB7CisgICAgICAgIG1fbWFuYWdlci0+YWRkU291cmNlKCp0aGlzKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fbWFuYWdlci0+YWRkU291cmNlRnJvbUNsb25lKCp0aGlz
LCAqb3JpZ2luYWxJZGVudGlmaWVyKTsKK30KKworUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgc3dpdGNoIChtX2NhcHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0
b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICAgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJl
RmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtl
cjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyNlbmRpZgorCisgICAgaWYg
KG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5yZW1vdmVTb3VyY2UoKnRoaXMpOworfQor
Cit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7
CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RhcnQgeyBtX2lkZW50aWZpZXIgfSk7Cit9CisK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQorewor
ICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNzYWdlczo6UmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0b3AgeyBtX2lkZW50aWZpZXIgfSk7Cit9CisKKyNp
ZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRT
dG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6
OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzKQoreworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0
cjxTaGFyZWRNZW1vcnk+IG1lbW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAg
ICAgICBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJv
dGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUg
c2hhcmVkIG1lbW9yeSBmb3IgcmVtb3RlIHNvdXJjZSIpOworICAgIH0KKworICAgIGF1dG8mIHN0
b3JhZ2UgPSBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZl
ci0+c3RvcmFnZSgpKTsKKyAgICBpZiAoIW1lbW9yeSkgeworICAgICAgICBtX3JpbmdCdWZmZXIt
PmRlYWxsb2NhdGUoKTsKKyAgICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7CisgICAg
ICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAg
c3RvcmFnZS5zZXRSZWFkT25seSh0cnVlKTsKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRl
c2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdl
YkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsK
K30KKworI2VuZGlmCisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2Fw
dHVyZUZhaWxlZCgpCit7CisgICAgY2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJjZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsK
K30KKworLy8gV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZQordm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjp3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYm
IGNhbGxiYWNrKQoreworICAgIGlmIChtX2lzUmVhZHkpCisgICAgICAgIHJldHVybiBjYWxsYmFj
ayhXVEZNb3ZlKG1fZXJyb3JNZXNzYWdlKSk7CisgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEFzUmVhZHko
KQoreworICAgIG1faXNSZWFkeSA9IHRydWU7CisgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAg
IG1fY2FsbGJhY2soeyB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpk
aWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBtX2lzUmVhZHkgPSB0cnVlOwor
ICAgIG1fZXJyb3JNZXNzYWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOworICAgIGlmIChtX2Nh
bGxiYWNrKQorICAgICAgICBtX2NhbGxiYWNrKG1fZXJyb3JNZXNzYWdlKTsKK30KKworUmVmPFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNs
b25lKCkKK3sKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6VmlkZW86CisgICAgICAgIHJldHVybiBjbG9uZVZpZGVvU291cmNlKCk7Cisg
ICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgcmV0dXJu
ICp0aGlzOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9Cit9
CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpjbG9uZVZpZGVvU291cmNlKCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikgeworICAg
ICAgICBMT0dfRVJST1IoIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lVmlkZW9Tb3Vy
Y2UgbWFuYWdlciBkb2VzIG5vdCBleGlzdCIpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAg
fQorCisgICAgYXV0byBpZGVudGlmaWVyID0gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgYXV0byBsYWJlbCA9IG1fc2V0dGluZ3MubGFiZWwo
KS5zdHJpbmcoKTsKKyAgICBhdXRvIGNsb25lU291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKGlkZW50aWZpZXIsICptX21hbmFnZXIsIG1fY2FwdHVyZURldmlj
ZSwgbV9jb25zdHJhaW50cywgU3RyaW5nIHsgbGFiZWwgfSwgZGV2aWNlSURIYXNoU2FsdCgpLCBt
X2lkZW50aWZpZXIpKTsKKyAgICBjbG9uZVNvdXJjZS0+c2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgbV9zZXR0aW5ncyB9KTsKKyAgICByZXR1cm4gY2xv
bmVTb3VyY2U7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0Q2FwYWJp
bGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmls
aXRpZXMpCit7CisgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2V0dGluZ3MoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCit7CisgICAgYXV0byBjaGFu
Z2VkID0gbV9zZXR0aW5ncy5kaWZmZXJlbmNlKHNldHRpbmdzKTsKKyAgICBtX3NldHRpbmdzID0g
V1RGTW92ZShzZXR0aW5ncyk7CisgICAgbm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMo
Y2hhbmdlZCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVk
aW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgaWYgKCFtX2J1ZmZlcikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZl
ciBmb3IgcmVtb3RlIHNvdXJjZSBpcyBudWxsIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChu
dW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMo
c3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXIt
Pmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9idWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShu
dW1iZXJPZkZyYW1lcyk7CisgICAgVU5VU0VEX1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNF
RF9QQVJBTShlbmRGcmFtZSk7CisjZW5kaWYKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2
b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxl
KFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYgcmVtb3RlU2FtcGxlKQoreworICAgIEFTU0VS
VCh0eXBlKCkgPT0gVHlwZTo6VmlkZW8pOworCisgICAgc2V0SW50cmluc2ljU2l6ZShyZW1vdGVT
YW1wbGUuc2l6ZSgpKTsKKworICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zv
cm1hdCgpKQorICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gV2ViQ29yZTo6SW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKKwor
ICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc2FtcGxlUmVmID0g
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUocmVtb3RlU2FtcGxlKTsK
KyAgICBpZiAoIXNhbXBsZVJlZikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2Ft
cGxlQXZhaWxhYmxlKCpzYW1wbGVSZWYpOworfQorCisjZW5kaWYKKworYm9vbCBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlS
b3RhdGlvbikKK3sKKyAgICBpZiAobV9tYW5hZ2VyKSB7CisgICAgICAgIG1fbWFuYWdlci0+c2Vu
ZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNldFNob3VsZEFwcGx5Um90
YXRpb24obV9pZGVudGlmaWVyLCBzaG91bGRBcHBseVJvdGF0aW9uKSk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJiBjb25zdHJhaW50cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIC8vIEZJWE1FOiBVc2Ugc2VuZEFzeW5jV2l0aFJlcGx5LgorICAg
IG1fbWFuYWdlci0+c2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFw
cGx5Q29uc3RyYWludHMgeyBtX2lkZW50aWZpZXIsIGNvbnN0cmFpbnRzIH0pOworfQorCit2b2lk
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29u
c3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAg
ICBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Moc2V0dGlu
Z3MpKTsKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxi
YWNrcy50YWtlRmlyc3QoKTsKKyAgICBjYWxsYmFjayh7IH0pOworfQorCit2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVk
Q29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQoreworICAgIGF1dG8gY2FsbGJhY2sg
PSBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOworICAgIGNh
bGxiYWNrKEFwcGx5Q29uc3RyYWludHNFcnJvciB7IFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCks
IFdURk1vdmUoZXJyb3JNZXNzYWdlKSB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCgpCit7CisgICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3Nh
Z2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVxdWVzdFRvRW5kIHsgbV9pZGVudGlm
aWVyIH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0Vu
ZChPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICBjYXNl
IFR5cGU6OkF1ZGlvOgorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQo
b2JzZXJ2ZXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGU6OlZpZGVvOgorICAgICAg
ICBzdG9wQmVpbmdPYnNlcnZlZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGU6Ok5v
bmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI2ZmQ4NTRk
YTA3YmQ0ODEyZDg2MDM1MTE5NDFmYTFmNzE2NGM3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCww
ICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKKworI2lmIFBMQVRGT1JNKENPQ09B
KQorY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKKyNlbmRpZgorfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisKK2Ns
YXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBjcmVhdGUoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICB+UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSgpOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UoKSBjb25zdCB7IHJldHVy
biBtX2NhcHR1cmVEZXZpY2U7IH07CisgICAgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnRzOyB9OworCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6
SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNB
dmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3Rh
cnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVyZUZhaWxl
ZCgpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlk
ZW9TYW1wbGUmJik7IC8vIEFkZGVkCisjZW5kaWYKKworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50
c1N1Y2NlZWRlZChjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsK
KyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWlu
dCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJy
b3JNZXNzYWdlKTsKKyAgICB2b2lkIHNldEFzUmVhZHkoKTsKKyAgICB2b2lkIHNldENhcGFiaWxp
dGllcyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOworICAgIHZv
aWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwor
ICAgIAorcHJpdmF0ZToKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIE9wdGlvbmFs
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyPiBvcmlnaW5hbElkZW50aWZp
ZXIgPSBXVEY6Om51bGxvcHQpOworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
PiBjbG9uZVZpZGVvU291cmNlKCk7CisgICAgCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBz
dG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2Fw
YWJpbGl0aWVzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAgICBib29sIGlz
Q2FwdHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHNl
dFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCkgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQo
T2JzZXJ2ZXImKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BCZWluZ09ic2VydmVkKCkgZmluYWw7Cisg
ICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMm
LCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHdoZW5SZWFkeShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOworICAgIFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFsOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOworICAgIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UgbV9jYXB0dXJlRGV2aWNlOworICAgIFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgbV9j
b25zdHJhaW50czsKKworICAgIERlcXVlPEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRp
bmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzOworICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2Ug
fTsKKyAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcpPiBtX2NhbGxiYWNrOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29y
ZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzlkYWJiMzRlNTUz
ZjdmNzU2ZGRkNjFiMmM1MGRhNjQxNzg3ZmNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBA
IC0wLDAgKzEsMTU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAg
ICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQoreworfQorCit2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSYgc291cmNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlm
aWVyKCk7CisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAg
IG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgbWFrZVdlYWtQdHIoc291cmNlKSk7CisKKyNpZiBF
TkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAg
IGlmICghbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX2Nvbm5lY3Rp
b24tPmdldEF1ZGl0VG9rZW4oKSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBoYW5kbGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1p
Y3JvcGhvbmUiX3MsIGhhbmRsZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6R3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhoYW5k
bGVGb3JUQ0NELCBoYW5kbGVGb3JNaWNyb3Bob25lKSk7CisgICAgICAgIG1faGFzR3JhbnRlZFNh
bmRib3hFeHRlbnNpb25zID0gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKworICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFkZFNvdXJjZShp
ZGVudGlmaWVyLCBzb3VyY2UuY2FwdHVyZURldmljZSgpLCBzb3VyY2UuZGV2aWNlSURIYXNoU2Fs
dCgpLCBzb3VyY2UuY29uc3RyYWludHMoKSksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpLCBpZGVudGlmaWVyXShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwg
YXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzKSB7CisgICAgICAgIGF1dG8gc291
cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFzb3VyY2UpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKKyAgICAgICAg
ICAgIHNvdXJjZS0+ZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc291cmNlLT5zZXROYW1lKFN0cmluZyB7IHNl
dHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSk7CisgICAgICAgIHNvdXJjZS0+c2V0U2V0dGluZ3Mo
V1RGTW92ZShzZXR0aW5ncykpOworICAgICAgICBzb3VyY2UtPnNldENhcGFiaWxpdGllcyhXVEZN
b3ZlKGNhcGFiaWxpdGllcykpOworICAgICAgICBzb3VyY2UtPnNldEFzUmVhZHkoKTsKKyAgICB9
KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNl
RnJvbUNsb25lKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgb3JpZ2luYWxJZGVudGlmaWVyKQoreworICAgIEFT
U0VSVChtX3NvdXJjZXMuY29udGFpbnMob3JpZ2luYWxJZGVudGlmaWVyKSk7CisgICAgYXV0byBp
ZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQoIW1fc291cmNlcy5j
b250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtl
V2Vha1B0cihzb3VyY2UpKTsKKworICAgIC8vIFRPRE86IGFkZCB0aGlzIHRvIFJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOworICAgIHNlbmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpDbG9uZVNvdXJjZSB7IG9yaWdpbmFsSWRlbnRpZmllciwgaWRlbnRpZmllciB9KTsK
K30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNl
KFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGlkZW50aWZp
ZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVChtX3NvdXJjZXMuZ2V0KGlkZW50
aWZpZXIpID09ICZzb3VyY2UpOworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7CisK
KyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorICAgIGlmIChtX3NvdXJjZXMuaXNFbXB0eSgpICYmIG1faGFzR3JhbnRlZFNhbmRib3hFeHRl
bnNpb25zKSB7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpKTsKKyAgICAgICAgbV9oYXNHcmFudGVkU2Fu
ZGJveEV4dGVuc2lvbnMgPSBmYWxzZTsKKyAgICB9CisjZW5kaWYKKworICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdmVTb3VyY2UoaWRlbnRpZmllcikp
OworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRs
ZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3Vy
Y2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zZXRTdG9yYWdlKGlwY0hhbmRs
ZS5oYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit2
b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVBdWRpb1NhbXBsZXNB
dmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1
aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBpZiAoYXV0byBz
b3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwg
ZW5kRnJhbWUpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVu
dGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVDYXB0dXJlRmFpbGVkKCk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAg
ICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBz
b3VyY2UtPnJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBj
b25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisKK3VpbnQ2NF90IFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICBpZiAoYXV0byBzb3VyY2Ug
PSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3Ry
YWludHNTdWNjZWVkZWQoc2V0dGluZ3MpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQs
IFN0cmluZyYmIG1lc3NhZ2UpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdl
dChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdU
Rk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUobWVzc2FnZSkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVlNTljOGQwOTYyNWIyZmM2OTI0YjdlYzU5MzcwODFkMmRmZDY1YmUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgor
CituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5nczsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uOworI2VuZGlmCit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOworCitjbGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRl
ciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7
CisgICAgdm9pZCBhZGRTb3VyY2UoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOworICAgIHZv
aWQgYWRkU291cmNlRnJvbUNsb25lKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVTb3VyY2Uo
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOworCitwcml2YXRlOgorICAgIC8vIE1lc3NhZ2Vz
CisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAg
ICB2b2lkIHJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2Vl
ZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFN0cmluZyYm
LCBTdHJpbmcmJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRTdG9yYWdlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgLy8gSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJ
UEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7Cisg
ICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKwor
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBIYXNoTWFwPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWFrUHRyPFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U+PiBtX3NvdXJjZXM7CisgICAgYm9vbCBtX2hhc0dyYW50ZWRTYW5kYm94RXh0
ZW5zaW9ucyB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVk
aWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmJiMDUyMWFkOTkxNTQ4ZTdkNWYwYzk2Nzg4N2JlNTUwOGQ4Y2U5MQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDAgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
IyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdl
cyAtPiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBTZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5k
bGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2Ny
aXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyNlbmRpZgorCisgICAgUmVtb3RlQXVk
aW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWlu
dDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgUmVtb3RlQ2FwdHVyZUZh
aWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
ICAgIFJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllcikKKworICAgIEFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQorICAgIEFwcGx5Q29uc3RyYWludHNG
YWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
U3RyaW5nIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyBtZXNzYWdlKQorfQorCisjZW5kaWYKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKaW5kZXggMDkxN2YwMWJlMWM5ZjhjYWEyYWJmN2YwZjg5MGY4OTVhM2YyZWY4Ni4u
YTY3NTQ1MGNlMTg3NmQyMDAwOGRhNWMzYjNhMTAwMzNiNjJiYmJjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBA
IC0yNzcsNiArMjc3LDEwIEBAIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0
aW9uLmNwcCBAbm8tdW5pZnkKIAogU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAog
CitTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCitTaGFyZWQvbWVk
aWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKK1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKwogVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQ
cm94eS5jcHAKIFVJUHJvY2Vzcy9CYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwCiBVSVByb2Nlc3MvRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKaW5kZXggNGVhOGI3ODFkMjBhODFhMDhlNDRiNDRkYmEwYjU4ZjIxYmQ2Zjk3My4uNjlj
ZTUxYTdjYzE3MzExNzdiYmQyMzJiNjZmNGFlMTNjZGM3Y2Q4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dApAQCAtNTY2LDEwICs1NjYsMTAgQEAgV2ViUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQ
YXltZW50Q29vcmRpbmF0b3JDb2NvYS5tbQogCiBXZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vz
c2lvbk1hbmFnZXIubW0KIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIuY3BwCi1XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQorV2ViUHJvY2Vzcy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmNwcAogCiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50
U2VydmljZUVudHJ5UG9pbnQubW0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDlmNjAwZDNmNWNkYzZjMzJjNTQ4YTBh
MDlhYjAyYmMxNDUzNDUyNDQuLjAyYWI2YzI3ZTFlZmJkYjYzMDI2NDVhZWU5Y2Q1MWM4YzljMTVh
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5jcHAKQEAgLTkzLDYgKzkzLDM2IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uCiAg
ICAgICAgIH0pOwogICAgIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgYXV0byBj
YXB0dXJlRGV2aWNlID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVy
ZURldmljZSgpOworICAgIGlmICghY2FwdHVyZURldmljZSkgeworICAgICAgICBtX3JlcXVlc3Rz
LnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKyAgICAgICAgc2VuZFVwZGF0ZShTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJO
byBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9KSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAobV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pIHsK
KyAgICAgICAgYXV0byByZWFsdGltZVNvdXJjZSA9IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0
ZUZ1bmN0aW9uKCpjYXB0dXJlRGV2aWNlKTsKKyAgICAgICAgaWYgKCFyZWFsdGltZVNvdXJjZSkg
eworICAgICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAg
ICAgICAgICBzZW5kVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihj
bGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIkZhaWxlZCB0byBjcmVhdGUgcmVhbHRpbWUgc291
cmNlIiB9KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9yZWNv
Z25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyLCBtYWtlUmVmKCpyZWFsdGltZVNvdXJjZSkp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpj
YXB0dXJlRGV2aWNlKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpIHsKKyAgICAgICAgbV9yZXF1
ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHNlbmRVcGRhdGUoU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJl
LCBzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIsIHNvdXJjZU9yRXJy
b3Iuc291cmNlKCkpOworICAgIHJldHVybjsKKyNlbmRpZgorCiAgICAgbV9yZWNvZ25pemVyLT5z
dGFydChjbGllbnRJZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggYTdmNzZkMzhlZTUwMWU1ODJmNzlh
NTQ0ZmEwMjdjYjBiMzIyOGZkNy4uYzI5YzNhNzI0N2U4ZTFmNDIyMmRjZGIwZGNjNmQxNTcwMGI0
MGVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5oCkBAIC01Nyw2ICs1NywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhYm9ydChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKICAgICB2
b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllcik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVzaW5nIFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFJlZlB0cjxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlPihjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik+OworICAg
IHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFJlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0aW9uKSB7IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNy
ZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbik7IH0KKyNlbmRpZgorCiBwcml2YXRlOgog
ICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdCYpOwogICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKQEAgLTc1LDYgKzgwLDEwIEBA
IHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAgICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IGU3ZDljZGZlNTUzNWMyN2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLjA1NDgxZmJmYzIxODU0
NGE1OTZmMjAwODFlOWZhODVlMjkwNzU5MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUgIlBsdWdpbklu
Zm9TdG9yZS5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
UHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKyNp
bmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5o
IgpAQCAtMTcwMiw4ICsxNzA1LDggQEAgUEFMOjpTZXNzaW9uSUQgV2ViUHJvY2Vzc1Byb3h5Ojpz
ZXNzaW9uSUQoKSBjb25zdAogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7Ci0gICAgYXV0byBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpOwotICAgIEFTU0VSVChzcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5pc05ld0VudHJ5KTsKKyAgICBBU1NFUlQoIW1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNYXAuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1dG8mIHNwZWVj
aFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRl
bnRpZmllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogICAgIFdlYlBhZ2VQcm94eSogdGFy
Z2V0UGFnZSA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMoKSkgewogICAg
ICAgICBpZiAocGFnZSAmJiBwYWdlLT53ZWJQYWdlSUQoKSA9PSBpZGVudGlmaWVyKSB7CkBAIC0x
NzE1LDcgKzE3MTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogICAgIGlmICghdGFyZ2V0
UGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRl
cmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJl
ZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFy
Z2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxl
IHsKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFn
ZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0
aW9uSGFuZGxlcikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1BhZ2UpIHsKICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9u
OjpEZW55KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3MjMsNyArMTcyNiwyMSBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJJZGVudAogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
ICAgIH0pOwotICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNwZWVjaFJlY29n
bml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBp
ZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOworCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNl
cnZlci0+c2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2Up
XShhdXRvJiBkZXZpY2UpIC0+IFJlZlB0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiB7
CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgICAgICBpZiAoIXdlYWtQYWdlIHx8IHdlYWtQYWdlLT5wcmVmZXJlbmNlcygpLmNhcHR1cmVB
dWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgICAgIGF1dG8mIHNvdXJjZU1hbmFnZXIgPSBlbnN1cmVSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcigpOworICAgICAgICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0
cmFpbnRzOworICAgICAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KHNvdXJjZU1hbmFnZXIsIGRldmljZSwgY29uc3RyYWludHMsIFN0cmluZyB7IGRldmljZS5sYWJl
bCgpIH0sIHsgfSk7CisgICAgfSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklk
ZW50aWZpZXIgaWRlbnRpZmllcikKQEAgLTE3MzMsNiArMTc1MCwyMCBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9u
U2VydmVySWRlbgogICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAucmVtb3ZlKGlkZW50
aWZpZXIpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3NQcm94eTo6ZW5zdXJlUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICghbV9yZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcikgeworICAgICAgICBtX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
ID0gbWFrZVVuaXF1ZTxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4obWFrZVJlZigq
Y29ubmVjdGlvbigpKSk7CisgICAgICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKm1f
cmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOworICAgIH0KKworICAgIHJldHVybiAq
bV9yZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKworI2VuZGlmCisKICNpZiBQ
TEFURk9STShXQVRDSE9TKQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRCYWNrZ3JvdW5k
QWN0aXZpdHlGb3JGdWxsc2NyZWVuSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaAppbmRleCBjMTBiMzk0OGQ3NzY3NjM3MTRkMTY0NzliNTkzNjI4MmE2OTcz
M2RhLi5lMTFjN2IxOGI4ZTg4NmVkMzI5NzIwZGQwZjc1NGQ4ODVmNGI4NjhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAzLDYgKzEwMywxMCBAQCBz
dHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0
b3JlOwogc3RydWN0IFdlYnNpdGVEYXRhOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2Ns
YXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGVudW0gRm9y
ZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyVHlwZSB7IH07CiB0eXBlZGVmIFJlZkNvdW50ZXI8Rm9y
ZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyVHlwZT4gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVy
OwogdHlwZWRlZiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI6OlRva2VuIEZvcmVncm91bmRX
ZWJQcm9jZXNzVG9rZW47CkBAIC01MDUsNiArNTA5LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3lzdGVtQmVlcCgpOwog
ICAgIApAQCAtNjQzLDYgKzY1MCw5IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1hcCA9IEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+PjsKICAgICBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1hcCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwOworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgwMzcwNDA0ZTQ5YTc4ZDhhYmU3
MzIyYTc4ZWM5MmZjMWMwYmEwYTIuLmVmYmMwY2JhODljMjYzYTdmOGYzNTE1MTU4ZjBjZjhmNjM2
NjY4ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTQwNCw2ICsxNDA0LDE2IEBACiAJCTkxOTc5NDA4MjNEQkM0Q0IwMDI1Nzg5MiAv
KiBXZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MTk3OTQwNzIzREJDNENBMDAyNTc4OTIgLyogV2ViUGFnZUlu
c3BlY3RvckFnZW50QmFzZS5oICovOyB9OwogCQk5MTk3OTQwQTIzREJDNEUwMDAyNTc4OTIgLyog
QVBJSW5zcGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MTk3OTQwOTIzREJDNEUwMDAyNTc4OTIgLyogQVBJSW5zcGVjdG9yQ2xpZW50
LmggKi87IH07CiAJCTkxOTc5NDBDMjNEQkM1MDMwMDI1Nzg5MiAvKiBfV0tJbnNwZWN0b3JEZWxl
Z2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE5
Nzk0MEIyM0RCQzUwMzAwMjU3ODkyIC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTMwMDNFRkYyNTc4Q0Q2
MTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRUY4MjU3OEM0RTMwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi87IH07CisJCTkzMDAzRjAwMjU3OENENjUw
MEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNFRkEyNTc4QzRFNDAwRjJB
M0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJCTkzMDAz
RjAxMjU3OENENjcwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNFRkMyNTc4Q0M0
OTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJCTkzMDAz
RjA0MjU3OEQ3QkIwMEYyQTNEQSAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwMjI1NzhE
N0E3MDBGMkEzREEgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OworCQk5
MzAwM0YwRTI1NzhEQTM4MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMwMDNGMEMyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJOTMwMDNGMEYyNTc4REIwNjAwRjJBM0RBIC8qIFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRjA3MjU3OEQ5OEIwMEYyQTNE
QSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CisJCTkzMDAzRjEwMjU3OERCMDgwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzAwM0YwOTI1NzhEOThDMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlcy5oICovOyB9OworCQk5MzAwM0YxMTI1NzhEQjBBMDBGMkEzREEgLyogUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRjA2MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OworCQk5MzAwM0Yx
MjI1NzhEQjBDMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMwMDNGMEIyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTMwMDNGMTMyNTc4REIxMjAw
RjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0Yw
RDI1NzhEOUVFMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCAqLzsgfTsKIAkJOTMyMUQ1ODYxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMyMUQ1ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5oICovOyB9OwogCQk5MzIxRDU4QTFBMzhGMTk2MDA4MDUyQkUgLyogV0tJ
bW1lZGlhdGVBY3Rpb25UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMyMUQ1ODkxQTM4RjE5NjAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9u
VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5MzIzNjExRTFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIzNjExRDFC
MDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM1NjYsOCArMzU3Niw2IEBA
CiAJCTQxNjg0QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2ODRD
NEUyNDY0M0M4MTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzRGMjQ2NDNEM0YwMDFDRThFRCAv
KiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQxNjg0QzUwMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk0MTY4NEM1MTI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkNENzQ1MjNGQjE3OEIw
MDY2MUQ5OSAvKiBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IE1ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2Vi
cnRjL01ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE2RjgwODYyNDVCMzk3NDAwQjY4RjAyIC8qIExpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTGliV2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbjsg
cGF0aCA9IE5ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkY4MDg5MjQ1QzdGRjUwMEI2OEYwMiAvKiBMaWJX
ZWJSVENOZXR3b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExp
YldlYlJUQ05ldHdvcmsuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29y
ay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NTYwLDYgKzQ1NjgsMjIgQEAK
IAkJOTE5Nzk0MDcyM0RCQzRDQTAwMjU3ODkyIC8qIFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZUluc3BlY3RvckFnZW50
QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTk3OTQwOTIzREJDNEUwMDAy
NTc4OTIgLyogQVBJSW5zcGVjdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFQSUluc3BlY3RvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MTk3OTQwQjIzREJDNTAzMDAyNTc4OTIgLyogX1dLSW5zcGVjdG9yRGVsZWdhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yRGVsZWdhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRjcyNTc4QzRFMzAwRjJBM0RBIC8qIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRjgyNTc4QzRFMzAwRjJBM0RBIC8qIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzAwM0VGOTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRkEy
NTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUZCMjU3OEM0RTQw
MEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRkMyNTc4Q0M0
OTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUZEMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTMwMDNFRkUyNTc4Q0M0QTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTMwMDNGMDIyNTc4RDdBNzAwRjJBM0RBIC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwMzI1NzhEN0E4
MDBGMkEzREEgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMDYyNTc4RDk4QjAwRjJBM0RB
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjA3MjU3OEQ5
OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzMDAzRjA5MjU3OEQ5OEMwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTMwMDNGMEIyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMEMyNTc4RDlFRDAwRjJBM0RBIC8q
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwRDI1NzhEOUVFMDBG
MkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTMyMUQ1ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMyMUQ1ODcxQTM4RUU3
NDAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMyMUQ1ODkxQTM4RjE5NjAwODA1MkJF
IC8qIFdLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNjI1Myw2ICs2Mjc3LDcgQEAKIAkJCQk1MTVCRTFBRTFENTkwMDM0MDBERDdDNjggLyog
R2FtZXBhZCAqLywKIAkJCQkyREE5NDQ5NjE4ODRFNERBMDBFRDg2REIgLyogaW9zICovLAogCQkJ
CUJDMTExQjVBMTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCisJCQkJOTMwMDNFRjYyNTc4QzQ1
MDAwRjJBM0RBIC8qIG1lZGlhICovLAogCQkJCTFBQUUwNThDMTI3OURDRDQwMDg1MjQxOCAvKiBQ
bHVnaW5zICovLAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJCMjVFRCAvKiBSZW1vdGVMYXllclRy
ZWUgKi8sCiAJCQkJMUFCRjQzNzgxQTM2ODAzNTAwM0ZCMEU2IC8qIFdlYnNpdGVEYXRhICovLApA
QCAtODc5NCw4ICs4ODE5LDYgQEAKIAkJCQk0MTY4NEM0RjI0NjQzRDNGMDAxQ0U4RUQgLyogUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwICovLAogCQkJCTQxNjg0QzRFMjQ2NDNDODEwMDFD
RThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oICovLAogCQkJCTQxNjg0QzREMjQ2
NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbiAq
LywKLQkJCQk0MTY4NEM1MDI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAgKi8sCi0JCQkJNDE2ODRDNTEyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCAqLywKIAkJCQlDRDQ5MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovLAogCQkJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2
NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICovLAogCQkJCUNENDkxQjBBMUU3MzJEMTIw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKQEAgLTg4
MDMsNiArODgyNiw4IEBACiAJCQkJNTJENUExQjMxQzU3NDlGMjAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTJENUExQjQxQzU3NDlGMjAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gKi8sCiAJCQkJN0M2RTcwRjkxOEIyRDRB
MDAwRjI0RTJFIC8qIFdlYlByb2Nlc3NDb2NvYS5tbSAqLywKKwkJCQk5MzAwM0YwMzI1NzhEN0E4
MDBGMkEzREEgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJOTMw
MDNGMDIyNTc4RDdBNzAwRjJBM0RBIC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtODk2MCw2ICs4OTg1LDIxIEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKIAkJfTsKKwkJOTMwMDNFRjYyNTc4QzQ1MDAwRjJBM0RBIC8qIG1lZGlhICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5MzAwM0VGRTI1NzhD
QzRBMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkz
MDAzRUZDMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICov
LAorCQkJCTkzMDAzRUZEMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCQk5MzAwM0VGOTI1NzhDNEU0MDBGMkEzREEgLyogUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJOTMwMDNFRjgyNTc4QzRFMzAwRjJB
M0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5MzAwM0VGNzI1NzhD
NEUzMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAor
CQkJCTkzMDAzRUZBMjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oICovLAorCQkJCTkzMDAzRUZCMjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0g
bWVkaWE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk5MzkyODhFMDIxNDA0
REYwMDBFQkJBMzMgLyogSW5kZXhlZERCICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTEwNDgxLDYgKzEwNTIxLDkgQEAKIAkJCQkxQTA0M0I1QzEyNEQ1RTlE
MDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkxQThFRkE2
RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAog
CQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VzLmggKi8s
CisJCQkJOTMwMDNGMDcyNTc4RDk4QjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk5MzAwM0YwOTI1NzhEOThDMDBGMkEzREEg
LyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzMDAzRjA2
MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovLAogCQkJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nl
c3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNERDUzNTc1MjQwRERFMDcwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oICovLAogCQkJCUNERDUzNTc0MjQwRERF
MDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAg
LTEwNTM0LDYgKzEwNTc3LDkgQEAKIAkJCQkxREQyQTY2MTI1NjEyMkYxMDBGRjdCNkYgLyogUmVt
b3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTFBQzEzMzgzMTg1
OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJMUFDMTMzODQxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5
TWVzc2FnZXMuaCAqLywKKwkJCQk5MzAwM0YwQjI1NzhEOUVEMDBGMkEzREEgLyogUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzMDAz
RjBDMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzLmggKi8sCisJCQkJOTMwMDNGMEQyNTc4RDlFRTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMEY1OTQ3QTUx
ODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQkwRjU5NDdBNjE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovLAogCQkJCTFERDJBNjZCMjU2MjAyMUUwMEZGN0I2
RiAvKiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0x
MTUyOSw2ICsxMTU3NSw5IEBACiAJCQkJQTFFNjg4NzAxRjZFMkJBQjAwNzAwNkE2IC8qIFF1YXJh
bnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEMyMjdFMjQ1MTEzMEEwMEVENjE0RCAv
KiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFF
RTU3MjUyNDA5RjE0MjAwMjAwNUQ2IC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTMwMDNGMDEyNTc4Q0Q2NzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0YxMDI1NzhEQjA4MDBGMkEz
REEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTMwMDNGMTEyNTc4REIwQTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0ZEMzE4MjIyQjM1MTVF
MDA4RDBFOEIgLyogUmVkaXJlY3RTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5QjEyMjlEMjIzRkYyQkNDMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1
MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MTU2OSw2ICsxMTYxOCwxMCBAQAogCQkJCTFBNTcwNEZDMUJFMTc1MTEwMDg3NEFGMSAvKiBSZW1v
dGVPYmplY3RJbnZvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUMxMzM4MDE4NTkwQUU0
MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
QzEzMzg2MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0VGRjI1NzhDRDYxMDBGMkEzREEgLyogUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNGMDAyNTc4Q0Q2NTAw
RjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzAwM0YwRTI1NzhEQTM4MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNGMTMyNTc4REIx
MjAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDc5MDE4N0IzQjNBMDA0Mzc4NTcgLyogUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E4MTg3
QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjU5NDc5QjE4N0IzQjYwMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTg3NCw2ICsxMTkyNyw3
IEBACiAJCQkJMUExRTA5MzQxODg2MUQzODAwRDJEQzQ5IC8qIFdlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdl
YlByb3RlY3Rpb25TcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYxQ0NDQTYyMzE0ODVBQTAw
QjY1OUI5IC8qIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk5
MzAwM0YwNDI1NzhEN0JCMDBGMkEzREEgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NjBFNzEyMzBGNjdGQzAwNDYxQUFFIC8qIFdlYlJlc291
cmNlSW50ZXJjZXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwQUZGQkExNjU0
MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMzM1OSw2ICsxMzQxMyw3IEBACiAJCQkJMkQ1NEMzMUIyMTJGNERB
NjAwNDlDMTc0IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTBD
MjI3RjI0NTExMzBBMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQTBDMjI1RTI0MzU3NUNEMDBFRDYxNEQgLyogUXVpY2tMb29r
VGh1bWJuYWlsTG9hZGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTMwMDNGMEYyNTc4REIwNjAw
RjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTlCMTIyOUNFMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDAzNjlBRTI1Njc5
NkI5MDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRjI0QTJEMTg3OUU0QkMwMDNBQkYwRCAvKiBSZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEz
MzgwLDYgKzEzNDM1LDcgQEAKIAkJCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUREMkE2NjMyNTYxMjQ2RjAwRkY3QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDMTMzODUxODU5MEM0NjAwRjNF
QzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTkzMDAzRjEyMjU3OERCMEMwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU5
NDdBNzE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUREMkE2NkUyNTYyMDIxRTAwRkY3QjZG
IC8qIFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFEMDM2OUFDMjU2Nzk2OTkwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKaW5kZXggM2YzNTMxOTRhMzJjM2U2NzliY2Ey
OWZiZWE4NTAzMWM5MjFlNGZjNC4uY2YyODNlZDM1YjVmMDEzYTc2YmNlOTlmYzc5YzI1YzUwMmNk
ZWQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5j
cHAKQEAgLTQ2LDYgKzQ2LDEwIEBAIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uCiB7CiAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlm
aWVyLCAqdGhpcyk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpDcmVhdGVT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihtX2lkZW50aWZpZXIpLCAwKTsKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgogfQogCiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246On5XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGYyZjIyODIyYzdiMjIzZmNhNTlmOTU1NzNk
MTFkYzk5YjEwMzQ4MTEuLmEzOTQ1MjQ4ZjM2ZDM0NzA1NjVlMTJiM2E2ZTY0MzE3MjU4YmJjOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDYgKzQzLDcg
QEAKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NB
c3NlcnRpb24uaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZh
Y3RvcnkuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgpAQCAtMTk2OSw2ICsxOTcwLDE2
IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZW5hYmxlVlA5U1dEZWNvZGVyKCkKIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQ
cm9jZXNzOjplbnN1cmVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFt
X3JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKQorICAgICAgICBtX3JlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4oKTsKKwor
ICAgIHJldHVybiAqbV9yZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGU5YzQ3ZGI0YzQ0N2MwZjRhYjYy
N2MwOTRiNWY2OGRiNTY1YTlhNmMuLmEwNDE1NTJkMTE5OTE0YzljZjI0ZmY0YzkxMzliODQ4NjA4
NjU4NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTQyLDYgKzE0
MiwxMCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiBjbGFzcyBMYXllckhv
c3RpbmdDb250ZXh0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3Mg
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKKwogY2xhc3MgV2ViUHJvY2VzcyA6
IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzCiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CkBAIC0zNjAsNiArMzY0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFdyaXRlVG9QYXN0ZWJv
YXJkQXN5bmNocm9ub3VzbHkoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXImIGVuc3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0
ZToKICAgICBXZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nlc3MoKTsKQEAgLTY5Myw2ICs3MDEs
MTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdnA5RGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV92cDlTV0RlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI+IG1fcmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKaW5kZXggNWIz
ZTcwMGUwOTU4ZTJmYmQ1NjkxNzgwNDI3MWRlZGM5NGZjNWU0OS4uMmExMTMyMzEyMTQ3MTVkYjg3
MWNjYTQ1MGFiZDY3MTMxZTQ2YTBkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC02
MCw3ICs2MCw3IEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnNldENvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPmFk
ZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKLXZvaWQgUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4m
JiBzb3VyY2UpCit2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphZGRTb3VyY2UoUmVm
PFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogewogICAgIEFTU0VSVChX
VEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgc2V0Q29ubmVjdGlvbihzb3VyY2UtPmNvbm5lY3Rp
b24oKSk7CkBAIC0xMTEsOSArMTExLDkgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3UKICAgICBp
dGVyYXRvci0+dmFsdWUtPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1l
cywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwogfQogCi1SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6UmVtb3RlQXVkaW86OlJlbW90ZUF1ZGlvKFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
PiYmIHNvdXJjZSkKK1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVt
b3RlQXVkaW8oUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogICAg
IDogbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQotICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlx
dWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihu
dWxscHRyKSkpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdC
dWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCA2ZmI0YmMzN2I5MzgwMTZmY2U1YzVj
NWFjNWE0MzcwMjdmMTg2YmU0Li5hZTBhNmUwZmM4OWE5MmFlZDFmODc3Yzg2MGFhNmFjYmZlYzA3
ZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtMjksOCArMjksOCBAQAogCiAjaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUg
IlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIK
KyNpbmNsdWRlICJXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NBUmlu
Z0J1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CkBAIC00
NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpOwog
ICAgIH5SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpOwogCi0gICAgdm9pZCBhZGRTb3VyY2Uo
UmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIHZvaWQgYWRkU291cmNlKFJl
ZjxXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAgICB2b2lkIHJlbW92ZVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtNjMs
MTMgKzYzLDEzIEBAIHByaXZhdGU6CiAgICAgY2xhc3MgUmVtb3RlQXVkaW8gewogICAgICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IFJl
bW90ZUF1ZGlvKFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICAgICAgZXhw
bGljaXQgUmVtb3RlQXVkaW8oUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwog
CiAgICAgICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzKTsKICAgICAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5k
RnJhbWUpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U+IG1fc291cmNlOworICAgICAgICBSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZT4gbV9zb3VyY2U7CiAgICAgICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBt
X2Rlc2NyaXB0aW9uOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVm
ZmVyPiBtX3JpbmdCdWZmZXI7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJB
dWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZjljMmFhZDA5MTk2MmUzNTk2ZWY4OTNiMzU5YzFkMWQ2
ODRhZTM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDMxMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKLQotI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5o
IgotI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgotI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZp
ZGVvU2FtcGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci0KLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29s
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi17Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJl
ZigqbmV3IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZS50eXBlKCksIFdURk1vdmUobmFtZSksIFdURk1vdmUo
aGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7Ci0gICAgbWFu
YWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7Ci0gICAgc291cmNlLT5jb25uZWN0aW9u
KCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHNv
dXJjZS0+aWRlbnRpZmllcigpLCBkZXZpY2UsIHNvdXJjZS0+ZGV2aWNlSURIYXNoU2FsdCgpLCBj
b25zdHJhaW50cyksIFtzb3VyY2UgPSBzb3VyY2UuY29weVJlZigpXShib29sIHN1Y2NlZWRlZCwg
YXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVz
KSB7Ci0gICAgICAgIGlmICghc3VjY2VlZGVkKSB7Ci0gICAgICAgICAgICBzb3VyY2UtPmRpZEZh
aWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICBzb3VyY2UtPnNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJp
bmcoKSB9KTsKLSAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7
Ci0gICAgICAgIHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7
Ci0gICAgICAgIHNvdXJjZS0+c2V0QXNSZWFkeSgpOwotICAgIH0pOwotICAgIHJldHVybiBzb3Vy
Y2U7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VU
eXBlRnJvbURldmljZVR5cGUoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKQot
ewotICAgIHN3aXRjaCAoZGV2aWNlVHlwZSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJh
OgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgotICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgotICAgICAgICByZXR1cm4gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTcGVha2VyOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotICAgIHJldHVybiBS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOwotfQotCi1SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShkZXZpY2VUeXBlKSwgV1RGTW92
ZShuYW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZSho
YXNoU2FsdCkpCi0gICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fbWFuYWdl
cihtYW5hZ2VyKQotICAgICwgbV9kZXZpY2VUeXBlKGRldmljZVR5cGUpCi0gICAgLCBtX3Nob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLXsKLSAgICBz
d2l0Y2ggKG1fZGV2aWNlVHlwZSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6TWljcm9waG9uZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0
QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0Nh
cHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKLSAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgotICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgfQotfQotCi1SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZSgpCi17Ci0gICAgc3dpdGNoIChtX2RldmljZVR5cGUpIHsKLSAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6Ci0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRp
ZgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNh
bWVyYToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVT
b3VyY2UoKnRoaXMpOwotI2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6V2luZG93OgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OlNwZWFrZXI6Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpV
bmtub3duOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci19Ci0KLXZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKLXsKLSAgICBpZiAobV9pc1JlYWR5KQotICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkpOwotICAgIG1fY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKLXsKLSAgICBtX2lzUmVhZHkgPSB0cnVl
OwotICAgIG1fZXJyb3JNZXNzYWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwotICAgIGlmICht
X2NhbGxiYWNrKQotICAgICAgICBtX2NhbGxiYWNrKG1fZXJyb3JNZXNzYWdlKTsKLX0KLQotdm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRBc1JlYWR5KCkKLXsKLSAgICBtX2lzUmVh
ZHkgPSB0cnVlOwotICAgIGlmIChtX2NhbGxiYWNrKQotICAgICAgICBtX2NhbGxiYWNrKHsgfSk7
Ci19Ci0KLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjbG9uZSgpCi17Ci0gICAgc3dpdGNoICh0eXBlKCkpIHsKLSAgICBjYXNlIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OlZpZGVvOgotICAgICAgICByZXR1cm4gY2xvbmVWaWRlb1NvdXJjZSgp
OwotICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotICAgIHJldHVybiAqdGhpczsKLX0KLQotUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lVmlk
ZW9Tb3VyY2UoKQotewotICAgIGF1dG8gaWRlbnRpZmllciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGlmICghY29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDbG9uZSB7IG1faWRlbnRpZmllciwg
aWRlbnRpZmllciB9LCAwKSkKLSAgICAgICAgcmV0dXJuICp0aGlzOwotCi0gICAgYXV0byBjbG9u
ZVNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShpZGVudGlm
aWVyLCBkZXZpY2VUeXBlKCksIFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9
LCBkZXZpY2VJREhhc2hTYWx0KCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKSk7Ci0gICAgY2xvbmVTb3VyY2UtPnNldFNldHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyB7IG1fc2V0dGluZ3MgfSk7Ci0gICAgbV9tYW5hZ2VyLmFkZFNvdXJjZShjbG9uZVNv
dXJjZS5jb3B5UmVmKCkpOwotICAgIHJldHVybiBjbG9uZVNvdXJjZTsKLX0KLQotdm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKLXsKLSAgICBtX2NhcGFiaWxpdGllcyA9IFdU
Rk1vdmUoY2FwYWJpbGl0aWVzKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKLXsK
LSAgICBhdXRvIGNoYW5nZWQgPSBtX3NldHRpbmdzLmRpZmZlcmVuY2Uoc2V0dGluZ3MpOwotICAg
IG1fc2V0dGluZ3MgPSBXVEZNb3ZlKHNldHRpbmdzKTsKLSAgICBub3RpZnlTZXR0aW5nc0RpZENo
YW5nZU9ic2VydmVycyhjaGFuZ2VkKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRp
bWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKCFpc01haW5U
aHJlYWQoKSk7Ci0gICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGRhdGEsIGRlc2NyaXB0
aW9uLCBzaXplKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVW
aWRlb1NhbXBsZUF2YWlsYWJsZShSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKLXsK
LSAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsKLQotICAgIHNldEludHJpbnNpY1Np
emUocmVtb3RlU2FtcGxlLnNpemUoKSk7Ci0KLSAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Np
b24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1w
bGUudmlkZW9Gb3JtYXQoKSkKLSAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7Ci0K
LSAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIHNhbXBsZVJlZiA9
IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZSk7
Ci0gICAgaWYgKCFzYW1wbGVSZWYpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVmKTsKLX0KLQotSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpjb25uZWN0aW9uKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLSAgICBpZiAobV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKQotICAgICAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwotI2VuZGlmCi0gICAgcmV0
dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Ci19
Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkK
LXsKLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlN0YXJ0UHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKLX0KLQot
dm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCi17Ci0g
ICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpTdG9wUHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKLX0KLQotYm9vbCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hv
dWxkQXBwbHlSb3RhdGlvbikKLXsKLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRpb24geyBtX2lk
ZW50aWZpZXIsIHNob3VsZEFwcGx5Um90YXRpb24gfSwgMCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19
Ci0KLWNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpCi17Ci0gICAgcmV0dXJuIG1fY2Fw
YWJpbGl0aWVzOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29u
c3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFw
cGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgbV9wZW5k
aW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwotICAgIC8vIEZJWE1FOiBVc2Ugc2VuZEFzeW5jV2l0aFJlcGx5LgotICAgIGNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6QXBw
bHlDb25zdHJhaW50cyB7IG1faWRlbnRpZmllciwgY29uc3RyYWludHMgfSwgMCk7Ci19Ci0KLXZv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChj
b25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQotewot
ICAgIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyhzZXR0
aW5ncykpOwotCi0gICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHND
YWxsYmFja3MudGFrZUZpcnN0KCk7Ci0gICAgY2FsbGJhY2soeyB9KTsKLX0KLQotdm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZh
aWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKLXsKLSAgICBhdXRvIGNhbGxi
YWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKLSAg
ICBjYWxsYmFjayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFp
bnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkgfSk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6aGFzRW5kZWQoKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVyIH0sIDAp
OwotICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UobV9pZGVudGlmaWVyKTsKLX0KLQotdm9pZCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCi17Ci0gICAgc3RvcCgp
OwotICAgIGhhc0VuZGVkKCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2FwdHVyZUZhaWxlZCgpCi17Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxl
ZCgpOwotICAgIGhhc0VuZGVkKCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6UmVxdWVzdFRvRW5kIHsgbV9pZGVudGlm
aWVyIH0sIDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RU
b0VuZChPYnNlcnZlciYgb2JzZXJ2ZXIpCi17Ci0gICAgc3dpdGNoICh0eXBlKCkpIHsKLSAgICBj
YXNlIFR5cGU6OkF1ZGlvOgotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9F
bmQob2JzZXJ2ZXIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFR5cGU6OlZpZGVvOgotICAg
ICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFR5cGU6
Ok5vbmU6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLX0KLQotfQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
Yzg5MGJlYjFiMDMxM2Q0ZTIzMDI5NTI5ZjUxZDExMTcwZTliNWI4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTEg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZp
Y2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+Ci0KLW5hbWVzcGFjZSBJUEMgewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwotY2xhc3Mg
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKLXN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOwotY2xhc3Mg
UmVtb3RlVmlkZW9TYW1wbGU7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjsKLQotY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6
IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJv
b2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9IGZhbHNlKTsKLSAgICB+UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSgpOwotCi0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotICAgIElQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpOwotCi0gICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7Ci0KLSAgICB2b2lkIGFwcGx5Q29u
c3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJik7Ci0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENv
bnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSk7Ci0KLSAgICB2b2lkIGNhcHR1cmVTdG9w
cGVkKCk7Ci0gICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7Ci0KLSAgICB2b2lkIHJlbW90
ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOwotICAg
IHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwg
Y29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKLQotcHJpdmF0ZToKLSAgICBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpOwotCi0gICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQotICAgIHZvaWQgc3RhcnRQ
cm9kdWNpbmdEYXRhKCkgZmluYWw7Ci0gICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFs
OwotICAgIGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQotICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBjb21t
aXRDb25maWd1cmF0aW9uKCkgZmluYWwgeyB9Ci0gICAgYm9vbCBzZXRTaG91bGRBcHBseVJvdGF0
aW9uKGJvb2wgLyogc2hvdWxkQXBwbHlSb3RhdGlvbiAqLykgZmluYWw7Ci0gICAgdm9pZCBhcHBs
eUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0
cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKLSAgICB2b2lkIHJlcXVlc3RUb0VuZChPYnNlcnZlciYp
IGZpbmFsOwotICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQoKSBmaW5hbDsKLSAgICB2b2lkIGhh
c0VuZGVkKCkgZmluYWw7Ci0gICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KLSAgICBjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMo
KSBmaW5hbDsKLSAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmlu
Zyk+JiYpIGZpbmFsOwotICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2
aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNlVHlwZTsgfQotICAgIFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFsOwotCi0gICAgdm9pZCBkaWRGYWlsKFN0
cmluZyYmIGVycm9yTWVzc2FnZSk7Ci0gICAgdm9pZCBzZXRBc1JlYWR5KCk7Ci0gICAgdm9pZCBz
ZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYm
KTsKLSAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmVWaWRlb1NvdXJjZSgpOwotCi0g
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwot
ICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7Ci0gICAgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKLSAgICBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKLQotICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uOwotICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgbV9kZXZpY2VU
eXBlIHsgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93biB9OwotCi0g
ICAgRGVxdWU8QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWlu
dHNDYWxsYmFja3M7Ci0gICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxz
ZSB9OwotICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsKLSAgICBTdHJpbmcgbV9lcnJvck1l
c3NhZ2U7Ci0gICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBtX2NhbGxiYWNrOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAK
aW5kZXggMDgzZjgyOWFmNzVhZTk5ZjZjMjhjZDY3MGI5MGE2Njc3ODlmMzdlMy4uNThjODA2YjVm
YWRmNTI0ZDBlOGI5NGMyMTliNzBkZGEwNjdkMGQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBA
IC0zMCwxMCArMzAsMTAgQEAKIAogI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CkBAIC04NSw3ICs4NSw3IEBAIHZv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNldHVwQ2FwdHVyZVByb2Nlc3Nlcyhib29sIHNo
b3VsZENhcHR1cmVBdWRpb0luVUlQCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLnNldERpc3BsYXlDYXB0dXJlRmFjdG9yeShtX2Rpc3BsYXlGYWN0b3J5KTsK
IH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmFkZFNvdXJjZShSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2Up
CiB7CiAgICAgaWYgKHNvdXJjZS0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OkF1ZGlvKQogICAgICAgICBtX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmFkZFNvdXJjZShz
b3VyY2UuY29weVJlZigpKTsKQEAgLTE1OCw3ICsxNTgsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJv
ciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1
cmVTbwogICAgICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3VsZE1hbmFnZUF1
ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIFdURk1v
dmUoaGFzaFNhbHQpLCBtX21hbmFnZXIpOworICAgIHJldHVybiBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNo
U2FsdCksIG1fbWFuYWdlcik7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1
ZGlvRmFjdG9yeTo6c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sIHZhbHVlKQpAQCAt
MTc2LDcgKzE3Niw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpWaWRlb0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiAgICAgICAgIHJldHVybiBD
YXB0dXJlU291cmNlT3JFcnJvciB7ICJWaWRlbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgaXMgbm90
IGltcGxlbWVudGVkIl9zIH07CiAjZW5kaWYKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNo
U2FsdCksIG1fbWFuYWdlcik7CisgICAgcmV0dXJuIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwg
bV9tYW5hZ2VyKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTEsNyArMTkx
LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3Bs
YXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHUKICAgICBpZiAoIWNvbnN0cmFpbnRzKQogICAg
ICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmNyZWF0ZShkZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCB7IH0sIG1fbWFuYWdlcik7CisgICAg
cmV0dXJuIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25z
dHJhaW50cywgeyB9LCB7IH0sIG1fbWFuYWdlcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5k
ZXggYjBiMTk4MjkwNTQyMmRlNzI5NTQyYWJiM2VlMDliYzdlMzMwZDAyZC4uNWU0NGE1OGI0NGY4
NDliMjhmODNmMGJkNmY5ZDk1YjAxZWVhNjBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTQzLDcg
KzQzLDcgQEAgY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1jbGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOworY2xhc3MgV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgewpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOyB9CiAgICAgdm9pZCBzZXR1cENhcHR1cmVQcm9jZXNzZXMoYm9vbCBzaG91bGRDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MsIGJv
b2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVv
SW5HUFVQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MpOwogCi0g
ICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAg
IHZvaWQgYWRkU291cmNlKFJlZjxXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAg
ICB2b2lkIHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CiAKIHByaXZhdGU6CkBAIC0xMjgsOSArMTI4LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFw
cGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOwogICAg
IHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgU3RyaW5nJiYsIFN0cmluZyYmKTsKIAotICAgIFJlZjxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVvU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UmKTsKKyAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmVWaWRlb1Nv
dXJjZShXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJik7CiAKLSAgICBIYXNoTWFwPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBSZWY8UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZT4+IG1fc291cmNlczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fc291
cmNlczsKICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiAgICAgTm9PcENhcHR1cmVEZXZpY2VN
YW5hZ2VyIG1fbm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOwogICAgIEF1ZGlvRmFjdG9yeSBtX2F1
ZGlvRmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODFm
MTI4ZTcyNmI1ZGEzOGIyNjM1YmE2NjAwYjc3MDBkNDVkYzk1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCkBAIC0wLDAgKzEsMzEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNz
aW9uVlQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2Ft
cGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCit7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigq
bmV3IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZS50eXBlKCksIFdURk1vdmUobmFtZSksIFdURk1vdmUo
aGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgbWFu
YWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CisgICAgc291cmNlLT5jb25uZWN0aW9u
KCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHNv
dXJjZS0+aWRlbnRpZmllcigpLCBkZXZpY2UsIHNvdXJjZS0+ZGV2aWNlSURIYXNoU2FsdCgpLCBj
b25zdHJhaW50cyksIFtzb3VyY2UgPSBzb3VyY2UuY29weVJlZigpXShib29sIHN1Y2NlZWRlZCwg
YXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVz
KSB7CisgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CisgICAgICAgICAgICBzb3VyY2UtPmRpZEZh
aWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBzb3VyY2UtPnNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJp
bmcoKSB9KTsKKyAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7
CisgICAgICAgIHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7
CisgICAgICAgIHNvdXJjZS0+c2V0QXNSZWFkeSgpOworICAgIH0pOworICAgIHJldHVybiBzb3Vy
Y2U7Cit9CisKK3N0YXRpYyBpbmxpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VU
eXBlRnJvbURldmljZVR5cGUoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKQor
eworICAgIHN3aXRjaCAoZGV2aWNlVHlwZSkgeworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6TWljcm9waG9uZToKKyAgICAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJh
OgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAgICByZXR1cm4gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpTcGVha2VyOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybiBS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOworfQorCitXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNl
VHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCisgICAgOiBS
ZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShkZXZpY2VUeXBlKSwg
V1RGTW92ZShuYW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RG
TW92ZShoYXNoU2FsdCkpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1f
bWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV9kZXZpY2VUeXBlKGRldmljZVR5cGUpCisgICAgLCBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK3sK
KyAgICBzd2l0Y2ggKG1fZGV2aWNlVHlwZSkgeworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6TWljcm9waG9uZToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5
KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKKyAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52
aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyNlbmRpZgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoK
KyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorfQorCitXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpCit7CisgICAgc3dpdGNoIChtX2RldmljZVR5
cGUpIHsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6Cisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0
aGlzKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkNhbWVyYToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCku
dW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOworI2VuZGlmCisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAobV9pc1Jl
YWR5KQorICAgICAgICByZXR1cm4gY2FsbGJhY2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkpOwor
ICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBXZWJSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAg
ICBtX2lzUmVhZHkgPSB0cnVlOworICAgIG1fZXJyb3JNZXNzYWdlID0gV1RGTW92ZShlcnJvck1l
c3NhZ2UpOworICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICBtX2NhbGxiYWNrKG1fZXJyb3JN
ZXNzYWdlKTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRBc1Jl
YWR5KCkKK3sKKyAgICBtX2lzUmVhZHkgPSB0cnVlOworICAgIGlmIChtX2NhbGxiYWNrKQorICAg
ICAgICBtX2NhbGxiYWNrKHsgfSk7Cit9CisKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZSgpCit7CisgICAgc3dpdGNoICh0eXBlKCkp
IHsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAgICBy
ZXR1cm4gY2xvbmVWaWRlb1NvdXJjZSgpOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW86CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAg
IHJldHVybiAqdGhpczsKK30KKworUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFdlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2UoKQoreworICAgIGF1dG8gaWRlbnRp
ZmllciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIGlm
ICghY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpDbG9uZSB7IG1faWRlbnRpZmllciwgaWRlbnRpZmllciB9LCAwKSkKKyAgICAgICAgcmV0
dXJuICp0aGlzOworCisgICAgYXV0byBjbG9uZVNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZShpZGVudGlmaWVyLCBkZXZpY2VUeXBlKCksIFN0cmluZyB7
IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9LCBkZXZpY2VJREhhc2hTYWx0KCksIG1fbWFu
YWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgY2xvbmVTb3VyY2UtPnNl
dFNldHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7IG1fc2V0dGluZ3MgfSk7Cisg
ICAgbV9tYW5hZ2VyLmFkZFNvdXJjZShjbG9uZVNvdXJjZS5jb3B5UmVmKCkpOworICAgIHJldHVy
biBjbG9uZVNvdXJjZTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpz
ZXRDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxp
dGllcykKK3sKKyAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKK30K
Kwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTZXR0aW5ncyhSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKK3sKKyAgICBhdXRvIGNoYW5nZWQgPSBt
X3NldHRpbmdzLmRpZmZlcmVuY2Uoc2V0dGluZ3MpOworICAgIG1fc2V0dGluZ3MgPSBXVEZNb3Zl
KHNldHRpbmdzKTsKKyAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2VydmVycyhjaGFuZ2Vk
KTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1Nh
bXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
biwgc2l6ZV90IHNpemUpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgYXVk
aW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBzaXplKTsKK30KKwor
dm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWls
YWJsZShSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBBU1NFUlQodHlw
ZSgpID09IFR5cGU6OlZpZGVvKTsKKworICAgIHNldEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxl
LnNpemUoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQo
KSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1h
Z2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2Zl
clNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZSk7CisgICAgaWYgKCFzYW1w
bGVSZWYpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgq
c2FtcGxlUmVmKTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpjb25uZWN0aW9uKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KQorICAgICAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOworI2VuZGlmCisgICAgcmV0dXJuIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3ZvaWQgV2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBj
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OlN0YXJ0UHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpT
dG9wUHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKworYm9vbCBXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxk
QXBwbHlSb3RhdGlvbikKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRpb24geyBtX2lkZW50
aWZpZXIsIHNob3VsZEFwcGx5Um90YXRpb24gfSwgMCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K2NvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpCit7CisgICAgcmV0dXJuIG1fY2Fw
YWJpbGl0aWVzOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5
Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMs
IEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9w
ZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIC8vIEZJWE1FOiBVc2Ugc2VuZEFzeW5jV2l0aFJlcGx5LgorICAgIGNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
QXBwbHlDb25zdHJhaW50cyB7IG1faWRlbnRpZmllciwgY29uc3RyYWludHMgfSwgMCk7Cit9CisK
K3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2Nl
ZWRlZChjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdz
KQoreworICAgIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyhzZXR0aW5ncykpOworCisgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3Ry
YWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7CisgICAgY2FsbGJhY2soeyB9KTsKK30KKwordm9p
ZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0
cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBh
dXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmly
c3QoKTsKKyAgICBjYWxsYmFjayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3ZlKGZhaWxl
ZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkgfSk7Cit9CisKK3ZvaWQgV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6aGFzRW5kZWQoKQoreworICAgIGNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZGVu
dGlmaWVyIH0sIDApOworICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UobV9pZGVudGlmaWVyKTsK
K30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlU3RvcHBlZCgp
Cit7CisgICAgc3RvcCgpOworICAgIGhhc0VuZGVkKCk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCit7CisgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y2FwdHVyZUZhaWxlZCgpOworICAgIGhhc0VuZGVkKCk7Cit9CisKK3ZvaWQgV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQoreworICAgIGNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6UmVx
dWVzdFRvRW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAg
c3dpdGNoICh0eXBlKCkpIHsKKyAgICBjYXNlIFR5cGU6OkF1ZGlvOgorICAgICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQob2JzZXJ2ZXIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFR5cGU6OlZpZGVvOgorICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc5ZTY0NWM0MzQ0YTQwOWNhNjU5MjdhMzYxMmI2Yzg1ODFkMmVkOGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIElQQyB7
CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOworc3Ry
dWN0IE1lZGlhQ29uc3RyYWludHM7CitjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOworCitjbGFz
cyBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzID0gZmFsc2UpOworICAgIH5XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CisKKyAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKCk7CisKKyAgICB2b2lkIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYmKTsKKworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKKyAgICB2b2lkIGFwcGx5
Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJy
b3JNZXNzYWdlKTsKKworICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKKyAgICB2b2lkIGNhcHR1
cmVGYWlsZWQoKSBmaW5hbDsKKworICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUo
V2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXpl
X3QpOworCitwcml2YXRlOgorICAgIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisKKyAgICAv
LyBSZWFsdGltZU1lZGlhU291cmNlCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5h
bDsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgYm9vbCBpc0NhcHR1
cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBiZWdpbkNv
bmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBm
aW5hbCB7IH0KKyAgICBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRB
cHBseVJvdGF0aW9uICovKSBmaW5hbDsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZp
bmFsOworICAgIHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJikgZmluYWw7CisgICAgdm9pZCBz
dG9wQmVpbmdPYnNlcnZlZCgpIGZpbmFsOworICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKKyAg
ICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkg
ZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOworICAgIHZvaWQg
d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7CisgICAg
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9kZXZpY2VUeXBlOyB9CisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
IGNsb25lKCkgZmluYWw7CisKKyAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdl
KTsKKyAgICB2b2lkIHNldEFzUmVhZHkoKTsKKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOworICAgIFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBjbG9uZVZpZGVvU291cmNlKCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBtX3NldHRpbmdzOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Oklt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CisgICAgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBtX2RldmljZVR5cGUgeyBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duIH07CisKKyAgICBEZXF1ZTxBcHBseUNvbnN0
cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrczsKKyAgICBi
b29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lz
UmVhZHkgeyBmYWxzZSB9OworICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKKyAgICBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCg==
</data>
<flag name="commit-queue"
          id="432591"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415386</attachid>
            <date>2020-12-03 21:55:49 -0800</date>
            <delta_ts>2020-12-04 02:25:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201203215548.patch</filename>
            <type>text/plain</type>
            <size>152371</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIwODVlNGQyMjg5NDYxZWQzNGY2ZWY3
NjczNGYyYTBlZjEzNTEzNTkuLjkzNTEyMzI1NGM3MDY2MDcwYzYyOGExYzg2OGZiZGI1NTA0YTU5
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTItMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUdXJuIG9uIFdl
YlNwZWVjaCBvbiBpT1Mgc2ltdWxhdG9yIGJ5IGRlZmF1bHQgZm9yIHRlc3RpbmcuCisKKyAgICAg
ICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6
CisKIDIwMjAtMTItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVwZGF0ZSBsaXN0IG9mIGJsb2NrIHBvcnRzIGFjY29yZGluZyBmZXRjaCBzcGVjCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggY2I0NzZjMjQyZTFiNTFiMjMwZmZmMjQxYjQ1OWUyMDM0OTA0ODg0NS4uODkxZGJi
YjVkN2JhYWJkMjNiNDk0YTIyZTgyYWRhMjQzOGVmMGJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI5IEBACisyMDIwLTEyLTAzICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisg
ICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBp
T1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3
MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1l
ZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgor
CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVk
aWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1w
bGVzQXZhaWxhYmxlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KTogbW92ZSBy
ZXNldCgpIG91dCBvZiBzdGFydCgpIHRvIGVuc3VyZSBhYm9ydGVkIGVycm9yIHdpbGwgYmUgZmly
ZWQgYmVmb3JlIAorICAgICAgICBzb3VyY2UgaXMgbXV0ZWQgZm9yIGNhbmNlbGxlZCByZXF1ZXN0
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBEZWxldGVkLgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBpZnJhbWUgd2l0aCBgc2FuZGJveD1h
bGxvdy10b3AtbmF2aWdhdGlvbi1ieS11c2VyLWFjdGl2YXRpb25gIGNhbiBuYXZpZ2F0ZSB0b3Ag
ZnJhbWUgd2hlbiB0aGUgdXNlciBpbnRlcmFjdHMgd2l0aCBhbiBpZnJhbWUgZnJvbSBhbm90aGVy
IG9yaWdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAzODYxMTg4NTdlNmUyNjNmY2EzYmVhMTA3OTY1NTk5OGU2MTQ2
ZjY3Li41Zjg1NzIyZGM4ODIxNjA0YzA1YzUxZjE4MzI4YjdlMjBkYzQ3MjIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1NSBAQAorMjAyMC0xMi0wMyAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2du
aXRpb24gb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTkzNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxODI0MDQ5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgYXVkaW8gY2Fw
dHVyZSBpcyBkb25lIGluIHdlYiBwcm9jZXNzLiBGb3Igc3BlZWNoIHJlY29nbml0aW9uLCByZWNv
Z25pemVyIGlzIGluIFVJIHByb2Nlc3MuIFRoZXJlZm9yZSwKKyAgICAgICAgVUkgcHJvY2VzcyBu
ZWVkcyB0byBhc2sgd2ViIHByb2Nlc3MgdG8gY2FwdHVyZSBhdWRpbyBhbmQgc2VuZCBiYWNrIGRh
dGEuIFRvIGltcGxlbWVudCB0aGlzLCB0aGlzIHBhdGNoIGFkZGVkOgorICAgICAgICAtIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6IHN1YmNsYXNzIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2UgYW5kIGNvbm5lY3QgdG8gYSByZW1vdGUgCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2UgKG93bmVkIGJ5IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1l
ZGlhU291cmNlKSBpbiBhIGRpZmZlcmVudCBwcm9jZXNzLgorICAgICAgICAtIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VzLgorICAgICAgICAtIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlLgorICAgICAgICAt
IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOiBvd24gYW5k
IG1vbml0b3IgYSBsb2NhbCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlLgorCisgICAgICAg
IE9yaWdpbmFsIFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSBpcyByZW5hbWVkIHRv
IFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS4KKworICAgICAgICBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlIGFuZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBh
cmUgc2ltaWxhciB0byBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIGFuZAorICAgICAgICBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciBpbiB3ZWIgcHJvY2Vzcy4gUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIgaXMgc2ltaWxhciB0byBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5CisgICAg
ICAgIGluIFVJIHByb2Nlc3MuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZWFsdGltZU1l
ZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3ApOgorICAgICAgICAo
V2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
cmVxdWVzdFRvRW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2Vi
S2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0
dGluZ3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcmFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Ojp+UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9u
cyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3Vy
Y2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Zl
U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0
YXJ0KToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3Ap
OgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Y2xvbmVTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U2hvdWxkQXBwbHlSb3Rh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBs
eUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnJlcXVlc3RUb0VuZCk6CisgICAgICAgICogU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogU2hhcmVkL21l
ZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6c291cmNlVHlwZUZyb21EZXZpY2VUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9k
dWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpzZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp3aGVuUmVhZHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRBc1JlYWR5KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVz
QXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNj
ZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBs
eUNvbnN0cmFpbnRzRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQpOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZURldmljZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNvbnN0cmFpbnRzIGNvbnN0
KToKKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2VG
cm9tQ2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3ZlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUNh
cHR1cmVGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6cmVtb3RlU291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNz
YWdlU2VuZGVyRGVzdGluYXRpb25JRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29u
c3RyYWludHNGYWlsZWQpOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZW5zdXJlUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OlJl
bW90ZUF1ZGlvKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjph
ZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVk
aW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxh
eUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6c291cmNlVHlwZUZyb21EZXZpY2VUeXBlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6V2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6On5XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEFzUmVhZHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRDYXBhYmlsaXRp
ZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRT
ZXR0aW5ncyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVj
aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFp
bnRzU3VjY2VlZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6Omhhc0VuZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0
VG9FbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6aWRlbnRpZmllciBjb25zdCk6CisKIDIwMjAtMTItMDIgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
Zml4IHRoZSBpT1MgYnVpbGQgYWZ0ZXIgcjI3MDM2MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bAppbmRleCBkNGRhYTJiMjkxZGU1NjIxZDg3OTNiYzZhYzMyY2M3ZWM4ZDE0MmYyLi41NzlhYTUz
YmM5YmQ4MTA4ZGJmZmJmNDc3NzZkZWQxNzAzZTRhMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysg
Yi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbApAQCAtNzg4LDYgKzc4OCw3IEBAIFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDoKICAg
ICBXZWJLaXRMZWdhY3k6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgIFdlYktpdDoKKyAgICAg
ICJQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikiOiB0cnVlCiAgICAgICBkZWZhdWx0OiBm
YWxzZQogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
aW5kZXggNGEwNDIyNzQ4NTRiYWY0NjY3MWFhMzA5YzczODc5YTM1ODEzZDE5ZC4uMTJlYTQ3Yzdm
ZjdmMDA2MzgxMTgzYzVkMDQ5ZDhiMDVkMTYyMjI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0x
MzI3LDYgKzEzMjcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5o
CiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCiAg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmgKICAg
ICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAogICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJh
aW50cy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYzkzYjZmMzhiYzYyMzhk
YTFkYmE4NjhlMjllMWU1YjFlNmY2NmI2Yi4uMmU1NmE5MThlMzk5ZmQ3MDNmZTJmY2Q0M2Q3MzEw
OTcyZjM4YWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNCw5ICsz
NCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNr
JiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFj
aykKLXsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitPcHRpb25hbDxDYXB0dXJlRGV2aWNl
PiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKK3sK
ICAgICBPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlOwogICAgIGF1dG8gZGV2
aWNlcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsK
ICAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykgewpAQCAtNTEsMjYgKzUyLDE5IEBAIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlKFNwZWVjaFJlY29nbml0aW9uCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
IH0KKyAgICByZXR1cm4gY2FwdHVyZURldmljZTsKK30KIAotICAgIGlmICghY2FwdHVyZURldmlj
ZSkgewotICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxh
YmxlIGZvciBjYXB0dXJlIiB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOworfQogCi0gICAgYXV0byByZXN1
bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVG
YWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsg
fSk7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBy
ZXN1bHQuZXJyb3JNZXNzYWdlIH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFD
YWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2ssIFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKK3sKKyAgICBtX2ltcGwgPSBtYWtlVW5pcXVl
PFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdU
Rk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92
ZShzb3VyY2UpKTsKK30KIAotICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJh
Y2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOwotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50SWRlbnRpZmllcik7Ci0gICAgVU5VU0VEX1BBUkFN
KGRhdGFDYWxsYmFjayk7Ci0gICAgVU5VU0VEX1BBUkFNKHN0YXRlVXBkYXRlQ2FsbGJhY2spOwog
I2VuZGlmCi19CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmgKaW5kZXggNzM4NmNlZWUyNzQwN2NjNjEwNGUyOWVkNzNkZTdkYTBhNDlmNGUwYS4uNjlm
OWE4OGIyNjFlNzFmNjZlYzAwYmI5ZTcxZGEwZjNhYzgxOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmgKQEAgLTQyLDEwICs0MiwxNiBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlKCkgPSBkZWZhdWx0OwogICAgIH5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uo
KSA9IGRlZmF1bHQ7CiAgICAgdXNpbmcgRGF0YUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25z
dCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+OwogICAgIHVzaW5nIFN0YXRlVXBkYXRlQ2FsbGJh
Y2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OwotICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYm
KTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Q2Fw
dHVyZURldmljZT4gZmluZENhcHR1cmVEZXZpY2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJik7CisjZW5kaWYKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRleCBiZmM1YmUx
MDM0YmUzYzEyZDJjYWRlYzNlMTIxOTQzZWFiODk5MzIzLi45ODQyNjdlMmIxOTQ5MWM2NGFjNWVk
ZWM2MzQzZDA3NmViNDE0MWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
LmNwcApAQCAtODgsNiArODgsMTAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogICAgIGlmICgh
bV9kYXRhU291cmNlIHx8ICFtX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSB8fCAqbV9k
YXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgIT0gZGVzY3JpcHRpb24pIHsKICAgICAgICAg
YXV0byBkYXRhU291cmNlID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoZGVzY3JpcHRp
b24uc2FtcGxlUmF0ZSgpICogMSwgbV9zb3VyY2UuZ2V0KCkpOwogICAgICAgICBpZiAoZGF0YVNv
dXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGlm
IChpc01haW5UaHJlYWQoKSkgeworICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVy
LCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1
ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0IiB9KSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewogICAgICAgICAgICAgICAg
IGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNr
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIs
IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVk
aW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1dCBmb3JtYXQiIH0pKTsKQEAgLTk2LDYgKzEw
MCwxMCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmCiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
ZGF0YVNvdXJjZS0+c2V0T3V0cHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CisgICAgICAg
ICAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRl
Q2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRl
bnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpBdWRpb0NhcHR1cmUsICJVbmFibGUgdG8gc2V0IG91dHB1dCBmb3JtYXQiIH0pKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CiAgICAgICAg
ICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRl
Q2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRl
bnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpBdWRpb0NhcHR1cmUsICJVbmFibGUgdG8gc2V0IG91dHB1dCBmb3JtYXQiIH0pKTsKQEAg
LTExMCw3ICsxMTgsNyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmCiAgICAgfQogCiAgICAgbV9k
YXRhU291cmNlLT5wdXNoU2FtcGxlcyh0aW1lLCBkYXRhLCBzYW1wbGVDb3VudCk7Ci0gICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgdGltZSwg
YXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnRdIHsKKyAgICBhdXRvIG1haW50aHJlYWRIYW5k
bGVyID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRpbWUsIGF1ZGlvRGVz
Y3JpcHRpb24sIHNhbXBsZUNvdW50XSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CiAKQEAgLTEyMSw3ICsxMjksMTEgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JgogICAgICAgICB9CiAKICAgICAgICAgbV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgYXVkaW9E
ZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQpOwotICAgIH0pOworICAgIH07CisgICAgaWYgKCFpc01h
aW5UaHJlYWQoKSkKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKG1haW50aHJlYWRI
YW5kbGVyKSk7CisgICAgZWxzZQorICAgICAgICBtYWludGhyZWFkSGFuZGxlcigpOwogI2Vsc2UK
ICAgICBtX2RhdGFDYWxsYmFjayh0aW1lLCBkYXRhLCBkZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuY3BwCmluZGV4IDViZWI2MDU2NDdiMzI5ZTI2NGY4M2MyNDlmNTdjMmEyMDgxYzJm
ZDcuLmY2NDlhNzg2NTlmZTM5YmNkN2U0MjI1MzJiNTUzMmQ5MTBiOTJiOTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCkBAIC01
NCwxNSArNTQsMjIgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpyZXNldCgpCiAKIHZvaWQgU3Bl
ZWNoUmVjb2duaXplcjo6c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBpZGVudGlmaWVyKQogewotICAgIHJlc2V0KCk7CisgICAgLy8gTWFrZSBzdXJlIG5v
IG9uZ29pbmcgcmVxdWVzdC4KKyAgICBBU1NFUlQoIW1fc291cmNlKTsKIAogICAgIG1fY2xpZW50
SWRlbnRpZmllciA9IGlkZW50aWZpZXI7CiAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTdGFydCkpOworfQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
IAotICAgIHN0YXJ0SW50ZXJuYWwoKTsKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnQoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgc3RhcnQoaWRlbnRpZmllcik7
CisgICAgc2V0U291cmNlKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLXZvaWQgU3BlZWNoUmVjb2du
aXplcjo6c3RhcnRJbnRlcm5hbCgpCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnNldFNvdXJjZShS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiB7CiAgICAgYXV0byBkYXRhQ2FsbGJh
Y2sgPSBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29uc3QgYXV0byYgdGltZSwgY29u
c3QgYXV0byYgZGF0YSwgY29uc3QgYXV0byYgZGVzY3JpcHRpb24sIGF1dG8gc2FtcGxlQ291bnQp
IHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKQEAgLTkwLDkgKzk3LDExIEBAIHZvaWQgU3BlZWNo
UmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgpCiAgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxw
dHI7CiAgICAgfTsKIAotICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNr
KSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSk7CisgICAgbV9zb3VyY2UgPSBtYWtlVW5p
cXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwg
V1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBXVEZN
b3ZlKHNvdXJjZSkpOwogfQogCisjZW5kaWYKKwogdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9w
KFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCkKIHsK
ICAgICBpZiAoIW1fY2xpZW50SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAppbmRleCBlNmYxM2ZlZTg0YTUzM2FmMGYwNGUw
NzY5YzFhZTA5NWJlNWJmZjNmLi4zNWViZmVlNDU1M2Y2MjY5NjA2ODMxZDJhOTJhMGRlNjVjZmJj
ODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5oCkBAIC0zOSwxNyArMzksMjMgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4
cGxpY2l0IFNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB+U3BlZWNoUmVjb2duaXplcigpID0gZGVmYXVsdDsKIAorICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVzZXQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7Cisj
ZW5kaWYKICAgICBlbnVtIGNsYXNzIFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgeyBObywgWWVz
IH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1
bHQgPSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpOwogCiAgICAgT3B0aW9uYWw8U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KIAogcHJpdmF0
ZToKLSAgICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9pZCBzdGFydEludGVybmFsKCk7CiAgICAgdm9p
ZCBzdG9wSW50ZXJuYWwoKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBz
ZXRTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworI2VuZGlmCisKICAgICBPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVu
dElkZW50aWZpZXI7CiAgICAgRGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3Vy
Y2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMmY4M2FlNTZmMjNmODFiZjkxY2Y2MjU1ZDVlZTk3OTBlMmM5YjJjNy4uMjMxZTg0
NGEyZTE0MDNjOGVhZWE0NGYzOGNlNTU4MThmZDI4ODU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2MjcsMTMgKzIzNjI3
LDYgQEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
Ci0JCTkzRjZCODBFMjU2NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLyA9IHsKLQkJCWlzYSA9IFBC
WEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkpOwotCQkJcGF0aCA9IGNvY29hOwotCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJOTQ2RDM3MjcxRDZDQjIyNTAwNzcwODRGIC8q
IHBhcnNlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0y
NTY2NCw3ICsyNTY1Nyw2IEBACiAJCUFBMkE1QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVlY2gg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTkzRjZCODBF
MjU2NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVB
MjUgLyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0
ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEy
QTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKaW5kZXggODhlMTUxYjEyMjI0ZmViY2M4OTNiNTNkNjg1ZTNlYzFiMDEw
Y2Q0NS4uODAyYjdjZjFlZTQzZDI3OWQ4MTQ3N2ZjNDcyMDAwOGUxMDU2NDkyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CkBAIC01MCw2ICs1MCw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMSIKICAgICAi
JHtXRUJLSVRfRElSfS9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlIgogICAgICIke1dFQktJVF9ESVJ9
L1NoYXJlZC9XZWJzaXRlRGF0YSIKKyAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvbWVkaWEiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9DIgpAQCAtMTAzLDYgKzEw
NCw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hl
IgorICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3BlZWNoIgogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvU3RvcmFnZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1Vz
ZXJDb250ZW50IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQi
CkBAIC0xODUsNiArMTg3LDkgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAg
U2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAorICAgIFNoYXJlZC9tZWRp
YS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgorICAgIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcgorCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkK
ICAgICBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIKICAgICBVSVByb2Nlc3MvVmlz
aXRlZExpbmtTdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IGU1MWNhZWQyMWUxODZjZjJhMTczY2I4YTMzMzEyYmUwYjMwNGJiMDAuLjcy
NjA1NzMwZjFjY2NkOTgzZTQ0MTE0YTA3OTM3NDA4OTAwNzAwZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTkxLDYgKzkxLDggQEAgJChQ
Uk9KRUNUX0RJUikvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1NoYXJlZC9IVFRQU1VwZ3JhZGUvSFRUUFNVcGdyYWRlTGlzdC50eHQKICQoUFJPSkVD
VF9ESVIpL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvV2ViQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L0F1dG9tYXRpb24uanNvbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9D
b2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGU4OGIyYzIxZmE3
MTdjNzdkMjMwMmNiNTE4YmE0YWQzZWRlMjU3NGEuLjA1ZmIzZWY2NWViY2UzODVhMjk4NjJmMTY0
MGE5NDMwZDNmMWE0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdApAQCAtMTMxLDYgKzEzMSw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyTWVzc2FnZXMuaApAQCAtMjI0LDYgKzIyNyw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlc1JlcGxp
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmpl
Y3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0
cnlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggNjgxNDg1NWZmOWQyM2FmMGE3N2U1ZmRhNmRmZDJmZDU1MDk3NmY2
OS4uZjljNmZkZDIzYWU2OGJkYmVjYzUwMmU1MTBiYzg3MTA0NThkYTQxYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtMTM4LDYgKzEzOCw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0g
XAogCVNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eSBcCiAJU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlciBcCiAJU2hhcmVkL1dlYkNvbm5l
Y3Rpb24gXAorCVNoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCisJU2hh
cmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nlc3Mv
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKIAlVSVByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIxOWZhZjhlNGE4NmM1YzM4
NTA4OWY2NmNjNGQ2MWUxMDM0NDQ1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDMz
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
V2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisjZWxzZQorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1BdWRpb0RhdGEuaD4K
KyNlbmRpZgorCisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRp
b1Nlc3Npb24uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICA6IHByaXZhdGUg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgorI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgICwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQK
KyNlbmRpZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9pZGVudGlmaWVy
KGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAgICAg
ICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCisj
ZW5kaWYKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAg
ICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAg
ICB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworI2VuZGlmCisgICAgICAgIG1fc291cmNlLT5y
ZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92
ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KCkKKyAgICB7CisgICAg
ICAgIG1fc291cmNlLT5zdGFydCgpOworICAgIH0KKworICAgIHZvaWQgc3RvcCgpCisgICAgewor
ICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0KKworICAgIHZvaWQgcmVxdWVzdFRvRW5k
KCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5yZXF1ZXN0VG9FbmQoKnRoaXMpOworICAgIH0K
KworICAgIE9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkFwcGx5Q29uc3Ry
YWludHNFcnJvcj4gYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJiBjb25zdHJhaW50cykKKyAgICB7CisgICAgICAgIHJldHVybiBtX3NvdXJjZS0+YXBwbHlD
b25zdHJhaW50cyhjb25zdHJhaW50cyk7CisgICAgfQorCisgICAgY29uc3QgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9zb3VyY2UtPnNldHRpbmdzKCk7CisgICAgfQorCisgICAgUmVmPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3Nv
dXJjZS0+Y2xvbmUoKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsK
KyAgICB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5h
bAorICAgIHsKKyAgICAgICAgaWYgKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKSB7CisgICAg
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRlbnRpZmllciksIDApOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZVNvdXJjZVN0
b3BwZWQobV9pZGVudGlmaWVyKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBhdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1
ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKSBmaW5hbAorICAgIHsKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24p
IHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCku
dHlwZSA9PSBXZWJDb3JlOjpQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNU
eXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigp
LmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3Jp
cHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgICAgIG1fcmluZ0J1ZmZlci5hbGxvY2F0
ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFtZXMpOwor
ICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlz
dD4oYXVkaW9EYXRhKSk7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zdG9yZShkb3duY2FzdDxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZyYW1l
cywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAg
ICAgIHVpbnQ2NF90IGVuZEZyYW1lOworICAgICAgICBtX3JpbmdCdWZmZXIuZ2V0Q3VycmVudEZy
YW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQXVk
aW9TYW1wbGVzQXZhaWxhYmxlKG1faWRlbnRpZmllciwgdGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0
YXJ0RnJhbWUsIGVuZEZyYW1lKSwgMCk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0odGlt
ZSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShhdWRpb0RhdGEpOworICAgICAgICBVTlVTRURfUEFS
QU0oZGVzY3JpcHRpb24pOworICAgICAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOwor
I2VuZGlmCisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyAgICB2b2lkIHN0b3JhZ2VD
aGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwKKyAgICB7CisgICAgICAgIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKHN0b3JhZ2UpCisgICAgICAgICAg
ICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246
OlJlYWRPbmx5KTsKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpCisgICAgICAgIHVpbnQ2
NF90IGRhdGFTaXplID0gaGFuZGxlLnNpemUoKTsKKyNlbHNlCisgICAgICAgIHVpbnQ2NF90IGRh
dGFTaXplID0gMDsKKyNlbmRpZgorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTZXRTdG9yYWdlKG1faWRlbnRpZmll
ciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9
LCBtX2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJhbWVzKSwgMCk7CisgICAgfQorCisjZW5kaWYK
KworICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkgZmluYWwKKyAgICB7CisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisgICAgICAgIGF1dG8gYnVmZmVyU2l6ZSA9IFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOworICAgICAgICBpZiAoV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVyU2l6ZSgp
ID4gYnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVk
U2Vzc2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7CisgICAgICAgIFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5
OjpEZWZhdWx0KTsKKyNlbmRpZgorICAgIH0KKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworICAgIGludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIFdlYkNvcmU6OkNBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CisgICAgV2Vi
Q29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworI2VuZGlm
Cit9OworCitSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgKnRoaXMpOworfQorCitSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6flJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1v
dmVNZXNzYWdlUmVjZWl2ZXIoKnRoaXMpOworfQorCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5T
SU9OUykKKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0
ZW5zaW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7
CisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JUQ0NEKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRl
bnNpb25Gb3JUQ0NEKQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJv
eCBleHRlbnNpb24gZm9yIHRjY2QiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVu
c2lvbkZvclRDQ0QtPmNvbnN1bWUoKTsKKworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3Jv
cGhvbmUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9y
TWljcm9waG9uZSkpOworICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkK
KyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZv
ciBtaWNyb3Bob25lIik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JN
aWNyb3Bob25lLT5jb25zdW1lKCk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKK3sKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5z
aW9uRm9yVENDRCkgeworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NELT5yZXZva2Uo
KTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9IG51bGxwdHI7CisgICAgfQor
CisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUpIHsKKyAgICAgICAgbV9z
YW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJv
eEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBudWxscHRyOworICAgIH0KK30KKworI2VuZGlmCisK
K3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYkNvcmU6OkNhcHR1
cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CisgICAgc3dpdGNoIChjYXB0dXJlRGV2aWNl
LnR5cGUoKSkgeworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZToKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25z
dHJhaW50cyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAgICAgICBzb3VyY2VPckVycm9yID0gV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9y
eSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCBXVEZNb3ZlKGhhc2hT
YWx0KSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IpCisgICAgICAg
ICAgICBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPm1vbml0b3JPcmllbnRhdGlvbihtX29y
aWVudGF0aW9uTm90aWZpZXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmRpc3BsYXlDYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsICZj
b25zdHJhaW50cyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBib29sIHN1Y2NlZWRlZCA9ICEhc291cmNlT3JF
cnJvcjsKKyAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzOworICAgIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKKyAgICBpZiAoc3VjY2VlZGVkKSB7
CisgICAgICAgIGF1dG8gc291cmNlID0gc291cmNlT3JFcnJvci5zb3VyY2UoKTsKKyAgICAgICAg
c2V0dGluZ3MgPSBzb3VyY2UtPnNldHRpbmdzKCk7CisgICAgICAgIGNhcGFiaWxpdGllcyA9IHNv
dXJjZS0+Y2FwYWJpbGl0aWVzKCk7CisgICAgICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5p
cXVlPFJlYWx0aW1lTWVkaWFTb3VyY2U+KGlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlKSwgbWFr
ZVJlZigqbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSkpKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
aW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7
CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZWVkZWQsIGludmFsaWRDb25zdHJhaW50cywg
V1RGTW92ZShzZXR0aW5ncyksIFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7Cit9CisKK3ZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc291cmNlcy5yZW1vdmUo
aWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAg
c291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpz
dG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAg
ICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKK30K
KwordWludDY0X3QgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6Y2xvbmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgb3JpZ2luYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBuZXdJZGVudGlmaWVyKQoreworICAgIC8vIFRPRE86IGltcGxlbWVudCB0
aGlzLgorICAgIGF1dG8gb3JpZ2luYWxTb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KG9yaWdpbmFsSWRl
bnRpZmllcik7CisgICAgaWYgKCFvcmlnaW5hbFNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMobmV3SWRlbnRpZmllcikpOworICAgIG1fc291
cmNlcy5hZGQobmV3SWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlPihu
ZXdJZGVudGlmaWVyLCBvcmlnaW5hbFNvdXJjZS0+Y2xvbmUoKSwgbWFrZVJlZigqbWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSkpKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgaWYg
KGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNl
LT5zdG9wKCk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29u
c3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCit7CisgICAg
YXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpOworICAgIGlmICghc291cmNl
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50cyhjb25zdHJhaW50cyk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRz
U3VjY2VlZGVkKGlkZW50aWZpZXIsIHNvdXJjZS0+c2V0dGluZ3MoKSkpOworICAgIGVsc2UKKyAg
ICAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFw
cGx5Q29uc3RyYWludHNGYWlsZWQoaWRlbnRpZmllciwgcmVzdWx0LT5iYWRDb25zdHJhaW50LCBy
ZXN1bHQtPm1lc3NhZ2UpKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
cmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50
aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVy
KSkKKyAgICAgICAgc291cmNlLT5yZXF1ZXN0VG9FbmQoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRp
YS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVk
aWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGQwNDEzYzVkZTg0
ZmIzNDA2N2M1MDcxMTdkZWYwNDNmMDFkZjU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsx
LDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNl
bmRlci5oIgorI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L09yaWVudGF0aW9uTm90aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CitjbGFzcyBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3M7CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzOworc3RydWN0IE1lZGlhQ29uc3RyYWludHM7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgflJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisKK3ByaXZhdGU6CisgICAgLy8gTWVzc2FnZXMK
KyAgICB2b2lkIGFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
IHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMmJik+JiYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgY2xvbmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgb3JpZ2luYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBuZXdJZGVudGlmaWVyKTsKKyAgICB2b2lkIHNldFNo
b3VsZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzJik7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisg
ICAgdm9pZCBncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYm
LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9pZCByZXZva2VTYW5kYm94RXh0
ZW5zaW9ucygpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92
ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlv
biogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgY2xhc3MgUmVh
bHRpbWVNZWRpYVNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsK
KyAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6
OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fc291cmNlczsKKyAgICBXZWJDb3Jl
OjpPcmllbnRhdGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllciB7IDAgfTsKKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+
IG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Q7CisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+
IG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmU7CisjZW5kaWYKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDllZGJiOTBkZWMzZmM3OTJlOWUyYTUyYTBmYzNjNDA1N2Y0MTI2NAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNDQgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNz
YWdlcyAtPiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBB
ZGRTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3Ms
IFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyBjYXBhYmlsaXRpZXMpIEFzeW5jCisgICAgUmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgU3RhcnQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisgICAgU3RvcChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKworICAgIENsb25l
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG9yaWdpbmFsSWRl
bnRpZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbmV3SWRlbnRp
ZmllcikKKyAgICBTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKKyAg
ICBBcHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRz
KQorICAgIFJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQorCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICBHcmFu
dFNhbmRib3hFeHRlbnNpb25zKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGVGb3JUQ0NELCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yTWljcm9waG9uZSkKKyAgICBSZXZva2VTYW5kYm94
RXh0ZW5zaW9ucygpCisjZW5kaWYKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGZlNTA2MzVjZDlmNWUwOWY0NmJlOWVmMDdhZmY2N2EzZTk1MTk1ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
bW90ZVZpZGVvU2FtcGxlLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgaW5saW5l
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZUZyb21EZXZpY2VU
eXBlKFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSkKK3sKKyAg
ICBzd2l0Y2ggKGRldmljZVR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OlZpZGVvOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAg
ICByZXR1cm4gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKK30KKwor
UmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgbWFuYWdlciwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCks
IG1hbmFnZXIsIGNhcHR1cmVEZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSkpOworfQorCitSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIE9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
PiBvcmlnaW5hbElkZW50aWZpZXIpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
KHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShjYXB0dXJlRGV2aWNlLnR5cGUoKSksIFdURk1vdmUo
bmFtZSksIFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9VSW50NjQoKSksIFdURk1vdmUoaGFz
aFNhbHQpKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFnZXIo
bWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX2NhcHR1cmVEZXZpY2UoY2FwdHVyZURldmlj
ZSkKKyAgICAsIG1fY29uc3RyYWludHMoY29uc3RyYWludHMpCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+KG1h
a2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkKKyNlbmRpZgor
eworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzd2l0Y2ggKG1fY2FwdHVyZURldmlj
ZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
Ok1pY3JvcGhvbmU6CisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkNhbWVyYToKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhp
cyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6V2luZG93OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICB9CisjZW5kaWYKKworICAgIGlmICghb3JpZ2luYWxJZGVudGlmaWVyKSB7CisgICAgICAg
IG1fbWFuYWdlci0+YWRkU291cmNlKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIG1fbWFuYWdlci0+YWRkU291cmNlRnJvbUNsb25lKCp0aGlzLCAqb3JpZ2luYWxJZGVudGlm
aWVyKTsKK30KKworUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UoKQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3dpdGNoIChtX2Nh
cHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVT
b3VyY2UoKnRoaXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0
aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBjYXNlIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAg
ICAgbV9tYW5hZ2VyLT5yZW1vdmVTb3VyY2UoKnRoaXMpOworfQorCit2b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1fbWFuYWdl
cikKKyAgICAgICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6U3RhcnQgeyBtX2lkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIp
CisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OlN0b3AgeyBtX2lkZW50aWZpZXIgfSk7Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkK
Kwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIG1f
ZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1l
bW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtZW1vcnkgPSBTaGFy
ZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkp
OworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3Ig
cmVtb3RlIHNvdXJjZSIpOworICAgIH0KKworICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNfY2Fz
dDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAg
ICBpZiAoIW1lbW9yeSkgeworICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKKyAg
ICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2Uuc2V0U3Rv
cmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0b3JhZ2Uuc2V0
U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAgc3RvcmFnZS5zZXRSZWFkT25s
eSh0cnVlKTsKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7CisgICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OldlYkF1ZGlvQnVm
ZmVyTGlzdD4oZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCgpCit7Cisg
ICAgY2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnJlbW90ZVNvdXJjZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKworLy8gV2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZQordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp3aGVu
UmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKQoreworICAg
IGlmIChtX2lzUmVhZHkpCisgICAgICAgIHJldHVybiBjYWxsYmFjayhXVEZNb3ZlKG1fZXJyb3JN
ZXNzYWdlKSk7CisgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOworfQorCit2b2lk
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEFzUmVhZHkoKQoreworICAgIG1faXNSZWFk
eSA9IHRydWU7CisgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgIG1fY2FsbGJhY2soeyB9KTsK
K30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpkaWRGYWlsKFN0cmluZyYmIGVy
cm9yTWVzc2FnZSkKK3sKKyAgICBtX2lzUmVhZHkgPSB0cnVlOworICAgIG1fZXJyb3JNZXNzYWdl
ID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOworICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICBt
X2NhbGxiYWNrKG1fZXJyb3JNZXNzYWdlKTsKK30KKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lKCkKK3sKKyAgICBzd2l0
Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86
CisgICAgICAgIHJldHVybiBjbG9uZVZpZGVvU291cmNlKCk7CisgICAgY2FzZSBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIGNhc2Ug
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9Cit9CisKK1JlZjxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZVZpZGVv
U291cmNlKCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikgeworICAgICAgICBMT0dfRVJST1IoIlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2UgbWFuYWdlciBkb2VzIG5v
dCBleGlzdCIpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgYXV0byBpZGVu
dGlmaWVyID0gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRl
KCk7CisgICAgYXV0byBsYWJlbCA9IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKTsKKyAgICBh
dXRvIGNsb25lU291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
KGlkZW50aWZpZXIsICptX21hbmFnZXIsIG1fY2FwdHVyZURldmljZSwgbV9jb25zdHJhaW50cywg
U3RyaW5nIHsgbGFiZWwgfSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX2lkZW50aWZpZXIpKTsKKyAg
ICBjbG9uZVNvdXJjZS0+c2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIHsgbV9zZXR0aW5ncyB9KTsKKyAgICByZXR1cm4gY2xvbmVTb3VyY2U7Cit9CisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCit7CisgICAgbV9j
YXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiYgc2V0dGluZ3MpCit7CisgICAgYXV0byBjaGFuZ2VkID0gbV9zZXR0aW5ncy5k
aWZmZXJlbmNlKHNldHRpbmdzKTsKKyAgICBtX3NldHRpbmdzID0gV1RGTW92ZShzZXR0aW5ncyk7
CisgICAgbm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMoY2hhbmdlZCk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRG
cmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYg
KCFtX2J1ZmZlcikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZlciBmb3IgcmVtb3RlIHNvdXJj
ZSBpcyBudWxsIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7Cisg
ICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJh
bWUpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZG
cmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1l
LCAqbV9idWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7Cisg
ICAgVU5VU0VEX1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShlbmRGcmFtZSk7
CisjZW5kaWYKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZp
ZGVvU2FtcGxlJiYgcmVtb3RlU2FtcGxlKQoreworICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6
VmlkZW8pOworCisgICAgc2V0SW50cmluc2ljU2l6ZShyZW1vdGVTYW1wbGUuc2l6ZSgpKTsKKwor
ICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9u
LT5waXhlbEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQorICAgICAgICBt
X2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y3JlYXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKKworICAgIGlmICghbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc2FtcGxlUmVmID0gbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbi0+Y3JlYXRlTWVkaWFTYW1wbGUocmVtb3RlU2FtcGxlKTsKKyAgICBpZiAoIXNhbXBsZVJl
ZikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1w
bGVSZWYpOworfQorCisjZW5kaWYKKworYm9vbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpz
ZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKK3sKKyAgICBp
ZiAobV9tYW5hZ2VyKSB7CisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNzYWdlczo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNldFNob3VsZEFwcGx5Um90YXRpb24obV9pZGVudGlmaWVy
LCBzaG91bGRBcHBseVJvdGF0aW9uKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBw
bHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50
cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBp
ZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wZW5kaW5nQXBwbHlDb25z
dHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
IC8vIEZJWE1FOiBVc2Ugc2VuZEFzeW5jV2l0aFJlcGx5LgorICAgIG1fbWFuYWdlci0+c2VuZChN
ZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFwcGx5Q29uc3RyYWludHMgeyBt
X2lkZW50aWZpZXIsIGNvbnN0cmFpbnRzIH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICBzZXRTZXR0aW5ncyhXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Moc2V0dGluZ3MpKTsKKyAgICBhdXRvIGNh
bGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsK
KyAgICBjYWxsYmFjayh7IH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5n
JiYgZXJyb3JNZXNzYWdlKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNv
bnN0cmFpbnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOworICAgIGNhbGxiYWNrKEFwcGx5Q29uc3Ry
YWludHNFcnJvciB7IFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNz
YWdlKSB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdP
YnNlcnZlZCgpCit7CisgICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6UmVxdWVzdFRvRW5kIHsgbV9pZGVudGlmaWVyIH0pOworfQorCit2b2lk
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChPYnNlcnZlciYgb2JzZXJ2
ZXIpCit7CisgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICBjYXNlIFR5cGU6OkF1ZGlvOgorICAg
ICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQob2JzZXJ2ZXIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFR5cGU6OlZpZGVvOgorICAgICAgICBzdG9wQmVpbmdPYnNlcnZl
ZCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI2ZmQ4NTRkYTA3YmQ0ODEyZDg2MDM1MTE5
NDFmYTFmNzE2NGM3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21l
ZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDExMSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgQ2FwdHVyZURldmljZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDsKKyNlbmRpZgorfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisKK2NsYXNzIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUo
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICB+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOwor
CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2NhcHR1cmVEZXZpY2U7
IH07CisgICAgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMoKSBj
b25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnRzOyB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2Vi
Q29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMp
OworI2VuZGlmCisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1l
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3Qg
ZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworICAgIHZvaWQgcmVt
b3RlU291cmNlU3RvcHBlZCgpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcmVtb3Rl
VmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7IC8vIEFk
ZGVkCisjZW5kaWYKKworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25zdCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKKyAgICB2b2lkIGFwcGx5Q29u
c3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JN
ZXNzYWdlKTsKKyAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKKyAgICB2
b2lkIHNldEFzUmVhZHkoKTsKKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOworICAgIHZvaWQgc2V0U2V0dGluZ3MoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOworICAgIAorcHJpdmF0ZToKKyAg
ICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIE9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyPiBvcmlnaW5hbElkZW50aWZpZXIgPSBXVEY6Om51bGxvcHQp
OworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVvU291cmNl
KCk7CisgICAgCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIHZvaWQg
c3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgp
IGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAg
Y29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZp
bmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAgICBib29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHNldFNob3VsZEFwcGx5Um90YXRp
b24oYm9vbCkgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImKSBmaW5hbDsK
KyAgICB2b2lkIHN0b3BCZWluZ09ic2VydmVkKCkgZmluYWw7CisgICAgdm9pZCBhcHBseUNvbnN0
cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRz
SGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0cmluZyk+JiYpIGZpbmFsOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9u
ZSgpIGZpbmFsOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
bV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI+IG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzIG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyBtX3NldHRpbmdzOworICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9jYXB0dXJlRGV2
aWNlOworICAgIFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsKKworICAg
IERlcXVlPEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRz
Q2FsbGJhY2tzOworICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsKKyAgICBTdHJpbmcgbV9l
cnJvck1lc3NhZ2U7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBtX2NhbGxi
YWNrOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNB
UmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpX
ZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOworI2VuZGlm
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTFhYWIxM2FiYWFmMGI1M2U3NDI3NTYyOWYxMDY4
YTAwYzY1NTJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEv
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5j
bHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9u
KSkKK3sKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291
cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGlkZW50
aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRh
aW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFr
UHRyKHNvdXJjZSkpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykgJiYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAoIW1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25z
KSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JUQ0NEOworICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBw
bGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCksIGhhbmRsZUZvclRDQ0Qp
OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yTWljcm9waG9uZTsK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lv
bigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9zLCBoYW5kbGVGb3JNaWNyb3Bob25lKTsK
KyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkdyYW50
U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9yVENDRCwgaGFuZGxlRm9yTWljcm9waG9uZSkpOwor
ICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IHRydWU7CisgICAgfQorI2Vu
ZGlmCisKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpBZGRTb3VyY2UoaWRlbnRpZmllciwgc291cmNlLmNhcHR1cmVEZXZpY2UoKSwg
c291cmNlLmRldmljZUlESGFzaFNhbHQoKSwgc291cmNlLmNvbnN0cmFpbnRzKCkpLCBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgaWRlbnRpZmllcl0oYm9vbCBzdWNjZWVkZWQs
IGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGll
cykgeworICAgICAgICBhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcik7Cisg
ICAgICAgIGlmICghc291cmNlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICgh
c3VjY2VlZGVkKSB7CisgICAgICAgICAgICBzb3VyY2UtPmRpZEZhaWwoV1RGTW92ZShlcnJvck1l
c3NhZ2UpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHNvdXJj
ZS0+c2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOworICAgICAg
ICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICAgICAgc291cmNl
LT5zZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKKyAgICAgICAgc291cmNl
LT5zZXRBc1JlYWR5KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OmFkZFNvdXJjZUZyb21DbG9uZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
JiBzb3VyY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG9yaWdpbmFs
SWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKG9yaWdpbmFsSWRl
bnRpZmllcikpOworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7Cisg
ICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNl
cy5hZGQoaWRlbnRpZmllciwgbWFrZVdlYWtQdHIoc291cmNlKSk7CisKKyAgICAvLyBUT0RPOiBh
ZGQgdGhpcyB0byBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Q2xvbmVTb3VyY2UgeyBvcmlnaW5hbElkZW50
aWZpZXIsIGlkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2Up
Cit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NF
UlQobV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAgICBtX3NvdXJjZXMu
cmVtb3ZlKGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykgJiYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAobV9zb3VyY2VzLmlzRW1wdHkoKSAmJiBt
X2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKSk7Cisg
ICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gZmFsc2U7CisgICAgfQorI2Vu
ZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVt
b3ZlU291cmNlKGlkZW50aWZpZXIpKTsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lk
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIGlm
IChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJj
ZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFt
ZXMpOworfQorCisjZW5kaWYKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVy
T2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNvdXJj
ZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVtb3RlQ2Fw
dHVyZUZhaWxlZCgpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpyZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChp
ZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVTb3VyY2VTdG9wcGVkKCk7Cit9CisK
K0lQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3Nh
Z2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0
cigpOworfQorCit1aW50NjRfdCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVz
c2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit2
b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzU3Vj
Y2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit7
CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAg
ICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKHNldHRpbmdzKTsKK30KKwordm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxl
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJp
bmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBtZXNzYWdlKQoreworICAgIGlmIChhdXRv
IHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+YXBw
bHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKG1l
c3NhZ2UpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTU5YzhkMDk2MjViMmZjNjkyNGI3ZWM1OTM3
MDgxZDJkZmQ2NWJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVk
aWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDg2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgor
I2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7
Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CitjbGFzcyBS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M7CisKKyNpZiBQTEFURk9STShDT0NPQSkKK2NsYXNz
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKKyNlbmRpZgorfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTsKKworY2xhc3MgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1
YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIGV4cGxpY2l0IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIHZvaWQgYWRkU291cmNlKFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UmKTsKKyAgICB2b2lkIGFkZFNvdXJjZUZyb21DbG9uZShSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgcmVtb3ZlU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworcHJp
dmF0ZToKKyAgICAvLyBNZXNzYWdlcworICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxh
YmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1l
ZGlhVGltZSYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1
aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0
b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7Cisg
ICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLCBTdHJpbmcmJiwgU3RyaW5nJiYpOworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHZvaWQgc2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKwor
ICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlv
bklEKCkgY29uc3QgZmluYWw7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
V2Vha1B0cjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworICAgIGJvb2wg
bV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYjA1MjFhZDk5MTU0OGU3ZDVmMGM5Njc4ODdiZTU1
MDhkOGNlOTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDQw
IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIgTm90UmVmQ291bnRlZCB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6
OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisj
ZW5kaWYKKworICAgIFJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1l
KQorICAgIFJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBSZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisKKyAgICBBcHBseUNvbnN0
cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykK
KyAgICBBcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcgbWVz
c2FnZSkKK30KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDA5MTdmMDFiZTFjOWY4Y2FhMmFi
ZjdmMGY4OTBmODk1YTNmMmVmODYuLmE2NzU0NTBjZTE4NzZkMjAwMDhkYTVjM2IzYTEwMDMzYjYy
YmJiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjc3LDYgKzI3NywxMCBAQCBTaGFyZWQvUGx1Z2lucy9O
ZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAgQG5vLXVuaWZ5CiAKIFNoYXJlZC9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YS5jcHAKIAorU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcAorU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCitT
aGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFVJUHJv
Y2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwCiBVSVByb2Nlc3MvQmFja2dyb3VuZFByb2Nl
c3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcAogVUlQcm9jZXNzL0RldmljZUlkSGFzaFNhbHRTdG9y
YWdlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDRlYThiNzgxZDIwYTgxYTA4ZTQ0YjQ0
ZGJhMGI1OGYyMWJkNmY5NzMuLjY5Y2U1MWE3Y2MxNzMxMTc3YmJkMjMyYjY2ZjRhZTEzY2RjN2Nk
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU2NiwxMCArNTY2LDEwIEBAIFdlYlByb2Nl
c3MvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yQ29jb2EubW0KIAogV2ViUHJv
Y2Vzcy9jb2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCiBXZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAotV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAKIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KK1dlYlByb2Nlc3MvY29jb2EvV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29h
L1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA5
ZjYwMGQzZjVjZGM2YzMyYzU0OGEwYTA5YWIwMmJjMTQ1MzQ1MjQ0Li45YTJhODNkODE1YWMxODRl
MmUzYzM0MGUwY2Q2NmNlNTI0YTQ3Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC05Myw2ICs5MywzOCBAQCB2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbgogICAgICAgICB9KTsKICAgICB9CiAKKyAgICBtX3JlY29nbml6
ZXItPnJlc2V0KCk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gY2FwdHVy
ZURldmljZSA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZp
Y2UoKTsKKyAgICBpZiAoIWNhcHR1cmVEZXZpY2UpIHsKKyAgICAgICAgbV9yZXF1ZXN0cy5yZW1v
dmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHNlbmRVcGRhdGUoU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
RXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2
aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKSB7CisgICAg
ICAgIGF1dG8gcmVhbHRpbWVTb3VyY2UgPSBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5j
dGlvbigqY2FwdHVyZURldmljZSk7CisgICAgICAgIGlmICghcmVhbHRpbWVTb3VyY2UpIHsKKyAg
ICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICAg
ICAgc2VuZFVwZGF0ZShTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50
SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJy
b3JUeXBlOjpBdWRpb0NhcHR1cmUsICJGYWlsZWQgdG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIg
fSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fcmVjb2duaXpl
ci0+c3RhcnQoY2xpZW50SWRlbnRpZmllciwgbWFrZVJlZigqcmVhbHRpbWVTb3VyY2UpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc291cmNlT3JFcnJvciA9IFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVy
ZURldmljZSk7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKSB7CisgICAgICAgIG1fcmVxdWVzdHMu
cmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICBzZW5kVXBkYXRlKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgc291
cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyLCBzb3VyY2VPckVycm9yLnNv
dXJjZSgpKTsKKyAgICByZXR1cm47CisjZW5kaWYKKwogICAgIG1fcmVjb2duaXplci0+c3RhcnQo
Y2xpZW50SWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCmluZGV4IGE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZh
MDI3Y2IwYjMyMjhmZDcuLmMyOWMzYTcyNDdlOGUxZjQyMjJkY2RiMGRjYzZkMTU3MDBiNDBlZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaApAQCAtNTcsNiArNTcsMTEgQEAgcHVibGljOgogICAgIHZvaWQgYWJvcnQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBp
bnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB1c2luZyBSZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBGdW5jdGlvbjxSZWZQdHI8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZT4oY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpPjsKKyAgICB2b2lk
IHNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihSZWFsdGltZU1lZGlhU291cmNl
Q3JlYXRlRnVuY3Rpb24mJiBmdW5jdGlvbikgeyBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVG
dW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QmKTsKICAgICB2b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CkBAIC03NSw2ICs4MCwxMCBAQCBwcml2
YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hl
Y2tlciBtX3Blcm1pc3Npb25DaGVja2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBtX3JlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlN2Q5
Y2RmZTU1MzVjMjdjNDUwNGYwMTBhNmVkZjhlNGM1ZTNjYTZhLi5jOWJmZThlYzM5MDU4N2QxYjg3
MjJhYmZiYzQzMjMzYWMzNTU2YTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDkgQEAKICNpbmNsdWRlICJQbHVnaW5JbmZvU3Rv
cmUuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIlByb3Zp
c2lvbmFsUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
IgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVk
ZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKQEAg
LTE3MDIsOCArMTcwNSw4IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlByb2Nlc3NQcm94eTo6c2Vzc2lv
bklEKCkgY29uc3QKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0
aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewotICAgIGF1dG8gc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKTsKLSAgICBBU1NFUlQoc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7CisgICAgQVNTRVJUKCFtX3NwZWVjaFJlY29nbml0
aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvJiBzcGVlY2hSZWNv
Z25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZp
ZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBXZWJQYWdlUHJveHkqIHRhcmdldFBh
Z2UgPSBudWxscHRyOwogICAgIGZvciAoYXV0byogcGFnZSA6IHBhZ2VzKCkpIHsKICAgICAgICAg
aWYgKHBhZ2UgJiYgcGFnZS0+d2ViUGFnZUlEKCkgPT0gaWRlbnRpZmllcikgewpAQCAtMTcxNSw3
ICsxNzE4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKICAgICBpZiAoIXRhcmdldFBhZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9y
LT52YWx1ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNv
bm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBh
Z2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7Cisg
ICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9u
U2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBt
YWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhh
bmRsZXIpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdlKSB7CiAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVu
eSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzIzLDcgKzE3MjYsMjIgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnQKIAogICAgICAgICB3ZWFrUGFnZS0+cmVxdWVzdFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9
KTsKLSAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5pdGVyYXRvci0+dmFsdWUpOworICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRp
ZmllciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIt
PnNldFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbihbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0
byYgZGV2aWNlKSAtPiBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4geworICAg
ICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAg
ICAgaWYgKCF3ZWFrUGFnZSB8fCB3ZWFrUGFnZS0+cHJlZmVyZW5jZXMoKS5jYXB0dXJlQXVkaW9J
bkdQVVByb2Nlc3NFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
ICAgICBhdXRvJiBzb3VyY2VNYW5hZ2VyID0gZW5zdXJlUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIoKTsKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50
czsKKyAgICAgICAgY29uc3RyYWludHMuaXNWYWxpZCA9IHRydWU7CisgICAgICAgIHJldHVybiBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoc291cmNlTWFuYWdlciwgZGV2aWNlLCBj
b25zdHJhaW50cywgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgIlNwZWVjaFJlY29nbml0aW9u
Iik7CisgICAgfSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKQEAgLTE3MzMsNiArMTc1MSwyMCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRl
bgogICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAucmVtb3ZlKGlkZW50aWZpZXIpOwog
fQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXImIFdlYlByb2Nlc3NQcm94eTo6ZW5zdXJlUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIoKQoreworICAgIGlmICghbV9yZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cikgeworICAgICAgICBtX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVu
aXF1ZTxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4obWFrZVJlZigqY29ubmVjdGlv
bigpKSk7CisgICAgICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKm1fcmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOworICAgIH0KKworICAgIHJldHVybiAqbV9yZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKworI2VuZGlmCisKICNpZiBQTEFURk9STShX
QVRDSE9TKQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRCYWNrZ3JvdW5kQWN0aXZpdHlG
b3JGdWxsc2NyZWVuSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAppbmRleCBjMTBiMzk0OGQ3NzY3NjM3MTRkMTY0NzliNTkzNjI4MmE2OTczM2RhLi5lMTFj
N2IxOGI4ZTg4NmVkMzI5NzIwZGQwZjc1NGQ4ODVmNGI4NjhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAzLDYgKzEwMywxMCBAQCBzdHJ1Y3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlOwogc3Ry
dWN0IFdlYnNpdGVEYXRhOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGVudW0gRm9yZWdyb3VuZFdl
YlByb2Nlc3NDb3VudGVyVHlwZSB7IH07CiB0eXBlZGVmIFJlZkNvdW50ZXI8Rm9yZWdyb3VuZFdl
YlByb2Nlc3NDb3VudGVyVHlwZT4gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOwogdHlwZWRl
ZiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI6OlRva2VuIEZvcmVncm91bmRXZWJQcm9jZXNz
VG9rZW47CkBAIC01MDUsNiArNTA5LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsK
ICAgICB2b2lkIGRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcklkZW50aWZpZXIpOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyKCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3lzdGVtQmVlcCgpOwogICAgIApAQCAt
NjQzLDYgKzY1MCw5IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1hcCA9IEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyLCBzdGQ6
OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+PjsKICAgICBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1hcCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwOworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyPiBtX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgwMzcwNDA0ZTQ5YTc4ZDhhYmU3MzIyYTc4ZWM5
MmZjMWMwYmEwYTIuLmVmYmMwY2JhODljMjYzYTdmOGYzNTE1MTU4ZjBjZjhmNjM2NjY4ZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTQwNCw2ICsxNDA0LDE2IEBACiAJCTkxOTc5NDA4MjNEQkM0Q0IwMDI1Nzg5MiAvKiBXZWJQYWdl
SW5zcGVjdG9yQWdlbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MTk3OTQwNzIzREJDNENBMDAyNTc4OTIgLyogV2ViUGFnZUluc3BlY3RvckFn
ZW50QmFzZS5oICovOyB9OwogCQk5MTk3OTQwQTIzREJDNEUwMDAyNTc4OTIgLyogQVBJSW5zcGVj
dG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MTk3OTQwOTIzREJDNEUwMDAyNTc4OTIgLyogQVBJSW5zcGVjdG9yQ2xpZW50LmggKi87IH07
CiAJCTkxOTc5NDBDMjNEQkM1MDMwMDI1Nzg5MiAvKiBfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE5Nzk0MEIyM0RC
QzUwMzAwMjU3ODkyIC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTMwMDNFRkYyNTc4Q0Q2MTAwRjJBM0RB
IC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRUY4MjU3OEM0RTMwMEYyQTNEQSAvKiBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmggKi87IH07CisJCTkzMDAzRjAwMjU3OENENjUwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNFRkEyNTc4QzRFNDAwRjJBM0RBIC8qIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJCTkzMDAzRjAxMjU3OENE
NjcwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNFRkMyNTc4Q0M0OTAwRjJBM0RB
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJCTkzMDAzRjA0MjU3OEQ3
QkIwMEYyQTNEQSAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwMjI1NzhEN0E3MDBGMkEz
REEgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OworCQk5MzAwM0YwRTI1
NzhEQTM4MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNG
MEMyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZXMuaCAqLzsgfTsKKwkJOTMwMDNGMEYyNTc4REIwNjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRjA3MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTkzMDAz
RjEwMjU3OERCMDgwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0Yw
OTI1NzhEOThDMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
ICovOyB9OworCQk5MzAwM0YxMTI1NzhEQjBBMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzMDAzRjA2MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OworCQk5MzAwM0YxMjI1NzhEQjBD
MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMw
MDNGMEIyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTMwMDNGMTMyNTc4REIxMjAwRjJBM0RBIC8q
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwRDI1NzhEOUVF
MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCAqLzsgfTsKIAkJOTMyMUQ1ODYxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMyMUQ1ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5oICovOyB9OwogCQk5MzIxRDU4QTFBMzhGMTk2MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVB
Y3Rpb25UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMyMUQ1ODkxQTM4RjE5NjAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzIzNjEx
RTFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIzNjExRDFCMDE1REE4MDBG
QTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM1NjYsOCArMzU3Niw2IEBACiAJCTQxNjg0
QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2ODRDNEUyNDY0M0M4
MTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzRGMjQ2NDNEM0YwMDFDRThFRCAvKiBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQxNjg0QzUwMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTY4
NEM1MTI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkNENzQ1MjNGQjE3OEIwMDY2MUQ5OSAv
KiBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IE1ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL01ETlNS
ZWdpc3RlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2Rjgw
ODYyNDVCMzk3NDAwQjY4RjAyIC8qIExpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gTGliV2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbjsgcGF0aCA9IE5l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNkY4MDg5MjQ1QzdGRjUwMEI2OEYwMiAvKiBMaWJXZWJSVENOZXR3
b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldlYlJUQ05l
dHdvcmsuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NTYwLDYgKzQ1NjgsMjIgQEAKIAkJOTE5Nzk0
MDcyM0RCQzRDQTAwMjU3ODkyIC8qIFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZUluc3BlY3RvckFnZW50QmFzZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTk3OTQwOTIzREJDNEUwMDAyNTc4OTIgLyog
QVBJSW5zcGVjdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQ
SUluc3BlY3RvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTk3OTQw
QjIzREJDNTAzMDAyNTc4OTIgLyogX1dLSW5zcGVjdG9yRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRjcyNTc4QzRFMzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRjgyNTc4QzRFMzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAw
M0VGOTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRkEyNTc4QzRFNDAw
RjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUZCMjU3OEM0RTQwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRkMyNTc4Q0M0OTAwRjJBM0RB
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzMDAzRUZEMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTMwMDNFRkUyNTc4Q0M0QTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMDIy
NTc4RDdBNzAwRjJBM0RBIC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwMzI1NzhEN0E4MDBGMkEzREEg
LyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMDYyNTc4RDk4QjAwRjJBM0RBIC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjA3MjU3OEQ5OEIwMEYyQTNE
QSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAz
RjA5MjU3OEQ5OEMwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMEIy
NTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMEMyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwRDI1NzhEOUVFMDBGMkEzREEgLyog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMyMUQ1
ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMyMUQ1ODcxQTM4RUU3NDAwODA1MkJF
IC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMyMUQ1ODkxQTM4RjE5NjAwODA1MkJFIC8qIFdLSW1t
ZWRpYXRlQWN0aW9uVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJ
bW1lZGlhdGVBY3Rpb25UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI1
Myw2ICs2Mjc3LDcgQEAKIAkJCQk1MTVCRTFBRTFENTkwMDM0MDBERDdDNjggLyogR2FtZXBhZCAq
LywKIAkJCQkyREE5NDQ5NjE4ODRFNERBMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJDMTExQjVB
MTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCisJCQkJOTMwMDNFRjYyNTc4QzQ1MDAwRjJBM0RB
IC8qIG1lZGlhICovLAogCQkJCTFBQUUwNThDMTI3OURDRDQwMDg1MjQxOCAvKiBQbHVnaW5zICov
LAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJCMjVFRCAvKiBSZW1vdGVMYXllclRyZWUgKi8sCiAJ
CQkJMUFCRjQzNzgxQTM2ODAzNTAwM0ZCMEU2IC8qIFdlYnNpdGVEYXRhICovLApAQCAtODc5NCw4
ICs4ODE5LDYgQEAKIAkJCQk0MTY4NEM0RjI0NjQzRDNGMDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuY3BwICovLAogCQkJCTQxNjg0QzRFMjQ2NDNDODEwMDFDRThFRCAvKiBS
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oICovLAogCQkJCTQxNjg0QzREMjQ2NDNCRkEwMDFD
RThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKLQkJCQk0
MTY4NEM1MDI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAg
Ki8sCi0JCQkJNDE2ODRDNTEyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuaCAqLywKIAkJCQlDRDQ5MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwICovLAogCQkJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5oICovLAogCQkJCUNENDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKQEAgLTg4MDMsNiArODgy
Niw4IEBACiAJCQkJNTJENUExQjMxQzU3NDlGMjAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTJENUExQjQxQzU3NDlGMjAwREUzNEEzIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gKi8sCiAJCQkJN0M2RTcwRjkxOEIyRDRBMDAwRjI0RTJF
IC8qIFdlYlByb2Nlc3NDb2NvYS5tbSAqLywKKwkJCQk5MzAwM0YwMzI1NzhEN0E4MDBGMkEzREEg
LyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJOTMwMDNGMDIyNTc4
RDdBNzAwRjJBM0RBIC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLywKIAkJCSk7
CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtODk2MCw2
ICs4OTg1LDIxIEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJOTMwMDNFRjYyNTc4QzQ1MDAwRjJBM0RBIC8qIG1lZGlhICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5MzAwM0VGRTI1NzhDQzRBMDBGMkEz
REEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkzMDAzRUZDMjU3
OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkz
MDAzRUZEMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNz
YWdlcy5pbiAqLywKKwkJCQk5MzAwM0VGOTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJOTMwMDNFRjgyNTc4QzRFMzAwRjJBM0RBIC8qIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5MzAwM0VGNzI1NzhDNEUzMDBGMkEz
REEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkzMDAz
RUZBMjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5o
ICovLAorCQkJCTkzMDAzRUZCMjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gbWVkaWE7CisJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk5MzkyODhFMDIxNDA0REYwMDBFQkJB
MzMgLyogSW5kZXhlZERCICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTEwNDgxLDYgKzEwNTIxLDkgQEAKIAkJCQkxQTA0M0I1QzEyNEQ1RTlEMDBGRkJGQjUg
LyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkxQThFRkE2RTEyNTJCODQx
MDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBOEVG
QTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJOTMw
MDNGMDcyNTc4RDk4QjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk5MzAwM0YwOTI1NzhEOThDMDBGMkEzREEgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzMDAzRjA2MjU3OEQ5OEIw
MEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICov
LAogCQkJCUNERDUzNTc2MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNERDUzNTc1MjQwRERFMDcwMEY3QjhDNCAvKiBSZW1v
dGVBdWRpb1Nlc3Npb25NZXNzYWdlcy5oICovLAogCQkJCUNERDUzNTc0MjQwRERFMDcwMEY3QjhD
NCAvKiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTEwNTM0LDYg
KzEwNTc3LDkgQEAKIAkJCQkxREQyQTY2MTI1NjEyMkYxMDBGRjdCNkYgLyogUmVtb3RlTWVkaWFT
b3VyY2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTFBQzEzMzgzMTg1OTBDNDYwMEYz
RUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
MUFDMTMzODQxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMu
aCAqLywKKwkJCQk5MzAwM0YwQjI1NzhEOUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzMDAzRjBDMjU3OEQ5
RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgg
Ki8sCisJCQkJOTMwMDNGMEQyNTc4RDlFRTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMEY1OTQ3QTUxODdCNTE3NjAw
NDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKIAkJCQkwRjU5NDdBNjE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNZXNzYWdlcy5oICovLAogCQkJCTFERDJBNjZCMjU2MjAyMUUwMEZGN0I2RiAvKiBSZW1v
dGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMTUyOSw2ICsx
MTU3NSw5IEBACiAJCQkJQTFFNjg4NzAxRjZFMkJBQjAwNzAwNkE2IC8qIFF1YXJhbnRpbmVTUEku
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEMyMjdFMjQ1MTEzMEEwMEVENjE0RCAvKiBRdWlja0xv
b2tUaHVtYm5haWxpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFRTU3MjUyNDA5
RjE0MjAwMjAwNUQ2IC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTMwMDNGMDEyNTc4Q0Q2NzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0YxMDI1NzhEQjA4MDBGMkEzREEgLyogUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMw
MDNGMTEyNTc4REIwQTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0ZEMzE4MjIyQjM1MTVFMDA4RDBFOEIg
LyogUmVkaXJlY3RTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
QjEyMjlEMjIzRkYyQkNDMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCMTIyOUNEMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTU2OSw2ICsx
MTYxOCwxMCBAQAogCQkJCTFBNTcwNEZDMUJFMTc1MTEwMDg3NEFGMSAvKiBSZW1vdGVPYmplY3RJ
bnZvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUMxMzM4MDE4NTkwQUU0MDBGM0VDMDUg
LyogUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEzMzg2MTg1
OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5MzAwM0VGRjI1NzhDRDYxMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNGMDAyNTc4Q0Q2NTAwRjJBM0RBIC8q
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
MzAwM0YwRTI1NzhEQTM4MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNGMTMyNTc4REIxMjAwRjJBM0RB
IC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjU5NDc5MDE4N0IzQjNBMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E4MTg3QjUxNzYwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjU5NDc5QjE4N0IzQjYwMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTg3NCw2ICsxMTkyNyw3IEBACiAJCQkJ
MUExRTA5MzQxODg2MUQzODAwRDJEQzQ5IC8qIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTEyRjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rp
b25TcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYxQ0NDQTYyMzE0ODVBQTAwQjY1OUI5IC8q
IFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0YwNDI1
NzhEN0JCMDBGMkEzREEgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTU4NjBFNzEyMzBGNjdGQzAwNDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJj
ZXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwQUZGQkExNjU0MjA0ODAwMUJB
MDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYwNjBFMDE2
NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xMzM1OSw2ICsxMzQxMyw3IEBACiAJCQkJMkQ1NEMzMUIyMTJGNERBNjAwNDlDMTc0
IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTBDMjI3RjI0NTEx
MzBBMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsubW0gaW4gU291cmNl
cyAqLywKIAkJCQkxQTBDMjI1RTI0MzU3NUNEMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWls
TG9hZGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTMwMDNGMEYyNTc4REIwNjAwRjJBM0RBIC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTlCMTIyOUNFMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDAzNjlBRTI1Njc5NkI5MDA0NDAz
NzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRjI0QTJEMTg3OUU0QkMwMDNBQkYwRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEzMzgwLDYgKzEz
NDM1LDcgQEAKIAkJCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUREMkE2
NjMyNTYxMjQ2RjAwRkY3QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDMTMzODUxODU5MEM0NjAwRjNFQzA1IC8qIFJl
bW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTkzMDAzRjEyMjU3OERCMEMwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU5NDdBNzE4N0I1
MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUREMkE2NkUyNTYyMDIxRTAwRkY3QjZGIC8qIFJlbW90
ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFEMDM2OUFDMjU2Nzk2OTkwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5jcHAKaW5kZXggM2YzNTMxOTRhMzJjM2U2NzliY2EyOWZiZWE4NTAz
MWM5MjFlNGZjNC4uY2YyODNlZDM1YjVmMDEzYTc2YmNlOTlmYzc5YzI1YzUwMmNkZWQzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTQ2
LDYgKzQ2LDEwIEBAIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uCiB7CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLCAqdGhp
cyk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpDcmVhdGVTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcihtX2lkZW50aWZpZXIpLCAwKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIoKTsKKyNlbmRpZgogfQogCiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
On5XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCmluZGV4IGYyZjIyODIyYzdiMjIzZmNhNTlmOTU1NzNkMTFkYzk5YjEw
MzQ4MTEuLmEzOTQ1MjQ4ZjM2ZDM0NzA1NjVlMTJiM2E2ZTY0MzE3MjU4YmJjOWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNs
dWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NBc3NlcnRpb24u
aCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlJl
bW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIK
ICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgpAQCAtMTk2OSw2ICsxOTcwLDE2IEBAIHZvaWQg
V2ViUHJvY2Vzczo6ZW5hYmxlVlA5U1dEZWNvZGVyKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKK1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzOjpl
bnN1cmVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3JlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKQorICAgICAgICBtX3JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
ID0gbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4oKTsKKworICAgIHJldHVy
biAqbV9yZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGU5YzQ3ZGI0YzQ0N2MwZjRhYjYyN2MwOTRiNWY2
OGRiNTY1YTlhNmMuLmEwNDE1NTJkMTE5OTE0YzljZjI0ZmY0YzkxMzliODQ4NjA4NjU4NzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTQyLDYgKzE0MiwxMCBAQCBz
dHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250
ZXh0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKKwogY2xhc3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBB
dXhpbGlhcnlQcm9jZXNzCiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNjAs
NiArMzY0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFdyaXRlVG9QYXN0ZWJvYXJkQXN5bmNo
cm9ub3VzbHkoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3Vy
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBX
ZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nlc3MoKTsKQEAgLTY5Myw2ICs3MDEsMTAgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fdnA5RGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV92cDlTV0RlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI+IG1fcmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKaW5kZXggNWIzZTcwMGUwOTU4
ZTJmYmQ1NjkxNzgwNDI3MWRlZGM5NGZjNWU0OS4uMmExMTMyMzEyMTQ3MTVkYjg3MWNjYTQ1MGFi
ZDY3MTMxZTQ2YTBkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC02MCw3ICs2MCw3
IEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnNldENvbm5lY3Rpb24oSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKLXZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2Up
Cit2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogewogICAgIEFTU0VSVChXVEY6OmlzTWFp
blJ1bkxvb3AoKSk7CiAgICAgc2V0Q29ubmVjdGlvbihzb3VyY2UtPmNvbm5lY3Rpb24oKSk7CkBA
IC0xMTEsOSArMTExLDkgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3UKICAgICBpdGVyYXRvci0+
dmFsdWUtPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRG
cmFtZSwgZW5kRnJhbWUpOwogfQogCi1SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3Rl
QXVkaW86OlJlbW90ZUF1ZGlvKFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJj
ZSkKK1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8o
UmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogICAgIDogbV9zb3Vy
Y2UoV1RGTW92ZShzb3VyY2UpKQotICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5n
QnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkp
CisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+KG1h
a2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCA2ZmI0YmMzN2I5MzgwMTZmY2U1YzVjNWFjNWE0Mzcw
MjdmMTg2YmU0Li5hZTBhNmUwZmM4OWE5MmFlZDFmODc3Yzg2MGFhNmFjYmZlYzA3ZmEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtMjksOCArMjksOCBAQAogCiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgIlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRl
ICJXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CkBAIC00NSw3ICs0NSw3
IEBAIHB1YmxpYzoKICAgICBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpOwogICAgIH5SZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpOwogCi0gICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIHZvaWQgYWRkU291cmNlKFJlZjxXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtNjMsMTMgKzYzLDEz
IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgUmVtb3RlQXVkaW8gewogICAgICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IFJlbW90ZUF1ZGlv
KFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICAgICAgZXhwbGljaXQgUmVt
b3RlQXVkaW8oUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogCiAgICAgICAg
IHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsK
ICAgICAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBu
dW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOwog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+IG1f
c291cmNlOworICAgICAgICBSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3Vy
Y2U7CiAgICAgICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0
aW9uOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3Jp
bmdCdWZmZXI7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZl
ckxpc3Q+IG1fYnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1ZjljMmFhZDA5MTk2MmUzNTk2ZWY4OTNiMzU5YzFkMWQ2ODRhZTM0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDMxMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKLQotI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgotI2luY2x1
ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9u
VlQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxl
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
cmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpCi17Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6Omdl
bmVyYXRlKCksIGRldmljZS50eXBlKCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQp
LCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7Ci0gICAgbWFuYWdlci5hZGRT
b3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7Ci0gICAgc291cmNlLT5jb25uZWN0aW9uKCktPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHNvdXJjZS0+aWRl
bnRpZmllcigpLCBkZXZpY2UsIHNvdXJjZS0+ZGV2aWNlSURIYXNoU2FsdCgpLCBjb25zdHJhaW50
cyksIFtzb3VyY2UgPSBzb3VyY2UuY29weVJlZigpXShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVy
cm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzKSB7Ci0gICAg
ICAgIGlmICghc3VjY2VlZGVkKSB7Ci0gICAgICAgICAgICBzb3VyY2UtPmRpZEZhaWwoV1RGTW92
ZShlcnJvck1lc3NhZ2UpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAg
ICBzb3VyY2UtPnNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsK
LSAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7Ci0gICAgICAg
IHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7Ci0gICAgICAg
IHNvdXJjZS0+c2V0QXNSZWFkeSgpOwotICAgIH0pOwotICAgIHJldHVybiBzb3VyY2U7Ci19Ci0K
LXN0YXRpYyBpbmxpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlRnJvbURl
dmljZVR5cGUoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKQotewotICAgIHN3
aXRjaCAoZGV2aWNlVHlwZSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZToKLSAgICAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgotICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgotICAgICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6VmlkZW87Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
cGVha2VyOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotICAgIHJldHVybiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpOb25lOwotfQotCi1SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2Vy
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgOiBSZWFsdGltZU1lZGlhU291
cmNlKHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShkZXZpY2VUeXBlKSwgV1RGTW92ZShuYW1lKSwg
U3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZShoYXNoU2FsdCkp
Ci0gICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fbWFuYWdlcihtYW5hZ2Vy
KQotICAgICwgbV9kZXZpY2VUeXBlKGRldmljZVR5cGUpCi0gICAgLCBtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLXsKLSAgICBzd2l0Y2ggKG1f
ZGV2aWNlVHlwZSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9w
aG9uZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291
cmNlKCp0aGlzKTsKLSNlbmRpZgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAg
ICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0
b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKLSAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgotICAgIGNhc2UgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgfQotfQotCi1SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSgpCi17Ci0gICAgc3dpdGNoIChtX2RldmljZVR5cGUpIHsKLSAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9D
YXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRo
aXMpOwotI2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U2NyZWVuOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2lu
ZG93OgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNwZWFrZXI6Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci19Ci0KLXZvaWQgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4mJiBjYWxsYmFjaykKLXsKLSAgICBpZiAobV9pc1JlYWR5KQotICAgICAgICByZXR1cm4gY2Fs
bGJhY2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkpOwotICAgIG1fY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpkaWRGYWls
KFN0cmluZyYmIGVycm9yTWVzc2FnZSkKLXsKLSAgICBtX2lzUmVhZHkgPSB0cnVlOwotICAgIG1f
ZXJyb3JNZXNzYWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwotICAgIGlmIChtX2NhbGxiYWNr
KQotICAgICAgICBtX2NhbGxiYWNrKG1fZXJyb3JNZXNzYWdlKTsKLX0KLQotdm9pZCBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpzZXRBc1JlYWR5KCkKLXsKLSAgICBtX2lzUmVhZHkgPSB0cnVl
OwotICAgIGlmIChtX2NhbGxiYWNrKQotICAgICAgICBtX2NhbGxiYWNrKHsgfSk7Ci19Ci0KLVJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZSgp
Ci17Ci0gICAgc3dpdGNoICh0eXBlKCkpIHsKLSAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OlZpZGVvOgotICAgICAgICByZXR1cm4gY2xvbmVWaWRlb1NvdXJjZSgpOwotICAgIGNh
c2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgfQotICAgIHJldHVybiAqdGhpczsKLX0KLQotUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2Uo
KQotewotICAgIGF1dG8gaWRlbnRpZmllciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
OjpnZW5lcmF0ZSgpOwotICAgIGlmICghY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDbG9uZSB7IG1faWRlbnRpZmllciwgaWRlbnRpZmll
ciB9LCAwKSkKLSAgICAgICAgcmV0dXJuICp0aGlzOwotCi0gICAgYXV0byBjbG9uZVNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShpZGVudGlmaWVyLCBkZXZp
Y2VUeXBlKCksIFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9LCBkZXZpY2VJ
REhhc2hTYWx0KCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7Ci0g
ICAgY2xvbmVTb3VyY2UtPnNldFNldHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7
IG1fc2V0dGluZ3MgfSk7Ci0gICAgbV9tYW5hZ2VyLmFkZFNvdXJjZShjbG9uZVNvdXJjZS5jb3B5
UmVmKCkpOwotICAgIHJldHVybiBjbG9uZVNvdXJjZTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzZXRDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYmIGNhcGFiaWxpdGllcykKLXsKLSAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2Fw
YWJpbGl0aWVzKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTZXR0
aW5ncyhSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKLXsKLSAgICBhdXRv
IGNoYW5nZWQgPSBtX3NldHRpbmdzLmRpZmZlcmVuY2Uoc2V0dGluZ3MpOwotICAgIG1fc2V0dGlu
Z3MgPSBXVEZNb3ZlKHNldHRpbmdzKTsKLSAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2Vy
dmVycyhjaGFuZ2VkKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1v
dGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbiwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
Ci0gICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBzaXpl
KTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBs
ZUF2YWlsYWJsZShSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKLXsKLSAgICBBU1NF
UlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsKLQotICAgIHNldEludHJpbnNpY1NpemUocmVtb3Rl
U2FtcGxlLnNpemUoKSk7Ci0KLSAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9p
bWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9G
b3JtYXQoKSkKLSAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7Ci0KLSAgICBpZiAo
IW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZSk7Ci0gICAgaWYg
KCFzYW1wbGVSZWYpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWls
YWJsZSgqc2FtcGxlUmVmKTsKLX0KLQotSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjb25uZWN0aW9uKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLSAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKQotICAgICAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwotI2VuZGlmCi0gICAgcmV0dXJuIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Ci19Ci0KLXZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKLXsKLSAgICBj
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OlN0YXJ0UHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKLX0KLQotdm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCi17Ci0gICAgY29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9w
UHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKLX0KLQotYm9vbCBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlS
b3RhdGlvbikKLXsKLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRpb24geyBtX2lkZW50aWZpZXIs
IHNob3VsZEFwcGx5Um90YXRpb24gfSwgMCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWNvbnN0
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpCi17Ci0gICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVz
OwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMo
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFwcGx5Q29uc3Ry
YWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgbV9wZW5kaW5nQXBwbHlD
b25zdHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwot
ICAgIC8vIEZJWE1FOiBVc2Ugc2VuZEFzeW5jV2l0aFJlcGx5LgotICAgIGNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25zdHJh
aW50cyB7IG1faWRlbnRpZmllciwgY29uc3RyYWludHMgfSwgMCk7Ci19Ci0KLXZvaWQgUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25zdCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQotewotICAgIHNldFNl
dHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyhzZXR0aW5ncykpOwot
Ci0gICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3Mu
dGFrZUZpcnN0KCk7Ci0gICAgY2FsbGJhY2soeyB9KTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0
cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKLXsKLSAgICBhdXRvIGNhbGxiYWNrID0gbV9w
ZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKLSAgICBjYWxsYmFj
ayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZN
b3ZlKGVycm9yTWVzc2FnZSkgfSk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6aGFzRW5kZWQoKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOwotICAgIG1f
bWFuYWdlci5yZW1vdmVTb3VyY2UobV9pZGVudGlmaWVyKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCi17Ci0gICAgc3RvcCgpOwotICAgIGhh
c0VuZGVkKCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZh
aWxlZCgpCi17Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpOwotICAg
IGhhc0VuZGVkKCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcEJl
aW5nT2JzZXJ2ZWQoKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6UmVxdWVzdFRvRW5kIHsgbV9pZGVudGlmaWVyIH0sIDAp
OwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChPYnNl
cnZlciYgb2JzZXJ2ZXIpCi17Ci0gICAgc3dpdGNoICh0eXBlKCkpIHsKLSAgICBjYXNlIFR5cGU6
OkF1ZGlvOgotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQob2JzZXJ2
ZXIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFR5cGU6OlZpZGVvOgotICAgICAgICBzdG9w
QmVpbmdPYnNlcnZlZCgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFR5cGU6Ok5vbmU6Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLX0KLQotfQotCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzg5MGJlYjFi
MDMxM2Q0ZTIzMDI5NTI5ZjUxZDExMTcwZTliNWI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTEgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+
Ci0KLW5hbWVzcGFjZSBJUEMgewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwotY2xhc3MgSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDsKLXN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOwotY2xhc3MgUmVtb3RlVmlk
ZW9TYW1wbGU7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjsKLQotY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcyA9IGZhbHNlKTsKLSAgICB+UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZSgpOwotCi0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotICAgIElQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbigpOwotCi0gICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7Ci0KLSAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNT
dWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7Ci0g
ICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQs
IFN0cmluZyYmIGVycm9yTWVzc2FnZSk7Ci0KLSAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKCk7Ci0g
ICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7Ci0KLSAgICB2b2lkIHJlbW90ZVZpZGVvU2Ft
cGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOwotICAgIHZvaWQgcmVt
b3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2Vi
Q29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgc2l6ZV90KTsKLQotcHJpdmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
OwotCi0gICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQotICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKCkgZmluYWw7Ci0gICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwotICAgIGJv
b2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZv
aWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBjb21taXRDb25maWd1
cmF0aW9uKCkgZmluYWwgeyB9Ci0gICAgYm9vbCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wg
Lyogc2hvdWxkQXBwbHlSb3RhdGlvbiAqLykgZmluYWw7Ci0gICAgdm9pZCBhcHBseUNvbnN0cmFp
bnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFu
ZGxlciYmKSBmaW5hbDsKLSAgICB2b2lkIHJlcXVlc3RUb0VuZChPYnNlcnZlciYpIGZpbmFsOwot
ICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQoKSBmaW5hbDsKLSAgICB2b2lkIGhhc0VuZGVkKCkg
ZmluYWw7Ci0gICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBz
ZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KLSAgICBjb25zdCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsK
LSAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZp
bmFsOwotICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNlVHlwZTsgfQotICAgIFJlZjxSZWFsdGltZU1l
ZGlhU291cmNlPiBjbG9uZSgpIGZpbmFsOwotCi0gICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmIGVy
cm9yTWVzc2FnZSk7Ci0gICAgdm9pZCBzZXRBc1JlYWR5KCk7Ci0gICAgdm9pZCBzZXRDYXBhYmls
aXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKTsKLSAgICBS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmVWaWRlb1NvdXJjZSgpOwotCi0gICAgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKLSAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwot
ICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgbV9kZXZpY2VUeXBlIHsgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93biB9OwotCi0gICAgRGVxdWU8
QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFj
a3M7Ci0gICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwotICAg
IGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsKLSAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7Ci0g
ICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBtX2NhbGxiYWNrOwotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggMDgz
ZjgyOWFmNzVhZTk5ZjZjMjhjZDY3MGI5MGE2Njc3ODlmMzdlMy4uNThjODA2YjVmYWRmNTI0ZDBl
OGI5NGMyMTliNzBkZGEwNjdkMGQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0zMCwxMCAr
MzAsMTAgQEAKIAogI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgiCiAj
aW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OnNldHVwQ2FwdHVyZVByb2Nlc3Nlcyhib29sIHNob3VsZENhcHR1
cmVBdWRpb0luVUlQCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLnNldERpc3BsYXlDYXB0dXJlRmFjdG9yeShtX2Rpc3BsYXlGYWN0b3J5KTsKIH0KIAotdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlPiYmIHNvdXJjZSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNv
dXJjZShSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiB7CiAgICAg
aWYgKHNvdXJjZS0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQog
ICAgICAgICBtX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29w
eVJlZigpKTsKQEAgLTE1OCw3ICsxNTgsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTbwogICAg
ICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lv
bkNhdGVnb3J5KHRydWUpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBtX21hbmFnZXIpOworICAgIHJldHVybiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1f
bWFuYWdlcik7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9y
eTo6c2V0U2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sIHZhbHVlKQpAQCAtMTc2LDcgKzE3
Niw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRl
b0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291
cmNlT3JFcnJvciB7ICJWaWRlbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgaXMgbm90IGltcGxlbWVu
dGVkIl9zIH07CiAjZW5kaWYKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1f
bWFuYWdlcik7CisgICAgcmV0dXJuIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0
ZShkZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2Vy
KTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTEsNyArMTkxLDcgQEAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5
OjpjcmVhdGVEaXNwbGF5Q2FwdHUKICAgICBpZiAoIWNvbnN0cmFpbnRzKQogICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCB7IH0sIG1fbWFuYWdlcik7CisgICAgcmV0dXJuIFdl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJhaW50cywg
eyB9LCB7IH0sIG1fbWFuYWdlcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggYjBiMTk4
MjkwNTQyMmRlNzI5NTQyYWJiM2VlMDliYzdlMzMwZDAyZC4uNWU0NGE1OGI0NGY4NDliMjhmODNm
MGJkNmY5ZDk1YjAxZWVhNjBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTQzLDcgKzQzLDcgQEAg
Y2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOworY2xhc3MgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
IDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIgewpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZUZyb21HUFVQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVy
JiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CiAg
ICAgdm9pZCBzZXR1cENhcHR1cmVQcm9jZXNzZXMoYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJ
UHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxk
Q2FwdHVyZVZpZGVvSW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9j
ZXNzLCBib29sIHNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MpOwogCi0gICAgdm9pZCBh
ZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIHZvaWQgYWRk
U291cmNlKFJlZjxXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAgICB2b2lkIHJl
bW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAKIHBy
aXZhdGU6CkBAIC0xMjgsOSArMTI4LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGx5Q29uc3Ry
YWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOwogICAgIHZvaWQgYXBw
bHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgU3RyaW5nJiYsIFN0cmluZyYmKTsKIAotICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlPiBjbG9uZVZpZGVvU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKyAg
ICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmVWaWRlb1NvdXJjZShXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJik7CiAKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4+
IG1fc291cmNlczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fc291cmNlczsKICAg
ICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiAgICAgTm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyIG1f
bm9PcENhcHR1cmVEZXZpY2VNYW5hZ2VyOwogICAgIEF1ZGlvRmFjdG9yeSBtX2F1ZGlvRmFjdG9y
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODFmMTI4ZTcyNmI1
ZGEzOGIyNjM1YmE2NjAwYjc3MDBkNDVkYzk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBA
IC0wLDAgKzEsMzEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKworI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgIlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1Jl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVh
dGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpCit7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFdlYlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6Omdl
bmVyYXRlKCksIGRldmljZS50eXBlKCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQp
LCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgbWFuYWdlci5hZGRT
b3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CisgICAgc291cmNlLT5jb25uZWN0aW9uKCktPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHNvdXJjZS0+aWRl
bnRpZmllcigpLCBkZXZpY2UsIHNvdXJjZS0+ZGV2aWNlSURIYXNoU2FsdCgpLCBjb25zdHJhaW50
cyksIFtzb3VyY2UgPSBzb3VyY2UuY29weVJlZigpXShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVy
cm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzKSB7CisgICAg
ICAgIGlmICghc3VjY2VlZGVkKSB7CisgICAgICAgICAgICBzb3VyY2UtPmRpZEZhaWwoV1RGTW92
ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBzb3VyY2UtPnNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsK
KyAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAgICAg
IHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CisgICAgICAg
IHNvdXJjZS0+c2V0QXNSZWFkeSgpOworICAgIH0pOworICAgIHJldHVybiBzb3VyY2U7Cit9CisK
K3N0YXRpYyBpbmxpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlRnJvbURl
dmljZVR5cGUoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKQoreworICAgIHN3
aXRjaCAoZGV2aWNlVHlwZSkgeworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZToKKyAgICAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6VmlkZW87CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
cGVha2VyOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpOb25lOworfQorCitXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBt
YW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCisgICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShkZXZpY2VUeXBlKSwgV1RGTW92ZShu
YW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZShoYXNo
U2FsdCkpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fbWFuYWdlciht
YW5hZ2VyKQorICAgICwgbV9kZXZpY2VUeXBlKGRldmljZVR5cGUpCisgICAgLCBtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK3sKKyAgICBzd2l0
Y2ggKG1fZGV2aWNlVHlwZSkgeworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0
aXZlU291cmNlKCp0aGlzKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1
cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyNlbmRpZgorICAgICAgICBicmVh
azsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgfQorfQorCitXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+V2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZSgpCit7CisgICAgc3dpdGNoIChtX2RldmljZVR5cGUpIHsKKyAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyNl
bmRpZgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkNhbWVyYToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3Rp
dmVTb3VyY2UoKnRoaXMpOworI2VuZGlmCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6V2luZG93OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpVbmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3Zv
aWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAobV9pc1JlYWR5KQorICAg
ICAgICByZXR1cm4gY2FsbGJhY2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkpOworICAgIG1fY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBtX2lzUmVh
ZHkgPSB0cnVlOworICAgIG1fZXJyb3JNZXNzYWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwor
ICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICBtX2NhbGxiYWNrKG1fZXJyb3JNZXNzYWdlKTsK
K30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRBc1JlYWR5KCkKK3sK
KyAgICBtX2lzUmVhZHkgPSB0cnVlOworICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICBtX2Nh
bGxiYWNrKHsgfSk7Cit9CisKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjbG9uZSgpCit7CisgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICBj
YXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAgICByZXR1cm4gY2xv
bmVWaWRlb1NvdXJjZSgpOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW86CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybiAq
dGhpczsKK30KKworUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFdlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2UoKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIGlmICghY29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDbG9u
ZSB7IG1faWRlbnRpZmllciwgaWRlbnRpZmllciB9LCAwKSkKKyAgICAgICAgcmV0dXJuICp0aGlz
OworCisgICAgYXV0byBjbG9uZVNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZShpZGVudGlmaWVyLCBkZXZpY2VUeXBlKCksIFN0cmluZyB7IG1fc2V0dGlu
Z3MubGFiZWwoKS5zdHJpbmcoKSB9LCBkZXZpY2VJREhhc2hTYWx0KCksIG1fbWFuYWdlciwgbV9z
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgY2xvbmVTb3VyY2UtPnNldFNldHRpbmdz
KFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7IG1fc2V0dGluZ3MgfSk7CisgICAgbV9tYW5h
Z2VyLmFkZFNvdXJjZShjbG9uZVNvdXJjZS5jb3B5UmVmKCkpOworICAgIHJldHVybiBjbG9uZVNv
dXJjZTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRDYXBhYmls
aXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKK3sK
KyAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKK30KKwordm9pZCBX
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKK3sKKyAgICBhdXRvIGNoYW5nZWQgPSBtX3NldHRpbmdz
LmRpZmZlcmVuY2Uoc2V0dGluZ3MpOworICAgIG1fc2V0dGluZ3MgPSBXVEZNb3ZlKHNldHRpbmdz
KTsKKyAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2VydmVycyhjaGFuZ2VkKTsKK30KKwor
dm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFp
bGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90
IHNpemUpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgYXVkaW9TYW1wbGVz
QXZhaWxhYmxlKHRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBzaXplKTsKK30KKwordm9pZCBXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShSZW1v
dGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBBU1NFUlQodHlwZSgpID09IFR5
cGU6OlZpZGVvKTsKKworICAgIHNldEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxlLnNpemUoKSk7
CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAg
ICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0
ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2Zl
clNlc3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24t
PmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZSk7CisgICAgaWYgKCFzYW1wbGVSZWYpIHsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVm
KTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
b25uZWN0aW9uKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKyAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAgICAg
ICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpOworI2VuZGlmCisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBjb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0YXJ0UHJv
ZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgY29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVj
aW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKworYm9vbCBXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3Rh
dGlvbikKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRpb24geyBtX2lkZW50aWZpZXIsIHNo
b3VsZEFwcGx5Um90YXRpb24gfSwgMCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2NvbnN0IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFdlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpCit7CisgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVz
OworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWlu
dHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFwcGx5Q29u
c3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9wZW5kaW5nQXBw
bHlDb25zdHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIC8vIEZJWE1FOiBVc2Ugc2VuZEFzeW5jV2l0aFJlcGx5LgorICAgIGNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25z
dHJhaW50cyB7IG1faWRlbnRpZmllciwgY29uc3RyYWludHMgfSwgMCk7Cit9CisKK3ZvaWQgV2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQoreworICAg
IHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyhzZXR0aW5n
cykpOworCisgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxs
YmFja3MudGFrZUZpcnN0KCk7CisgICAgY2FsbGJhY2soeyB9KTsKK30KKwordm9pZCBXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZh
aWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBhdXRvIGNhbGxi
YWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKKyAg
ICBjYWxsYmFjayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFp
bnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkgfSk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6aGFzRW5kZWQoKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVyIH0s
IDApOworICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UobV9pZGVudGlmaWVyKTsKK30KKwordm9p
ZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCit7CisgICAg
c3RvcCgpOworICAgIGhhc0VuZGVkKCk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCit7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2Fw
dHVyZUZhaWxlZCgpOworICAgIGhhc0VuZGVkKCk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQoreworICAgIGNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6UmVxdWVzdFRvRW5k
IHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnJlcXVlc3RUb0VuZChPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgc3dpdGNoICh0
eXBlKCkpIHsKKyAgICBjYXNlIFR5cGU6OkF1ZGlvOgorICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlOjpyZXF1ZXN0VG9FbmQob2JzZXJ2ZXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5
cGU6OlZpZGVvOgorICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc5ZTY0NWM0MzQ0YTQwOWNhNjU5MjdhMzYxMmI2Yzg1ODFkMmVkOGUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
PFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBD
b25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb247CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOworc3RydWN0IE1lZGlh
Q29uc3RyYWludHM7CitjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOworCitjbGFzcyBXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzID0gZmFs
c2UpOworICAgIH5XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CisKKyAgICBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9CisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCk7CisK
KyAgICB2b2lkIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYmKTsKKworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25zdCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdl
KTsKKworICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKKyAgICB2b2lkIGNhcHR1cmVGYWlsZWQo
KSBmaW5hbDsKKworICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6
UmVtb3RlVmlkZW9TYW1wbGUmJik7CisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFi
bGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOworCitw
cml2YXRlOgorICAgIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisKKyAgICAvLyBSZWFsdGlt
ZU1lZGlhU291cmNlCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRp
b24oKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0K
KyAgICBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0
aW9uICovKSBmaW5hbDsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOworICAg
IHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJikgZmluYWw7CisgICAgdm9pZCBzdG9wQmVpbmdP
YnNlcnZlZCgpIGZpbmFsOworICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKKyAgICBjb25zdCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyBy
ZXR1cm4gbV9zZXR0aW5nczsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOworICAgIHZvaWQgd2hlblJlYWR5
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7CisgICAgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9kZXZpY2VUeXBlOyB9CisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkg
ZmluYWw7CisKKyAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKKyAgICB2
b2lkIHNldEFzUmVhZHkoKTsKKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiBjbG9uZVZpZGVvU291cmNlKCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIm
IG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
IG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyBtX3NldHRpbmdzOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CisgICAgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZSBtX2RldmljZVR5cGUgeyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpVbmtub3duIH07CisKKyAgICBEZXF1ZTxBcHBseUNvbnN0cmFpbnRzSGFu
ZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrczsKKyAgICBib29sIG1fc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUmVhZHkgeyBm
YWxzZSB9OworICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKKyAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415397</attachid>
            <date>2020-12-04 02:25:39 -0800</date>
            <delta_ts>2020-12-04 10:05:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201204022538.patch</filename>
            <type>text/plain</type>
            <size>153897</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIwODVlNGQyMjg5NDYxZWQzNGY2ZWY3
NjczNGYyYTBlZjEzNTEzNTkuLmMwNDJhNDhlZWM5Y2E5NmQyMjJjMTBlOGY3ZjZmZjE0YzhiZWJk
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTItMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUdXJuIG9uIFdl
YlNwZWVjaCBvbiBpT1Mgc2ltdWxhdG9yIGJ5IGRlZmF1bHQgZm9yIHRlc3RpbmcuCisKKyAgICAg
ICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6
CisKIDIwMjAtMTItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVwZGF0ZSBsaXN0IG9mIGJsb2NrIHBvcnRzIGFjY29yZGluZyBmZXRjaCBzcGVjCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggY2I0NzZjMjQyZTFiNTFiMjMwZmZmMjQxYjQ1OWUyMDM0OTA0ODg0NS4uMzdhMmM3
N2MwZmY5ZTZjMmMwN2U2YjM5MWI2OTcxNjU5ZjI3ZTllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMwIEBACisyMDIwLTEyLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisg
ICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBp
T1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3
MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1l
ZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgor
CisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCB3aXRoIE1vYmlsZU1pbmlCcm93c2VyLgorCisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnNldFNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTEyLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgaWZyYW1lIHdpdGggYHNhbmRib3g9YWxsb3ctdG9wLW5hdmln
YXRpb24tYnktdXNlci1hY3RpdmF0aW9uYCBjYW4gbmF2aWdhdGUgdG9wIGZyYW1lIHdoZW4gdGhl
IHVzZXIgaW50ZXJhY3RzIHdpdGggYW4gaWZyYW1lIGZyb20gYW5vdGhlciBvcmlnaW4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMzg2MTE4ODU3ZTZlMjYzZmNhM2JlYTEwNzk2NTU5OThlNjE0NmY2Ny4uMjBiNWE2Njdm
MDkwMzZkYjRkODk4MWE1OGZkOGFiYTUwNTAyYWExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMDMg
QEAKKzIwMjAtMTItMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbiBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBp
biB3ZWIgcHJvY2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25pdGlvbiwgcmVjb2duaXplciBpcyBpbiBV
SSBwcm9jZXNzLiBUaGVyZWZvcmUsCisgICAgICAgIFVJIHByb2Nlc3MgbmVlZHMgdG8gYXNrIHdl
YiBwcm9jZXNzIHRvIGNhcHR1cmUgYXVkaW8gYW5kIHNlbmQgYmFjayBkYXRhLiBUbyBpbXBsZW1l
bnQgdGhpcywgdGhpcyBwYXRjaCBhZGRlZDoKKyAgICAgICAgLSBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOiBzdWJjbGFzcyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIGFuZCBjb25uZWN0
IHRvIGEgcmVtb3RlIAorICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIChvd25l
ZCBieSBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZSkgaW4g
YSBkaWZmZXJlbnQgcHJvY2Vzcy4KKyAgICAgICAgLSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjogbWFuYWdlIGFsbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcy4KKyAgICAgICAg
LSBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjogbWFuYWdlIGFsbCBSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZS4KKyAgICAgICAgLSBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTogb3duIGFuZCBtb25pdG9yIGEgbG9j
YWwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZS4KKworICAgICAgICBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlIGNsYXNzIGlzIG1vdmVkIGZyb20gV2ViUHJvY2VzcyB0byBTaGFyZWQsIGFu
ZCBtb2RpZmllZCBmb3Igc3BlZWNoIHJlY29nbml0aW9uIHVzZS4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6flJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQpOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJh
aW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFs
dGltZU1lZGlhU291cmNlOjpzZXR0aW5ncyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291
cmNlOjpzdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6On5SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRl
bnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJl
dm9rZVNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpj
bG9uZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAgKiBTaGFyZWQv
bWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogU2hh
cmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0Ojpzb3VyY2VUeXBlRnJvbURldmljZVR5cGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3RvcHBl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OndoZW5SZWFk
eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEFzUmVh
ZHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpkaWRGYWls
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZVZpZGVvU291
cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0Q2Fw
YWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2V0U2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNv
bnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNvbm5lY3Rpb24pOgorICAg
ICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjppZGVudGlmaWVyIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVy
ZURldmljZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNvbnN0cmFpbnRzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyBjb25zdCk6CisgICAgICAgICog
U2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlRnJvbUNsb25lKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpzZXRTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90
ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzRmFpbGVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNl
bmRBZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6c2VuZENsb25lU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNlbmRSZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2VuZFN0YXJ0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNlbmRTdG9wKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNlbmRTZXRT
aG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OnNlbmRBcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNlbmRSZXF1ZXN0VG9FbmQpOgorICAg
ICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OndoZW5Tb3VyY2VBZGRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjp3aGVuU291cmNlRW5kZWQpOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpzZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjplbnN1cmVSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmFkZFNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6UmVtb3RlQXVkaW86OlJlbW90ZUF1ZGlvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90
ZUF1ZGlvOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNl
U3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjYXB0
dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1
ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJl
U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3Bs
YXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjb25uZWN0aW9uQnlJZGVudGlmaWVyKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OndoZW5Tb3VyY2VBZGRlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjp3aGVuU291cmNlRW5kZWQp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2VuZEFkZFNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzZW5kQ2xvbmVT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2VuZFJl
bW92ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpz
ZW5kU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2Vu
ZFN0b3ApOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2VuZFNl
dFNob3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6c2VuZEFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c2VuZFJlcXVlc3RUb0VuZCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCisyMDIwLTEyLTAzICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0
dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT24gaU9TLCBhdWRpbyBjYXB0dXJlIGlzIGRvbmUgaW4gd2ViIHByb2Nlc3MuIEZvciBzcGVl
Y2ggcmVjb2duaXRpb24sIHJlY29nbml6ZXIgaXMgaW4gVUkgcHJvY2Vzcy4gVGhlcmVmb3JlLAor
ICAgICAgICBVSSBwcm9jZXNzIG5lZWRzIHRvIGFzayB3ZWIgcHJvY2VzcyB0byBjYXB0dXJlIGF1
ZGlvIGFuZCBzZW5kIGJhY2sgZGF0YS4gVG8gaW1wbGVtZW50IHRoaXMsIHRoaXMgcGF0Y2ggYWRk
ZWQ6CisgICAgICAgIC0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSAob3duZWQgYnkgUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2UpIGluIGEgZGlmZmVyZW50IHByb2Nlc3MuCisg
ICAgICAgIC0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZXMuCisgICAgICAgIC0gUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6IG1hbmFnZSBhbGwgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVk
aWFTb3VyY2UuCisgICAgICAgIC0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6IG93biBhbmQgbW9uaXRvciBhIGxvY2FsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2UuCisKKyAgICAgICAgT3JpZ2luYWwgV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlIGlzIHJlbmFtZWQgdG8gV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LgorCisgICAgICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgYW5kIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyIGFyZSBzaW1pbGFyIHRvIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UgYW5kCisgICAgICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIGluIHdlYiBwcm9jZXNz
LiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBpcyBzaW1pbGFyIHRvIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkKKyAgICAgICAgaW4gVUkgcHJvY2Vzcy4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6flJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnQpOgorICAgICAg
ICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQpOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJh
aW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFs
dGltZU1lZGlhU291cmNlOjpzZXR0aW5ncyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291
cmNlOjpzdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6On5SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRl
bnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJl
dm9rZVNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpj
bG9uZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAgKiBTaGFyZWQv
bWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogU2hh
cmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4K
KyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0Ojpzb3VyY2VUeXBlRnJvbURldmljZVR5cGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3RvcHBl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OndoZW5SZWFk
eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEFzUmVh
ZHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpkaWRGYWls
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZVZpZGVvU291
cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0Q2Fw
YWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2V0U2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNv
bnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZCk6CisgICAg
ICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJl
RGV2aWNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6Y29uc3RyYWludHMgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OmFkZFNvdXJjZUZyb21DbG9uZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVBdWRpb1Nh
bXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29uc3Ry
YWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZCk6CisgICAgICAgICogU2hhcmVkL21l
ZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAq
IFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5p
bjogQWRkZWQuCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29h
LnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdCk6
CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisgICAgICAg
IChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZXRSZWFsdGltZU1lZGlhU291cmNl
Q3JlYXRlRnVuY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0
aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjplbnN1cmVSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVu
c3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8pOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6
OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwLgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0Ojpzb3VyY2VUeXBlRnJvbURl
dmljZVR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6fldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp3aGVuUmVhZHkp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpkaWRGYWls
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0QXNS
ZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNs
b25lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xv
bmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1w
bGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwYWJpbGl0
aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBw
bHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6aGFzRW5kZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlU3RvcHBl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1
cmVGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oLgorICAgICAgICAo
V2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjppZGVudGlmaWVyIGNvbnN0KToK
KwogMjAyMC0xMi0wMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCBmaXggdGhlIGlPUyBidWlsZCBhZnRlciByMjcwMzYyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGQ0ZGFhMmIyOTFkZTU2MjFkODc5M2JjNmFjMzJj
YzdlYzhkMTQyZjIuLjU3OWFhNTNiYzliZDgxMDhkYmZmYmY0Nzc3NmRlZDE3MDNlNGEzMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC03ODgsNiArNzg4LDcgQEAgU3BlZWNoUmVj
b2duaXRpb25FbmFibGVkOgogICAgIFdlYktpdExlZ2FjeToKICAgICAgIGRlZmF1bHQ6IGZhbHNl
CiAgICAgV2ViS2l0OgorICAgICAgIlBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSI6IHRy
dWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZh
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0YTA0MjI3NDg1NGJhZjQ2NjcxYWEzMDljNzM4Nzlh
MzU4MTNkMTlkLi4xMmVhNDdjN2ZmN2YwMDYzODExODNjNWQwNDlkOGIwNWQxNjIyMjZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEzMjcsNiArMTMyNyw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlRmFjdG9yeS5oCisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApp
bmRleCBjOTNiNmYzOGJjNjIzOGRhMWRiYTg2OGUyOWUxZTViMWU2ZjY2YjZiLi4yZTU2YTkxOGUz
OTlmZDcwM2ZlMmZjZDQzZDczMTA5NzJmMzhhZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5jcHAKQEAgLTM0LDkgKzM0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2sm
JiBzdGF0ZVVwZGF0ZUNhbGxiYWNrKQotewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK09w
dGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Zmlu
ZENhcHR1cmVEZXZpY2UoKQorewogICAgIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVE
ZXZpY2U7CiAgICAgYXV0byBkZXZpY2VzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIo
KS5jYXB0dXJlRGV2aWNlcygpOwogICAgIGZvciAoYXV0byBkZXZpY2UgOiBkZXZpY2VzKSB7CkBA
IC01MSwyNiArNTIsMTkgQEAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb24KICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBjYXB0dXJlRGV2aWNlOworfQogCi0g
ICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwg
Ik5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH07Ci0gICAgICAgIHN0YXRlVXBk
YXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElk
ZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitDYXB0dXJlU291cmNl
T3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVk
aWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICByZXR1
cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFj
dG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7
Cit9CiAKLSAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoKmNh
cHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBhdXRv
IGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpBdWRpb0NhcHR1cmUsIHJlc3VsdC5lcnJvck1lc3NhZ2UgfTsKLSAgICAgICAgc3RhdGVV
cGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50
SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwg
RGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVV
cGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQoreworICAg
IG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4o
Y2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBk
YXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkpOworfQogCi0gICAgbV9pbXBsID0gbWFrZVVu
aXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVudGlmaWVy
LCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIHJl
c3VsdC5zb3VyY2UoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjbGllbnRJZGVudGlmaWVy
KTsKLSAgICBVTlVTRURfUEFSQU0oZGF0YUNhbGxiYWNrKTsKLSAgICBVTlVTRURfUEFSQU0oc3Rh
dGVVcGRhdGVDYWxsYmFjayk7CiAjZW5kaWYKLX0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCA3Mzg2Y2VlZTI3NDA3Y2M2MTA0ZTI5ZWQ3
M2RlN2RhMGE0OWY0ZTBhLi42OWY5YTg4YjI2MWU3MWY2NmVjMDBiYjllNzFkYTBmM2FjODE5NDhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtNDIsMTAgKzQyLDE2IEBAIGNsYXNz
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOwogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAgflNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB1c2luZyBEYXRhQ2FsbGJhY2sg
PSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CiAgICAgdXNp
bmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUmKT47Ci0gICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBT
dGF0ZVVwZGF0ZUNhbGxiYWNrJiYpOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwg
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBP
cHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBmaW5kQ2FwdHVyZURldmljZSgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGlt
ZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyNlbmRpZgogCiBwcml2YXRlOgog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuY3BwCmluZGV4IGJmYzViZTEwMzRiZTNjMTJkMmNhZGVjM2UxMjE5NDNlYWI4OTkzMjMuLjk4
NDI2N2UyYjE5NDkxYzY0YWM1ZWRlYzYzNDNkMDc2ZWI0MTQxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCkBAIC04OCw2ICs4OCwxMCBAQCB2b2lkIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBN
ZWRpYVRpbWUmCiAgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXRE
ZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNj
cmlwdGlvbikgewogICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURhdGFTb3Vy
Y2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCBtX3NvdXJjZS5nZXQoKSk7
CiAgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9u
KSkgeworICAgICAgICAgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAgICAgICAg
bV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJv
cihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1dCBmb3Jt
YXQiIH0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
XSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICBt
X3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9y
KG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1h
dCIgfSkpOwpAQCAtOTYsNiArMTAwLDEwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAgICAg
ICAgfQogCiAgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRPdXRwdXRGb3JtYXQoYXVkaW9EZXNj
cmlwdGlvbikpIHsKKyAgICAgICAgICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAgICAg
ICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgb3V0
cHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyldIHsKICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAg
ICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgb3V0
cHV0IGZvcm1hdCIgfSkpOwpAQCAtMTEwLDcgKzExOCw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYKICAgICB9CiAKICAgICBtX2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVzKHRpbWUsIGRhdGEsIHNh
bXBsZUNvdW50KTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1wbGVDb3VudF0geworICAg
IGF1dG8gbWFpbnRocmVhZEhhbmRsZXIgPSBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKSwgdGltZSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnRdIHsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTIxLDcgKzEyOSwxMSBAQCB2
b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBNZWRpYVRpbWUmCiAgICAgICAgIH0KIAogICAgICAgICBtX2RhdGFDYWxsYmFj
ayh0aW1lLCBkYXRhLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7Ci0gICAgfSk7Cisg
ICAgfTsKKyAgICBpZiAoIWlzTWFpblRocmVhZCgpKQorICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFdURk1vdmUobWFpbnRocmVhZEhhbmRsZXIpKTsKKyAgICBlbHNlCisgICAgICAgIG1haW50aHJl
YWRIYW5kbGVyKCk7CiAjZWxzZQogICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGRlc2Ny
aXB0aW9uLCBzYW1wbGVDb3VudCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKaW5kZXggNWJlYjYwNTY0N2IzMjllMjY0
ZjgzYzI0OWY1N2MyYTIwODFjMmZkNy4uZjY0OWE3ODY1OWZlMzliY2Q3ZTQyMjUzMmI1NTMyZDkx
MGI5MmI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5jcHAKQEAgLTU0LDE1ICs1NCwyMiBAQCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6
OnJlc2V0KCkKIAogdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgcmVzZXQoKTsK
KyAgICAvLyBNYWtlIHN1cmUgbm8gb25nb2luZyByZXF1ZXN0LgorICAgIEFTU0VSVCghbV9zb3Vy
Y2UpOwogCiAgICAgbV9jbGllbnRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKICAgICBtX2RlbGVn
YXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVu
dGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSk7Cit9CisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogCi0gICAgc3RhcnRJbnRlcm5hbCgpOwordm9pZCBTcGVlY2hS
ZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKK3sKKyAg
ICBzdGFydChpZGVudGlmaWVyKTsKKyAgICBzZXRTb3VyY2UoV1RGTW92ZShzb3VyY2UpKTsKIH0K
IAotdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKCkKK3ZvaWQgU3BlZWNoUmVj
b2duaXplcjo6c2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKIHsK
ICAgICBhdXRvIGRhdGFDYWxsYmFjayA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShj
b25zdCBhdXRvJiB0aW1lLCBjb25zdCBhdXRvJiBkYXRhLCBjb25zdCBhdXRvJiBkZXNjcmlwdGlv
biwgYXV0byBzYW1wbGVDb3VudCkgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQpAQCAtOTAsOSAr
OTcsMTEgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKCkKICAgICAgICAg
ICAgIG1fc291cmNlID0gbnVsbHB0cjsKICAgICB9OwogCi0gICAgbV9zb3VyY2UgPSBtYWtlVW5p
cXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwg
V1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spKTsKKyAg
ICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigq
bV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVV
cGRhdGVDYWxsYmFjayksIFdURk1vdmUoc291cmNlKSk7CiB9CiAKKyNlbmRpZgorCiB2b2lkIFNw
ZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5l
cmF0ZUZpbmFsUmVzdWx0KQogewogICAgIGlmICghbV9jbGllbnRJZGVudGlmaWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCmluZGV4IGU2
ZjEzZmVlODRhNTMzYWYwZjA0ZTA3NjljMWFlMDk1YmU1YmZmM2YuLjM1ZWJmZWU0NTUzZjYyNjk2
MDY4MzFkMmE5MmEwZGU2NWNmYmM4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTM5LDE3ICszOSwyMyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXplcihEZWxlZ2F0ZUNhbGxi
YWNrJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5TcGVlY2hSZWNvZ25pemVyKCkgPSBkZWZhdWx0
OwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNldCgpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiYmKTsKKyNlbmRpZgogICAgIGVudW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVG
aW5hbFJlc3VsdCB7IE5vLCBZZXMgfTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hv
dWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7
CiAKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRl
bnRpZmllcjsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgcmVzZXQoKTsKLSAgICB2b2lkIHN0YXJ0
SW50ZXJuYWwoKTsKICAgICB2b2lkIHN0b3BJbnRlcm5hbCgpOwogCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICB2b2lkIHNldFNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7
CisjZW5kaWYKKwogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1f
ZGVsZWdhdGVDYWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlPiBtX3NvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZjgzYWU1NmYyM2Y4MWJmOTFjZjYyNTVkNWVl
OTc5MGUyYzliMmM3Li4yMzFlODQ0YTJlMTQwM2M4ZWFlYTQ0ZjM4Y2U1NTgxOGZkMjg4NTllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yMzYyNywxMyArMjM2MjcsNiBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29h
ICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCSk7Ci0JCQlw
YXRoID0gY29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk5NDZEMzcy
NzFENkNCMjI1MDA3NzA4NEYgLyogcGFyc2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTI1NjY0LDcgKzI1NjU3LDYgQEAKIAkJQUEyQTVBQjcxNkE0ODVB
NDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCi0JCQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovLAogCQkJCUFB
MkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAq
LywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhl
c2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3Bl
ZWNoU3ludGhlc2lzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA4OGUxNTFiMTIyMjRmZWJj
Yzg5M2I1M2Q2ODVlM2VjMWIwMTBjZDQ1Li44MDJiN2NmMWVlNDNkMjc5ZDgxNDc3ZmM0NzIwMDA4
ZTEwNTY0OTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTUwLDYgKzUwLDcgQEAgc2V0KFdlYktp
dF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMv
TmV0c2NhcGUveDExIgogICAgICIke1dFQktJVF9ESVJ9L1NoYXJlZC9SZW1vdGVMYXllclRyZWUi
CiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1dlYnNpdGVEYXRhIgorICAgICIke1dFQktJVF9E
SVJ9L1NoYXJlZC9tZWRpYSIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MiCiAgICAgIiR7
V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSSIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3Mv
QVBJL0MiCkBAIC0xMDMsNiArMTA0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1Jlc291cmNlQ2FjaGUiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TcGVl
Y2giCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TdG9yYWdlIgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydCIKQEAgLTE4NSw2ICsxODcsOSBAQCBzZXQoV2ViS2l0X01FU1NB
R0VTX0lOX0ZJTEVTCiAKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZl
cgogCisgICAgU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisgICAgU2hh
cmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisKICAgICBVSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eQogICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
cgogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZTUxY2FlZDIxZTE4NmNmMmExNzNjYjhh
MzMzMTJiZTBiMzA0YmIwMC4uNzI2MDU3MzBmMWNjY2Q5ODNlNDQxMTRhMDc5Mzc0MDg5MDA3MDBm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApA
QCAtOTEsNiArOTEsOCBAQCAkKFBST0pFQ1RfRElSKS9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0hUVFBTVXBncmFkZS9IVFRQU1VwZ3Jh
ZGVMaXN0LnR4dAogJChQUk9KRUNUX0RJUikvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdl
UmVjZWl2ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9XZWJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1NoYXJlZC9tZWRpYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCiAkKFBST0pFQ1RfRElSKS9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKaW5kZXggZTg4YjJjMjFmYTcxN2M3N2QyMzAyY2I1MThiYTRhZDNlZGUyNTc0YS4uMDVmYjNl
ZjY1ZWJjZTM4NWEyOTg2MmYxNjQwYTk0MzBkM2YxYTQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzEsNiArMTMxLDkgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJvY2Vzc1By
b3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2Vz
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJNZXNzYWdlcy5oCkBAIC0yMjQsNiArMjI3LDkgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTb3Vy
Y2VQcm94eU1lc3NhZ2VzUmVwbGkKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0
cnlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBs
aWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2ODE0ODU1ZmY5ZDIzYWYwYTc3
ZTVmZGE2ZGZkMmZkNTUwOTc2ZjY5Li5mOWM2ZmRkMjNhZTY4YmRiZWNjNTAyZTUxMGJjODcxMDQ1
OGRhNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMzgsNiArMTM4LDggQEAg
TUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5IFwKIAlTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
IFwKIAlTaGFyZWQvV2ViQ29ubmVjdGlvbiBcCisJU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyIFwKKwlTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIgXAogCVVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5IFwKIAlVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXAogCVVJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMjE5ZmFmOGU0YTg2YzVjMzg1MDg5ZjY2Y2M0ZDYxZTEwMzQ0NDVjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwCkBAIC0wLDAgKzEsMzM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGlt
ZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNlbHNlCisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUF1ZGlvRGF0YS5oPgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNv
dXJjZQorICAgIDogcHJpdmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZl
cgorICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBs
ZU9ic2VydmVyCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U6OkNsaWVudAorI2VuZGlmCit7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBzb3VyY2UsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAg
ICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAgICAgLCBtX3NvdXJjZShXVEZN
b3ZlKHNvdXJjZSkpCisgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVS
ZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2U+KHRoaXMpKSkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPmFkZE9i
c2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIo
KnRoaXMpOworICAgIH0KKworICAgIH5SZWFsdGltZU1lZGlhU291cmNlKCkKKyAgICB7CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0b3JhZ2UoKS5pbnZhbGlkYXRlKCk7CisjZW5kaWYK
KyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAg
ICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIHZvaWQg
c3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisgICAgfQorCisgICAg
dm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5zdG9wKCk7CisgICAgfQorCisg
ICAgdm9pZCByZXF1ZXN0VG9FbmQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnJlcXVlc3RU
b0VuZCgqdGhpcyk7CisgICAgfQorCisgICAgT3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0Vycm9yPiBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKTsKKyAgICB9CisKKyAg
ICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3NvdXJjZS0+c2V0dGluZ3MoKTsKKyAgICB9
CisKKyAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1fc291cmNlLT5jbG9uZSgpOworICAgIH0KKworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmlu
Z0J1ZmZlci5zdG9yYWdlKCkpOworICAgIH0KKyNlbmRpZgorCitwcml2YXRlOgorICAgIHZvaWQg
c291cmNlU3RvcHBlZCgpIGZpbmFsCisgICAgeworICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1
cmVEaWRGYWlsKCkpIHsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQobV9p
ZGVudGlmaWVyKSwgMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAgICB9CisKKyAg
ICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0
IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IFdlYkNvcmU6OkF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMp
IGZpbmFsCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlw
dGlvbiAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBs
YXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFdlYkNvcmU6OlBsYXRmb3JtRGVzY3JpcHRpb246
OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpX
VEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5w
bGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJl
ck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAg
bV9yaW5nQnVmZmVyLmFsbG9jYXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwg
bV9udW1iZXJPZkZyYW1lcyk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQ29y
ZTo6V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVy
LnN0b3JlKGRvd25jYXN0PFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5s
aXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICAgICAgdWludDY0
X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJhbWU7CisgICAgICAgIG1fcmlu
Z0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZGVudGlmaWVyLCB0aW1l
LCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyNlbHNlCisgICAg
ICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGF1ZGlvRGF0YSk7
CisgICAgICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7CisgICAgICAgIFVOVVNFRF9QQVJB
TShudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkK
KworICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAo
c3RvcmFnZSkKKyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworI2lmIE9TKERBUldJTikgfHwgT1MoV0lO
RE9XUykKKyAgICAgICAgdWludDY0X3QgZGF0YVNpemUgPSBoYW5kbGUuc2l6ZSgpOworI2Vsc2UK
KyAgICAgICAgdWludDY0X3QgZGF0YVNpemUgPSAwOworI2VuZGlmCisgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNl
dFN0b3JhZ2UobV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUo
aGFuZGxlKSwgIGRhdGFTaXplIH0sIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAw
KTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBmaW5h
bAorICAgIHsKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICAgICAgYXV0byBidWZmZXJTaXpl
ID0gV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8g
NTA7CisgICAgICAgIGlmIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5w
cmVmZXJyZWRCdWZmZXJTaXplKCkgPiBidWZmZXJTaXplKQorICAgICAgICAgICAgV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZm
ZXJTaXplKTsKKyAgICAgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCku
c2V0Q2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkLCBXZWJDb3Jl
OjpSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOworI2VuZGlmCisgICAgfQorCisgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJl
ZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWY8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsg
MCB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FSaW5nQnVmZmVyIG1f
cmluZ0J1ZmZlcjsKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNj
cmlwdGlvbiB7IH07CisjZW5kaWYKK307CisKK1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1JlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9CisKKyNpZiBF
TkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNh
bmRib3hIYW5kbGVGb3JUQ0NELCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFu
ZGxlRm9yTWljcm9waG9uZSkKK3sKKyAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJveEhhbmRsZUZvclRDQ0QpKTsKKyAg
ICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpCisgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgdGNjZCIpOworICAgIGVsc2UKKyAg
ICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+Y29uc3VtZSgpOworCisgICAgbV9zYW5k
Ym94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZN
b3ZlKHNhbmRib3hIYW5kbGVGb3JNaWNyb3Bob25lKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRl
bnNpb25Gb3JNaWNyb3Bob25lKQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUg
c2FuZGJveCBleHRlbnNpb24gZm9yIG1pY3JvcGhvbmUiKTsKKyAgICBlbHNlCisgICAgICAgIG1f
c2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPmNvbnN1bWUoKTsKK30KKwordm9pZCBSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQoreworICAg
IGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVu
c2lvbkZvclRDQ0QtPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NE
ID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9w
aG9uZSkgeworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2Uo
KTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IG51bGxwdHI7Cisg
ICAgfQorfQorCisjZW5kaWYKKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRk
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJh
aW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKKyAgICBz
d2l0Y2ggKGNhcHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBzb3VyY2VPckVycm9yID0g
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgICAgIHNvdXJj
ZU9yRXJyb3IgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNhcHR1cmVE
ZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCAmY29uc3RyYWludHMpOworICAgICAgICBpZiAoc291
cmNlT3JFcnJvcikKKyAgICAgICAgICAgIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+bW9u
aXRvck9yaWVudGF0aW9uKG1fb3JpZW50YXRpb25Ob3RpZmllcik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAg
IGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAg
ICBzb3VyY2VPckVycm9yID0gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVTb3Vy
Y2UoY2FwdHVyZURldmljZSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGJvb2wgc3Vj
Y2VlZGVkID0gISFzb3VyY2VPckVycm9yOworICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHM7
CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOworICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwor
ICAgIGlmIChzdWNjZWVkZWQpIHsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VPckVycm9y
LnNvdXJjZSgpOworICAgICAgICBzZXR0aW5ncyA9IHNvdXJjZS0+c2V0dGluZ3MoKTsKKyAgICAg
ICAgY2FwYWJpbGl0aWVzID0gc291cmNlLT5jYXBhYmlsaXRpZXMoKTsKKyAgICAgICAgQVNTRVJU
KCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgICAgICBtX3NvdXJjZXMuYWRk
KGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZT4oaWRlbnRpZmllciwg
V1RGTW92ZShzb3VyY2UpLCBtYWtlUmVmKCptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKSkpOwor
ICAgIH0gZWxzZQorICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9y
RXJyb3IuZXJyb3JNZXNzYWdlKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2NlZWRlZCwg
aW52YWxpZENvbnN0cmFpbnRzLCBXVEZNb3ZlKHNldHRpbmdzKSwgV1RGTW92ZShjYXBhYmlsaXRp
ZXMpKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6c3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlk
ZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0YXJ0KCk7Cit9CisKK3ZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0
KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0b3AoKTsKK30KKworSVBDOjpDb25uZWN0
aW9uKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBjb25zdAoreworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpOworfQorCit1aW50NjRfdCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiAwOwor
fQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjbG9uZVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZpZXIpCit7CisgICAg
Ly8gVE9ETzogaW1wbGVtZW50IHRoaXMuCisgICAgYXV0byBvcmlnaW5hbFNvdXJjZSA9IG1fc291
cmNlcy5nZXQob3JpZ2luYWxJZGVudGlmaWVyKTsKKyAgICBpZiAoIW9yaWdpbmFsU291cmNlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhuZXdJZGVu
dGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChuZXdJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJl
YWx0aW1lTWVkaWFTb3VyY2U+KG5ld0lkZW50aWZpZXIsIG9yaWdpbmFsU291cmNlLT5jbG9uZSgp
LCBtYWtlUmVmKCptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKSkpOworfQorCit2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlS
b3RhdGlvbikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZp
ZXIpKQorICAgICAgICBzb3VyY2UtPnN0b3AoKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBj
b25zdHJhaW50cykKK3sKKyAgICBhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmll
cik7CisgICAgaWYgKCFzb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcmVzdWx0
ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKTsKKyAgICBpZiAoIXJlc3Vs
dCkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OkFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoaWRlbnRpZmllciwgc291cmNlLT5zZXR0aW5n
cygpKSk7CisgICAgZWxzZQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6QXBwbHlDb25zdHJhaW50c0ZhaWxlZChpZGVudGlmaWVyLCByZXN1
bHQtPmJhZENvbnN0cmFpbnQsIHJlc3VsdC0+bWVzc2FnZSkpOworfQorCit2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXF1ZXN0VG9FbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3Nv
dXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlcXVlc3RUb0VuZCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM4ZDA0MTNjNWRlODRmYjM0MDY3YzUwNzExN2RlZjA0M2YwMWRmNTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvT3JpZW50YXRpb25Ob3RpZmllci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURl
dmljZTsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKK2NsYXNzIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM7CitzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGlj
IElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIoKTsKKyAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKworcHJpdmF0
ZToKKyAgICAvLyBNZXNzYWdlcworICAgIHZvaWQgYWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRz
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RhcnQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RvcChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBjbG9uZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZp
ZXIpOworICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsKKyAgICB2b2lk
IGFwcGx5Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmKTsKKyAgICB2b2lkIHJlcXVlc3RUb0Vu
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisjaWYgRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJiYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKKyAgICB2
b2lkIHJldm9rZVNhbmRib3hFeHRlbnNpb25zKCk7CisjZW5kaWYKKworICAgIC8vIElQQzo6TWVz
c2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIu
CisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZp
bmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmlu
YWw7CisKKyAgICBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIGZyaWVuZCBjbGFzcyBS
ZWFsdGltZU1lZGlhU291cmNlOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlPj4gbV9z
b3VyY2VzOworICAgIFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXIgbV9vcmllbnRhdGlvbk5v
dGlmaWVyIHsgMCB9OworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICBSZWZQ
dHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRDsKKyAgICBSZWZQ
dHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZTsKKyNl
bmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWVkYmI5MGRlYzNmYzc5MmU5ZTJhNTJh
MGZjM2M0MDU3ZjQxMjY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0
NCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5v
dFJlZkNvdW50ZWQgeworICAgIEFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3Ry
aW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50
cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykgQXN5bmMKKyAgICBSZW1vdmVTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAg
ICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
KTsKKyAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50
aWZpZXIpOworCisgICAgQ2xvbmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgb3JpZ2luYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBuZXdJZGVudGlmaWVyKQorICAgIFNldFNob3VsZEFwcGx5Um90YXRpb24oV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBzaG91
bGRBcHBseVJvdGF0aW9uKQorICAgIEFwcGx5Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMgY29uc3RyYWludHMpCisgICAgUmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisKKyNpZiBFTkFCTEUoU0FOREJPWF9F
WFRFTlNJT05TKQorICAgIEdyYW50U2FuZGJveEV4dGVuc2lvbnMoV2ViS2l0OjpTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZvclRDQ0QsIFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVGb3JNaWNyb3Bob25l
KQorICAgIFJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKKyNlbmRpZgorfQorCisjZW5kaWYKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWI5MTEyZTYxNWQwYjkxZTgxYTA2NDM5NjFiNTQ0
MDc3ODI1YWFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEv
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwzNTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkdQVVByb2Nl
c3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZW1v
dGVWaWRlb1NhbXBsZS5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNz
aW9uVlQuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIGlubGluZSBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlw
ZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUpCit7CisgICAg
c3dpdGNoIChkZXZpY2VUeXBlKSB7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpXaW5kb3c6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpWaWRlbzsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAg
cmV0dXJuIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7Cit9CisKK1Jl
ZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIG1hbmFnZXIsIGNhcHR1cmVEZXZpY2UsIGNv
bnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcykpOworfQorCitSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgT3B0aW9uYWw8V2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI+IG9yaWdpbmFsSWRlbnRpZmllcikKKyAg
ICA6IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZyb21EZXZpY2VUeXBl
KGNhcHR1cmVEZXZpY2UudHlwZSgpKSwgV1RGTW92ZShuYW1lKSwgU3RyaW5nOjpudW1iZXIoaWRl
bnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZShoYXNoU2FsdCkpCisgICAgLCBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKKyAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKKyAg
ICAsIG1fY2FwdHVyZURldmljZShjYXB0dXJlRGV2aWNlKQorICAgICwgbV9jb25zdHJhaW50cyhj
b25zdHJhaW50cykKKyAgICAsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyhzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5nQnVmZmVy
KG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCisjZW5kaWYKK3sKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgc3dpdGNoIChtX2NhcHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0Nh
cHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAg
ICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVv
Q2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAg
ICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
cGVha2VyOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5r
bm93bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorI2VuZGlmCisKKyAg
ICBpZiAoIW9yaWdpbmFsSWRlbnRpZmllcikgeworICAgICAgICBtX21hbmFnZXItPmFkZFNvdXJj
ZSgqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX21hbmFnZXItPmFkZFNv
dXJjZUZyb21DbG9uZSgqdGhpcywgKm9yaWdpbmFsSWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKK3sKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIHN3aXRjaCAobV9jYXB0dXJlRGV2aWNlLnR5cGUoKSkg
eworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9u
ZToKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpD
YW1lcmE6CisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U2NyZWVuOgorICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
V2luZG93OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CisjZW5kaWYKKworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+cmVtb3Zl
U291cmNlKCp0aGlzKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFy
dFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdl
ci0+c2VuZFN0YXJ0KG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAg
ICAgIG1fbWFuYWdlci0+c2VuZFN0b3AobV9pZGVudGlmaWVyKTsKK30KKworI2lmIFBMQVRGT1JN
KENPQ09BKQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UoY29u
c3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7
CisgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworCisgICAgUmVmUHRyPFNoYXJlZE1l
bW9yeT4gbWVtb3J5OworICAgIGlmICghaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1lbW9y
eSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpS
ZWFkT25seSk7CisgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBzaGFyZWQgbWVt
b3J5IGZvciByZW1vdGUgc291cmNlIik7CisgICAgfQorCisgICAgYXV0byYgc3RvcmFnZSA9IHN0
YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdl
KCkpOworICAgIGlmICghbWVtb3J5KSB7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0
ZSgpOworICAgICAgICBzdG9yYWdlLnNldFJlYWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFn
ZS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3Rv
cmFnZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBzdG9yYWdlLnNl
dFJlYWRPbmx5KHRydWUpOworICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6V2Vi
QXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5k
aWYKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVk
KCkKK3sKKyAgICBjYXB0dXJlRmFpbGVkKCk7CisKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAg
ICBtX21hbmFnZXItPndoZW5Tb3VyY2VFbmRlZCgqdGhpcyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3RvcHBlZCgpCit7CisgICAgc3RvcCgpOwor
CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT53aGVuU291cmNlRW5kZWQo
KnRoaXMpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OndoZW5SZWFkeShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKG1f
aXNSZWFkeSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKFdURk1vdmUobV9lcnJvck1lc3NhZ2Up
KTsKKyAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0QXNSZWFkeSgpCit7CisgICAgbV9pc1JlYWR5ID0gdHJ1
ZTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjayh7IH0pOworfQorCit2
b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNz
YWdlKQoreworICAgIG1faXNSZWFkeSA9IHRydWU7CisgICAgbV9lcnJvck1lc3NhZ2UgPSBXVEZN
b3ZlKGVycm9yTWVzc2FnZSk7CisgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgIG1fY2FsbGJh
Y2sobV9lcnJvck1lc3NhZ2UpOworfQorCitSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmUoKQoreworICAgIHN3aXRjaCAodHlw
ZSgpKSB7CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKKyAgICAg
ICAgcmV0dXJuIGNsb25lVmlkZW9Tb3VyY2UoKTsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KK30KKworUmVmPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2Uo
KQoreworICAgIGlmICghbV9tYW5hZ2VyKSB7CisgICAgICAgIExPR19FUlJPUigiUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSBtYW5hZ2VyIGRvZXMgbm90IGV4aXN0
Iik7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBhdXRvIGlkZW50aWZpZXIg
PSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAg
ICBhdXRvIGxhYmVsID0gbV9zZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpOworICAgIGF1dG8gY2xv
bmVTb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoaWRlbnRp
ZmllciwgKm1fbWFuYWdlciwgbV9jYXB0dXJlRGV2aWNlLCBtX2NvbnN0cmFpbnRzLCBTdHJpbmcg
eyBsYWJlbCB9LCBkZXZpY2VJREhhc2hTYWx0KCksIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cywgbV9pZGVudGlmaWVyKSk7CisgICAgY2xvbmVTb3VyY2UtPnNldFNldHRpbmdzKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7IG1fc2V0dGluZ3MgfSk7CisgICAgcmV0dXJu
IGNsb25lU291cmNlOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENh
cGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2Fw
YWJpbGl0aWVzKQoreworICAgIG1fY2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMp
OworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdzKQoreworICAgIGF1dG8g
Y2hhbmdlZCA9IG1fc2V0dGluZ3MuZGlmZmVyZW5jZShzZXR0aW5ncyk7CisgICAgbV9zZXR0aW5n
cyA9IFdURk1vdmUoc2V0dGluZ3MpOworICAgIG5vdGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2
ZXJzKGNoYW5nZWQpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIGlmICghbV9idWZmZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJC
dWZmZXIgZm9yIHJlbW90ZSBzb3VyY2UgaXMgbnVsbCIpOworICAgICAgICBjYXB0dXJlRmFpbGVk
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291
bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmluZ0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91
bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBtX3JpbmdCdWZmZXItPmZldGNoKG1fYnVm
ZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICBhdWRp
b1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1fYnVmZmVyLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKKyAgICBVTlVTRURfUEFS
QU0obnVtYmVyT2ZGcmFtZXMpOworICAgIFVOVVNFRF9QQVJBTShzdGFydEZyYW1lKTsKKyAgICBV
TlVTRURfUEFSQU0oZW5kRnJhbWUpOworI2VuZGlmCit9CisKKyNpZiBQTEFURk9STShDT0NPQSkK
Kwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWls
YWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBB
U1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsKKworICAgIHNldEludHJpbnNpY1NpemUocmVt
b3RlU2FtcGxlLnNpemUoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwg
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlk
ZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IFdlYkNvcmU6Oklt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7
CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHNhbXBsZVJl
ZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBs
ZSk7CisgICAgaWYgKCFzYW1wbGVSZWYpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRl
b1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVmKTsKK30KKworI2VuZGlmCisKK2Jvb2wgUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFw
cGx5Um90YXRpb24pCit7CisgICAgaWYgKG1fbWFuYWdlcikgeworICAgICAgICBtX21hbmFnZXIt
PnNlbmRTZXRTaG91bGRBcHBseVJvdGF0aW9uKG1faWRlbnRpZmllciwgc2hvdWxkQXBwbHlSb3Rh
dGlvbik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQXBwbHlDb25zdHJhaW50
c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy5h
cHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIG1fbWFuYWdlci0+c2VuZEFw
cGx5Q29uc3RyYWludHMobV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyk7Cit9CisKK3ZvaWQgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25zdCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQoreworICAgIHNl
dFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyhzZXR0aW5ncykp
OworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tz
LnRha2VGaXJzdCgpOworICAgIGNhbGxiYWNrKHsgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25z
dHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCit7CisgICAgYXV0byBjYWxsYmFjayA9IG1f
cGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7CisgICAgY2FsbGJh
Y2soQXBwbHlDb25zdHJhaW50c0Vycm9yIHsgV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RG
TW92ZShlcnJvck1lc3NhZ2UpIH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnN0b3BCZWluZ09ic2VydmVkKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBt
X21hbmFnZXItPnNlbmRSZXF1ZXN0VG9FbmQobV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQor
eworICAgIHN3aXRjaCAodHlwZSgpKSB7CisgICAgY2FzZSBUeXBlOjpBdWRpbzoKKyAgICAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKG9ic2VydmVyKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBUeXBlOjpWaWRlbzoKKyAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y29ubmVjdGlvbihib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisg
ICAgaWYgKHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCisgICAgICAgIHJldHVybiAmV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCk7CisjZW5kaWYKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTkxMzA2MTMwNjhiMWU3ZTJkYzdmODY2Mjk1YWQwMjYy
NWQ0MDQ2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUg
IlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmlj
ZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgQ0FSaW5nQnVmZmVyOworY2xhc3MgSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDsKK2NsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdDsKKyNlbmRpZgor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI7CisKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyYsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBib29s
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgPSBmYWxzZSk7CisgICAgflJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKCkgY29uc3QgeyByZXR1cm4g
bV9jYXB0dXJlRGV2aWNlOyB9OworICAgIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMm
IGNvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJhaW50czsgfTsKKyAgICBib29s
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3M7IH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0U3Rv
cmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorICAg
IHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAg
ICB2b2lkIHJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3Bw
ZWQoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZh
aWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOworI2VuZGlmCisKKyAgICB2b2lk
IGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYm
IGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBkaWRG
YWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBzZXRBc1JlYWR5KCk7CisgICAg
dm9pZCBzZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYmKTsKKyAgICB2b2lkIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYmKTsKKworICAgIHN0YXRpYyBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
Ym9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKworcHJpdmF0ZToKKyAgICBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgT3B0
aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI+IG9yaWdpbmFsSWRl
bnRpZmllciA9IFdURjo6bnVsbG9wdCk7CisgICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U+IGNsb25lVmlkZW9Tb3VyY2UoKTsKKyAgICAKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4g
bV9jYXBhYmlsaXRpZXM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQorICAgIGJv
b2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJv
b2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RU
b0VuZChPYnNlcnZlciYpIGZpbmFsOworICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQoKSBmaW5h
bDsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgd2hlblJl
YWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7CisgICAgUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkgZmluYWw7CisKKyAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9tYW5hZ2VyOworICAgIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7CisgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisgICAgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSBtX2NhcHR1cmVEZXZpY2U7CisgICAgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyBtX2NvbnN0cmFpbnRzOworCisgICAgRGVxdWU8QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+IG1f
cGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CisgICAgYm9vbCBtX2lzUmVhZHkgeyBm
YWxzZSB9OworICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKKyAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7CisgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MgeyBmYWxzZSB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTZlNWQ0NWIxZTI1YWFl
NzQ2NDgxN2RkOWMxOTllOTcwZWNkODkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0w
LDAgKzEsMjAxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGJvb2wgc2hvdWxkR3JhbnRTYW5kYm94RXh0ZW5z
aW9ucykKKyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQorICAgICwgbV9zaG91bGRHcmFu
dFNhbmRib3hFeHRlbnNpb25zKHNob3VsZEdyYW50U2FuZGJveEV4dGVuc2lvbnMpCit7Cit9CisK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291
cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlm
aWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cihzb3VyY2Up
KTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisgICAgaWYgKCFtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyAmJiBtX3Nob3Vs
ZEdyYW50U2FuZGJveEV4dGVuc2lvbnMpIHsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIGhhbmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX2Nvbm5lY3Rpb24tPmdldEF1ZGl0
VG9rZW4oKSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBoYW5kbGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhvbmUiX3Ms
IGhhbmRsZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6R3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhoYW5kbGVGb3JUQ0NELCBo
YW5kbGVGb3JNaWNyb3Bob25lKSk7CisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNp
b25zID0gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKworICAgIHNlbmRBZGRTb3VyY2UoaWRlbnRpZmll
ciwgc291cmNlLmNhcHR1cmVEZXZpY2UoKSwgc291cmNlLmRldmljZUlESGFzaFNhbHQoKSwgc291
cmNlLmNvbnN0cmFpbnRzKCksICBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwg
aWRlbnRpZmllcl0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBz
ZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgeworICAgICAgICBhdXRvIHNvdXJjZSA9IG1f
c291cmNlcy5nZXQoaWRlbnRpZmllcik7CisgICAgICAgIGlmICghc291cmNlKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CisgICAgICAgICAgICBzb3Vy
Y2UtPmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIHNvdXJjZS0+c2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5s
YWJlbCgpLnN0cmluZygpIH0pOworICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUo
c2V0dGluZ3MpKTsKKyAgICAgICAgc291cmNlLT5zZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBh
YmlsaXRpZXMpKTsKKyAgICAgICAgc291cmNlLT5zZXRBc1JlYWR5KCk7CisgICAgfSk7CisKKyAg
ICB3aGVuU291cmNlQWRkZWQoc291cmNlKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6YWRkU291cmNlRnJvbUNsb25lKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UmIHNvdXJjZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgb3JpZ2lu
YWxJZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMob3JpZ2luYWxJ
ZGVudGlmaWVyKSk7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsK
KyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3Vy
Y2VzLmFkZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cihzb3VyY2UpKTsKKworICAgIHNlbmRDbG9u
ZVNvdXJjZShvcmlnaW5hbElkZW50aWZpZXIsIGlkZW50aWZpZXIpOworCisgICAgd2hlblNvdXJj
ZUFkZGVkKHNvdXJjZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnJlbW92ZVNvdXJjZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7Cisg
ICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQobV9z
b3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAgICBtX3NvdXJjZXMucmVtb3Zl
KGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykgJiYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAobV9zb3VyY2VzLmlzRW1wdHkoKSAmJiBtX2hhc0dy
YW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKSk7CisgICAgICAg
IG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gZmFsc2U7CisgICAgfQorI2VuZGlmCisg
ICAgCisgICAgc2VuZFJlbW92ZVNvdXJjZShpZGVudGlmaWVyKTsKK30KKworI2lmIFBMQVRGT1JN
KENPQ09BKQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9y
YWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJh
bWVzKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikp
CisgICAgICAgIHNvdXJjZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9pZCBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFU
aW1lJiB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdl
dChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFi
bGUodGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0g
bV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVTb3VyY2VT
dG9wcGVkKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9jb25uZWN0aW9uLmdldCgpOworfQorCit1aW50NjRfdCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJl
dHVybiAwOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBs
eUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYgc2V0dGluZ3MpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVu
dGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKHNldHRp
bmdzKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlD
b25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBtZXNzYWdlKQor
eworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAg
ICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFp
bnQpLCBXVEZNb3ZlKG1lc3NhZ2UpKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6c2VuZEFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJl
RGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0
cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFkZFNvdXJjZSB7IGlkZW50aWZpZXIsIGNhcHR1cmVE
ZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyB9LCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OnNlbmRDbG9uZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBv
cmlnaW5hbElkZW50aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IG5ld0lkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OkNsb25lU291cmNlIHsgb3JpZ2luYWxJZGVudGlmaWVyLCBuZXdJZGVudGlmaWVy
IH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZW5kUmVt
b3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJl
bW92ZVNvdXJjZSB7IGlkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OnNlbmRTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpTdGFydCB7IGlkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNlbmRTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0b3AgeyBpZGVudGlmaWVyIH0pOworfQorCit2b2lkIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZW5kU2V0U2hvdWxkQXBwbHlSb3RhdGlv
bihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29s
IHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OlNldFNob3VsZEFwcGx5Um90YXRpb24geyBpZGVudGlmaWVyLCBzaG91
bGRBcHBseVJvdGF0aW9uIH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpzZW5kQXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBj
b25zdHJhaW50cykKK3sKKyAgICAvLyBGSVhNRTogVXNlIHNlbmRBc3luY1dpdGhSZXBseS4KKyAg
ICBzZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6QXBwbHlDb25zdHJh
aW50cyB7IGlkZW50aWZpZXIsIGNvbnN0cmFpbnRzIH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZW5kUmVxdWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlcXVlc3RUb0VuZCB7IGlkZW50aWZpZXIgfSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzAzNmQzN2NiNzdjMmYwZTc3MDhkODVlOGNmN2U1ZTkxMzNj
Y2YzOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVk
ZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK2NsYXNzIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM7CitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3M7CitzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorY2xh
c3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworI2VuZGlmCit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOworCitjbGFzcyBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwg
cHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoSVBDOjpDb25u
ZWN0aW9uKiwgYm9vbCBzaG91bGRHcmFudFNhbmRib3hFeHRlbnNpb25zID0gdHJ1ZSk7CisgICAg
dm9pZCBhZGRTb3VyY2UoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOworICAgIHZvaWQgYWRk
U291cmNlRnJvbUNsb25lKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZSYpOworCisgICAgdmlydHVhbCB2b2lkIHdoZW5Tb3VyY2VBZGRl
ZChSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHdoZW5T
b3VyY2VFbmRlZChSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJikgeyB9CisgICAgdmlydHVhbCB2
b2lkIHNlbmRBZGRTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBz
dWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiYpPiYmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZENsb25lU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG9yaWdpbmFsSWRlbnRpZmllciwgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbmV3SWRlbnRpZmllcik7CisgICAgdmlydHVh
bCB2b2lkIHNlbmRSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIpOworICAgIHZpcnR1YWwgdm9pZCBzZW5kU3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZpcnR1YWwgdm9pZCBzZW5kU3RvcChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdmlydHVhbCB2b2lkIHNlbmRTZXRT
aG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pOworICAgIHZpcnR1YWwgdm9pZCBzZW5kQXBwbHlD
b25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOworICAgIHZpcnR1YWwgdm9pZCBzZW5kUmVxdWVz
dFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKworcHJpdmF0
ZToKKyAgICAvLyBNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAg
ICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJP
ZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZv
aWQgcmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllcik7CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0Zh
aWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3RyaW5nJiYsIFN0
cmluZyYmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6
Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1
aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAg
UmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hNYXA8V2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZT4+IG1fc291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hFeHRl
bnNpb25zIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkR3JhbnRTYW5kYm94RXh0ZW5zaW9u
cyB7IHRydWUgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmIw
NTIxYWQ5OTE1NDhlN2Q1ZjBjOTY3ODg3YmU1NTA4ZDhjZTkxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0MCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIFNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBzdG9y
YWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24s
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorI2VuZGlmCisKKyAgICBSZW1vdGVBdWRpb1NhbXBs
ZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBz
dGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICBSZW1vdGVDYXB0dXJlRmFpbGVkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgUmVt
b3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorCisgICAgQXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCisgICAgQXBwbHlDb25zdHJhaW50c0ZhaWxlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcg
ZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nIG1lc3NhZ2UpCit9CisKKyNlbmRpZgorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dAppbmRleCAwOTE3ZjAxYmUxYzlmOGNhYTJhYmY3ZjBmODkwZjg5NWEzZjJlZjg2Li5hNjc1NDUw
Y2UxODc2ZDIwMDA4ZGE1YzNiM2ExMDAzM2I2MmJiYmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI3Nyw2
ICsyNzcsMTAgQEAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24uY3Bw
IEBuby11bmlmeQogCiBTaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCiAKK1NoYXJl
ZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKK1NoYXJlZC9tZWRpYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcAorCiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNw
cAogVUlQcm9jZXNzL0JhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKIFVJ
UHJvY2Vzcy9EZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApp
bmRleCA0ZWE4Yjc4MWQyMGE4MWEwOGU0NGI0NGRiYTBiNThmMjFiZDZmOTczLi5hYTAyYjgzYjc3
NzBkYzgyOTZmNTM2Y2ZkODFmMTkzNmYzMmU0ZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBA
IC01NjYsNyArNTY2LDYgQEAgV2ViUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29v
cmRpbmF0b3JDb2NvYS5tbQogCiBXZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIubW0KIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCi1X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCiBXZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuY3BwCmluZGV4IDlmNjAwZDNmNWNkYzZjMzJjNTQ4YTBhMDlhYjAyYmMxNDUzNDUyNDQuLjlh
MmE4M2Q4MTVhYzE4NGUyZTNjMzQwZTBjZDY2Y2U1MjRhNDdjYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTkzLDYg
KzkzLDM4IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uCiAgICAgICAgIH0pOwogICAgIH0KIAor
ICAgIG1fcmVjb2duaXplci0+cmVzZXQoKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgYXV0byBjYXB0dXJlRGV2aWNlID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpm
aW5kQ2FwdHVyZURldmljZSgpOworICAgIGlmICghY2FwdHVyZURldmljZSkgeworICAgICAgICBt
X3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKyAgICAgICAgc2VuZFVwZGF0ZShT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9KSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVu
Y3Rpb24pIHsKKyAgICAgICAgYXV0byByZWFsdGltZVNvdXJjZSA9IG1fcmVhbHRpbWVNZWRpYVNv
dXJjZUNyZWF0ZUZ1bmN0aW9uKCpjYXB0dXJlRGV2aWNlKTsKKyAgICAgICAgaWYgKCFyZWFsdGlt
ZVNvdXJjZSkgeworICAgICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmll
cik7CisgICAgICAgICAgICBzZW5kVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIkZhaWxlZCB0byBjcmVhdGUgcmVh
bHRpbWUgc291cmNlIiB9KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyLCBtYWtlUmVmKCpyZWFsdGlt
ZVNvdXJjZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzb3VyY2VPckVy
cm9yID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpIHsKKyAgICAg
ICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHNlbmRVcGRh
dGUoU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIs
IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVk
aW9DYXB0dXJlLCBzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSB9KSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIsIHNv
dXJjZU9yRXJyb3Iuc291cmNlKCkpOworICAgIHJldHVybjsKKyNlbmRpZgorCiAgICAgbV9yZWNv
Z25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggYTdmNzZkMzhlZTUw
MWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNy4uYzI5YzNhNzI0N2U4ZTFmNDIyMmRjZGIwZGNj
NmQxNTcwMGI0MGVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5oCkBAIC01Nyw2ICs1NywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBh
Ym9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
KTsKICAgICB2b2lkIGludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVz
aW5nIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFJlZlB0cjxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPihjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
Jik+OworICAgIHZvaWQgc2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1bmN0aW9uKSB7IG1fcmVhbHRpbWVNZWRp
YVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbik7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwogICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKQEAgLTc1LDYg
KzgwLDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAgICBTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1f
cmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IGU3ZDljZGZlNTUzNWMyN2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLjExYmUw
MWIxN2VjZjcyYzBiZmJmNTVkNDk1NjUxYTkxZDc2YzBhZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUg
IlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJUZXh0
Q2hlY2tlci5oIgpAQCAtMTcwMiw4ICsxNzA1LDggQEAgUEFMOjpTZXNzaW9uSUQgV2ViUHJvY2Vz
c1Byb3h5OjpzZXNzaW9uSUQoKSBjb25zdAogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRl
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpOwotICAgIEFT
U0VSVChzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pc05ld0VudHJ5KTsKKyAgICBBU1NFUlQoIW1f
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1
dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1h
cC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogICAgIFdlYlBhZ2VQ
cm94eSogdGFyZ2V0UGFnZSA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMo
KSkgewogICAgICAgICBpZiAocGFnZSAmJiBwYWdlLT53ZWJQYWdlSUQoKSA9PSBpZGVudGlmaWVy
KSB7CkBAIC0xNzE1LDcgKzE3MTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogICAgIGlm
ICghdGFyZ2V0UGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdl
YWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVy
KSBtdXRhYmxlIHsKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1ha2VVbmlxdWU8U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIs
IFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXShhdXRvJiBvcmlnaW4sIGF1dG8m
JiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1BhZ2UpIHsK
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkRlY2lzaW9uOjpEZW55KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3MjMsNyArMTcyNiwy
MiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudAogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogICAgIH0pOwotICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNw
ZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOworCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzcGVlY2hSZWNv
Z25pdGlvblNlcnZlci0+c2V0UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRh
cmdldFBhZ2UpXShhdXRvJiBkZXZpY2UpIC0+IFJlZlB0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlPiB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgICAgICBpZiAoIXdlYWtQYWdlIHx8IHdlYWtQYWdlLT5wcmVmZXJlbmNlcygp
LmNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgICAgIGF1dG8mIHNvdXJjZU1hbmFnZXIgPSBlbnN1cmVSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcigpOworICAgICAgICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzIGNvbnN0cmFpbnRzOworICAgICAgICBjb25zdHJhaW50cy5pc1ZhbGlkID0gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShzb3VyY2VNYW5h
Z2VyLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCAiU3Bl
ZWNoUmVjb2duaXRpb24iKTsKKyAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVySWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTczMyw2ICsxNzUxLDIwIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJJZGVuCiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5yZW1vdmUo
aWRlbnRpZmllcik7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzc1Byb3h5OjplbnN1cmVSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKSB7CisgICAgICAgIG1fcmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihjb25u
ZWN0aW9uKCkpOworICAgICAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICptX3JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKm1fcmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisKKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oV0FUQ0hPUykKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2
aXR5Rm9yRnVsbHNjcmVlbklucHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKaW5kZXggYzEwYjM5NDhkNzc2NzYzNzE0ZDE2NDc5YjU5MzYyODJhNjk3MzNkYS4u
ZTExYzdiMThiOGU4ODZlZDMyOTcyMGRkMGY3NTRkODg1ZjRiODY4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgc3RydWN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsK
IHN0cnVjdCBXZWJzaXRlRGF0YTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBlbnVtIEZvcmVncm91
bmRXZWJQcm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBSZWZDb3VudGVyPEZvcmVncm91
bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlcjsKIHR5
cGVkZWYgRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBGb3JlZ3JvdW5kV2ViUHJv
Y2Vzc1Rva2VuOwpAQCAtNTA1LDYgKzUwOSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0
ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmll
cik7CiAgICAgdm9pZCBkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcigpOworI2VuZGlmCiAKICAgICB2b2lkIHN5c3RlbUJlZXAoKTsKICAgICAK
QEAgLTY0Myw2ICs2NTAsOSBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciwg
c3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPj47CiAgICAgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcDsKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcj4gbV9yZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MDM3MDQwNGU0OWE3OGQ4YWJlNzMyMmE3
OGVjOTJmYzFjMGJhMGEyLi5kYTA3ZjBmZGEyOWYyZmI3M2FlOTZlMzVkZmNjZDU0ZTE3OGJhYTQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE0MDQsNiArMTQwNCwxNSBAQAogCQk5MTk3OTQwODIzREJDNENCMDAyNTc4OTIgLyogV2Vi
UGFnZUluc3BlY3RvckFnZW50QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTE5Nzk0MDcyM0RCQzRDQTAwMjU3ODkyIC8qIFdlYlBhZ2VJbnNwZWN0
b3JBZ2VudEJhc2UuaCAqLzsgfTsKIAkJOTE5Nzk0MEEyM0RCQzRFMDAwMjU3ODkyIC8qIEFQSUlu
c3BlY3RvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTE5Nzk0MDkyM0RCQzRFMDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5oICov
OyB9OwogCQk5MTk3OTQwQzIzREJDNTAzMDAyNTc4OTIgLyogX1dLSW5zcGVjdG9yRGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5NDBC
MjNEQkM1MDMwMDI1Nzg5MiAvKiBfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzMDAzRUZGMjU3OENENjEwMEYy
QTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0VGODI1NzhDNEUzMDBGMkEzREEgLyogUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OworCQk5MzAwM0YwMDI1NzhDRDY1MDBGMkEz
REEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRUZBMjU3OEM0RTQwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5MzAwM0YwMTI1
NzhDRDY3MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRUZDMjU3OENDNDkwMEYy
QTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5MzAwM0YwRTI1
NzhEQTM4MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNG
MEMyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZXMuaCAqLzsgfTsKKwkJOTMwMDNGMEYyNTc4REIwNjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRjA3MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTkzMDAz
RjEwMjU3OERCMDgwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0Yw
OTI1NzhEOThDMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
ICovOyB9OworCQk5MzAwM0YxMTI1NzhEQjBBMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzMDAzRjA2MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OworCQk5MzAwM0YxMjI1NzhEQjBD
MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMw
MDNGMEIyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTMwMDNGMTMyNTc4REIxMjAwRjJBM0RBIC8q
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwRDI1NzhEOUVF
MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCAqLzsgfTsKIAkJOTMyMUQ1ODYxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMyMUQ1ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5oICovOyB9OwogCQk5MzIxRDU4QTFBMzhGMTk2MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVB
Y3Rpb25UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMyMUQ1ODkxQTM4RjE5NjAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzIzNjEx
RTFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIzNjExRDFCMDE1REE4MDBG
QTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM1NjYsOCArMzU3NSw2IEBACiAJCTQxNjg0
QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2ODRDNEUyNDY0M0M4
MTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzRGMjQ2NDNEM0YwMDFDRThFRCAvKiBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQxNjg0QzUwMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTY4
NEM1MTI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkNENzQ1MjNGQjE3OEIwMDY2MUQ5OSAv
KiBNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IE1ETlNSZWdpc3RlcklkZW50aWZpZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL01ETlNS
ZWdpc3RlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2Rjgw
ODYyNDVCMzk3NDAwQjY4RjAyIC8qIExpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gTGliV2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbjsgcGF0aCA9IE5l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNkY4MDg5MjQ1QzdGRjUwMEI2OEYwMiAvKiBMaWJXZWJSVENOZXR3
b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpYldlYlJUQ05l
dHdvcmsuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NTYwLDYgKzQ1NjcsMjAgQEAKIAkJOTE5Nzk0
MDcyM0RCQzRDQTAwMjU3ODkyIC8qIFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZUluc3BlY3RvckFnZW50QmFzZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTk3OTQwOTIzREJDNEUwMDAyNTc4OTIgLyog
QVBJSW5zcGVjdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQ
SUluc3BlY3RvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTk3OTQw
QjIzREJDNTAzMDAyNTc4OTIgLyogX1dLSW5zcGVjdG9yRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRjcyNTc4QzRFMzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRjgyNTc4QzRFMzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAw
M0VGOTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRkEyNTc4QzRFNDAw
RjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUZCMjU3OEM0RTQwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRkMyNTc4Q0M0OTAwRjJBM0RB
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzMDAzRUZEMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTMwMDNFRkUyNTc4Q0M0QTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMDYy
NTc4RDk4QjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzMDAzRjA3MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjA5MjU3OEQ5OEMwMEYyQTNEQSAvKiBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMEIyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMEMyNTc4
RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAw
M0YwRDI1NzhEOUVFMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTMyMUQ1ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0lt
bWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTMyMUQ1ODcxQTM4RUU3NDAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMyMUQ1ODkx
QTM4RjE5NjAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjI1Myw2ICs2Mjc0LDcgQEAKIAkJCQk1MTVCRTFBRTFENTkw
MDM0MDBERDdDNjggLyogR2FtZXBhZCAqLywKIAkJCQkyREE5NDQ5NjE4ODRFNERBMDBFRDg2REIg
LyogaW9zICovLAogCQkJCUJDMTExQjVBMTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCisJCQkJ
OTMwMDNFRjYyNTc4QzQ1MDAwRjJBM0RBIC8qIG1lZGlhICovLAogCQkJCTFBQUUwNThDMTI3OURD
RDQwMDg1MjQxOCAvKiBQbHVnaW5zICovLAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJCMjVFRCAv
KiBSZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJMUFCRjQzNzgxQTM2ODAzNTAwM0ZCMEU2IC8qIFdl
YnNpdGVEYXRhICovLApAQCAtODc5NCw4ICs4ODE2LDYgQEAKIAkJCQk0MTY4NEM0RjI0NjQzRDNG
MDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwICovLAogCQkJCTQxNjg0
QzRFMjQ2NDNDODEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oICovLAog
CQkJCTQxNjg0QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLywKLQkJCQk0MTY4NEM1MDI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCi0JCQkJNDE2ODRDNTEyNDY0NTBGRDAwMUNFOEVE
IC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLywKIAkJCQlDRDQ5MUIwNTFFNzBEMDVG
MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovLAogCQkJCUNENDkxQjA2
MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICovLAogCQkJCUNE
NDkxQjBBMUU3MzJEMTIwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdl
cy5pbiAqLywKQEAgLTg5NjAsNiArODk4MCwyMSBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTkzMDAzRUY2MjU3OEM0NTAwMEYyQTNEQSAvKiBt
ZWRpYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTMw
MDNFRkUyNTc4Q0M0QTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAq
LywKKwkJCQk5MzAwM0VGQzI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLywKKwkJCQk5MzAwM0VGRDI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJOTMwMDNFRjkyNTc4QzRFNDAwRjJB
M0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCTkzMDAzRUY4MjU3
OEM0RTMwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8sCisJCQkJOTMw
MDNFRjcyNTc4QzRFMzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcCAqLywKKwkJCQk5MzAwM0VGQTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5MzAwM0VGQjI1NzhDNEU0MDBGMkEzREEgLyog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOwor
CQkJcGF0aCA9IG1lZGlhOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTM5
Mjg4RTAyMTQwNERGMDAwRUJCQTMzIC8qIEluZGV4ZWREQiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xMDQ4MSw2ICsxMDUxNiw5IEBACiAJCQkJMUEwNDNC
NUMxMjRENUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJ
CQkJMUE4RUZBNkUxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQkxQThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNz
YWdlcy5oICovLAorCQkJCTkzMDAzRjA3MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTMwMDNGMDkyNTc4RDk4
QzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJ
CQk5MzAwM0YwNjI1NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQlDREQ1MzU3NjI0MERERTA3MDBGN0I4QzQgLyogUmVt
b3RlQXVkaW9TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREQ1MzU3NTI0MERE
RTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCAqLywKIAkJCQlDREQ1
MzU3NDI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVz
LmggKi8sCkBAIC0xMDUzNCw2ICsxMDU3Miw5IEBACiAJCQkJMUREMkE2NjEyNTYxMjJGMTAwRkY3
QjZGIC8qIFJlbW90ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkx
QUMxMzM4MzE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTFBQzEzMzg0MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmpl
Y3RSZWdpc3RyeU1lc3NhZ2VzLmggKi8sCisJCQkJOTMwMDNGMEIyNTc4RDlFRDAwRjJBM0RBIC8q
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
KwkJCQk5MzAwM0YwQzI1NzhEOUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzMDAzRjBEMjU3OEQ5RUUwMEYyQTNEQSAvKiBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJ
CTBGNTk0N0E1MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMEY1OTQ3QTYxODdCNTE3NjAwNDM3ODU3IC8qIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCAqLywKIAkJCQkxREQyQTY2QjI1NjIw
MjFFMDBGRjdCNkYgLyogUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLApAQCAtMTE1MjksNiArMTE1NzAsOSBAQAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZB
NiAvKiBRdWFyYW50aW5lU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBDMjI3RTI0NTExMzBB
MDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBRUU1NzI1MjQwOUYxNDIwMDIwMDVENiAvKiBRdWlja0xvb2tUaHVtYm5haWxMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRjAxMjU3OENENjcwMEYyQTNEQSAvKiBSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNGMTAyNTc4
REIwODAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzMDAzRjExMjU3OERCMEEwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdGRDMx
ODIyMkIzNTE1RTAwOEQwRThCIC8qIFJlZGlyZWN0U09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjEyMjlDRDIzRkYy
NUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTE1NjksNiArMTE2MTMsMTAgQEAKIAkJCQkxQTU3MDRGQzFCRTE3NTExMDA4NzRB
RjEgLyogUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMz
ODAxODU5MEFFNDAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUMxMzM4NjE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNFRkYyNTc4Q0Q2MTAwRjJBM0RBIC8q
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRjAw
MjU3OENENjUwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTMwMDNGMEUyNTc4REEzODAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAz
RjEzMjU3OERCMTIwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OTAxODdCM0IzQTAwNDM3
ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjU5NDdBODE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OUIxODdCM0I2MDAwNDM3ODU3IC8qIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLApAQCAtMTMzNTks
NiArMTM0MDcsNyBAQAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1
bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyN0YyNDUxMTMwQTAwRUQ2MTREIC8q
IFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEw
QzIyNUUyNDM1NzVDRDAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTkzMDAzRjBGMjU3OERCMDYwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QjEy
MjlDRTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUQwMzY5QUUyNTY3OTZCOTAwNDQwMzcyIC8qIFJlbW90ZUF1
ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkYy
NEEyRDE4NzlFNEJDMDAzQUJGMEQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMzM4MCw2ICsxMzQyOSw3IEBACiAJCQkJ
MUQ0RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJBNjYzMjU2MTI0NkYwMEZG
N0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdp
c3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzAwM0YxMjI1NzhE
QjBDMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1OTQ3QTcxODdCNTE3NjAwNDM3ODU3IC8q
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFERDJBNjZFMjU2MjAyMUUwMEZGN0I2RiAvKiBSZW1vdGVTb3VyY2VCdWZmZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDAzNjlBQzI1Njc5
Njk5MDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uY3BwCmluZGV4IDNmMzUzMTk0YTMyYzNlNjc5YmNhMjlmYmVhODUwMzFjOTIxZTRmYzQuLmNm
MjgzZWQzNWI1ZjAxM2E3NmJjZTk5ZmM3OWMyNWM1MDJjZGVkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCkBAIC00Niw2ICs0NiwxMCBAQCBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbihTcGVlY2hSZWNvZ25pdGlvbgogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFk
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOwogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
bV9pZGVudGlmaWVyKSwgMCk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7Cisj
ZW5kaWYKIH0KIAogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCBmMmYyMjgyMmM3YjIyM2ZjYTU5Zjk1NTczZDExZGM5OWIxMDM0ODExLi5hMzk0NTI0
OGYzNmQzNDcwNTY1ZTEyYjNhNmU2NDMxNzI1OGJiYzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW5jbHVkZSAi
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Np
b24uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiU3Rv
cmFnZUFyZWFNYXAuaCIKQEAgLTE5NjksNiArMTk3MCwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmVu
YWJsZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CitSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzczo6ZW5zdXJlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICghbV9yZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcikKKyAgICAgICAgbV9yZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+KCk7CisKKyAgICByZXR1cm4gKm1fcmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICN1bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9OX0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAppbmRleCBlOWM0N2RiNGM0NDdjMGY0YWI2MjdjMDk0YjVmNjhkYjU2NWE5YTZjLi5h
MDQxNTUyZDExOTkxNGM5Y2YyNGZmNGM5MTM5Yjg0ODYwODY1ODc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE0Miw2ICsxNDIsMTAgQEAgc3RydWN0IFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKICNlbmRpZgog
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOworI2VuZGlmCisKIGNsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vz
cwogewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMzYwLDYgKzM2NCwxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkaWRXcml0ZVRvUGFzdGVib2FyZEFzeW5jaHJvbm91c2x5KGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwog
ICAgIH5XZWJQcm9jZXNzKCk7CkBAIC02OTMsNiArNzAxLDEwIEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3ZwOURlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fdnA5U1dEZWNvZGVy
RW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3JlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCmluZGV4IDViM2U3MDBlMDk1OGUyZmJkNTY5MTc4MDQy
NzFkZWRjOTRmYzVlNDkuLjUzMWVkOTkwZDhiZDdkMmQ3YzY2ZTE1OTVhODk4NTA4ZDhiNTNkNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKQogICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlh
bCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCkBAIC02MywxMyArNjIsMTMgQEAg
dm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6c2V0Q29ubmVjdGlvbihJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24pCiB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphZGRT
b3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogewogICAgIEFT
U0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7Ci0gICAgc2V0Q29ubmVjdGlvbihzb3VyY2UtPmNv
bm5lY3Rpb24oKSk7CisgICAgc2V0Q29ubmVjdGlvbihSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
Ojpjb25uZWN0aW9uKHNvdXJjZS0+c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpKSk7CiAKICAg
ICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBzb3VyY2UgPSBXVEZNb3ZlKHNvdXJjZSldKCkgbXV0
YWJsZSB7CiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS0+aWRlbnRpZmllcigpOwog
CiAgICAgICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICAg
ICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlbW90ZUF1ZGlvPihXVEZN
b3ZlKHNvdXJjZSkpKTsKKyAgICAgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBXVEZNb3Zl
KHNvdXJjZSkpOwogICAgIH0pOwogfQogCkBAIC0xMDgsNTcgKzEwNyw3IEBAIHZvaWQgUmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIlVuYWJsZSB0
byBmaW5kIHNvdXJjZSAlbGx1IGZvciBhdWRpb1NhbXBsZXNBdmFpbGFibGUiLCBpZGVudGlmaWVy
LnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGl0ZXJhdG9yLT52YWx1
ZS0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1l
LCBlbmRGcmFtZSk7Ci19Ci0KLVJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRp
bzo6UmVtb3RlQXVkaW8oUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQot
ICAgIDogbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQotICAgICwgbV9yaW5nQnVmZmVyKG1ha2VV
bmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
PihudWxscHRyKSkpCi17Ci19Ci0KLXZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJl
bW90ZUF1ZGlvOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUs
IGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzKQotewotICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlv
bjsKLQotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1lbW9yeTsKLSAgICBpZiAoIWhhbmRsZS5p
c051bGwoKSkgewotICAgICAgICBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwotICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRighbWVtb3J5LCBXZWJSVEMsICJVbmFibGUgdG8gY3JlYXRlIHNoYXJlZCBtZW1vcnkg
Zm9yIGF1ZGlvIHNvdXJjZSAlbGx1IiwgbV9zb3VyY2UtPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgp
KTsKLSAgICB9Ci0KLSAgICBhdXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7Ci0gICAgaWYgKCFtZW1vcnkp
IHsKLSAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7Ci0gICAgICAgIHN0b3JhZ2Uu
c2V0UmVhZE9ubHkoZmFsc2UpOwotICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5
LnJlbGVhc2VOb25OdWxsKCkpOwotICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7Ci0gICAg
bV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwotICAg
IG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7Ci19Ci0KLXZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJl
bW90ZUF1ZGlvOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkK
LXsKLSAgICBpZiAoIW1fYnVmZmVyKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJU
QywgImJ1ZmZlciBmb3IgYXVkaW8gc291cmNlICVsbHUgaXMgbnVsbCIsIG1fc291cmNlLT5pZGVu
dGlmaWVyKCkudG9VSW50NjQoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
IVdlYkF1ZGlvQnVmZmVyTGlzdDo6aXNTdXBwb3J0ZWREZXNjcmlwdGlvbihtX2Rlc2NyaXB0aW9u
LCBudW1iZXJPZkZyYW1lcykpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAi
VW5hYmxlIHRvIHN1cHBvcnQgZGVzY3JpcHRpb24gd2l0aCBnaXZlbiBudW1iZXIgb2YgZnJhbWVz
IGZvciBhdWRpbyBzb3VyY2UgJWxsdSIsIG1fc291cmNlLT5pZGVudGlmaWVyKCkudG9VSW50NjQo
KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291
bnQobnVtYmVyT2ZGcmFtZXMpOwotCi0gICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVC
b3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwotICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9i
dWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOwotCi0gICAg
bV9zb3VyY2UtPnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9idWZmZXIsIG1f
ZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBpdGVyYXRvci0+dmFsdWUtPnJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwg
ZW5kRnJhbWUpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCmluZGV4IDZmYjRiYzM3Yjkz
ODAxNmZjZTVjNWM1YWM1YTQzNzAyN2YxODZiZTQuLmI0YmRmZWNkNTI4M2Q5Yzc3MTk3NmMwM2Zl
ZmI2ZWMzMzkxNTc1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCkBAIC02MCwyNiArNjAsMTEg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsK
IAotICAgIGNsYXNzIFJlbW90ZUF1ZGlvIHsKLSAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7Ci0gICAgcHVibGljOgotICAgICAgICBleHBsaWNpdCBSZW1vdGVBdWRpbyhSZWY8UmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7Ci0KLSAgICAgICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0
IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOwotICAgICAgICB2b2lkIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7Ci0KLSAgICBwcml2YXRlOgotICAgICAg
ICBSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7Ci0gICAgICAgIFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOwotICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7Ci0gICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOwot
ICAgIH07Ci0KICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogICAgIFJlZlB0cjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAogICAgIC8vIGJhY2tncm91bmQgdGhyZWFkIG1lbWJl
cgotICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpbz4+IG1fc291cmNlczsKKyAgICBIYXNoTWFwPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBSZWY8UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZT4+IG1fc291cmNlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZjljMmFhZDA5
MTk2MmUzNTk2ZWY4OTNiMzU5YzFkMWQ2ODRhZTM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMxMCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCIKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotCi0jaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgotI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgotI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNs
dWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhQ29uc3RyYWludHMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3Bh
Y2UgUEFMOwotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi17Ci0g
ICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZS50eXBlKCks
IFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKSk7Ci0gICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7
Ci0gICAgc291cmNlLT5jb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKHNvdXJjZS0+aWRlbnRpZmllcigpLCBkZXZpY2UsIHNvdXJj
ZS0+ZGV2aWNlSURIYXNoU2FsdCgpLCBjb25zdHJhaW50cyksIFtzb3VyY2UgPSBzb3VyY2UuY29w
eVJlZigpXShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRp
bmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIGlmICghc3VjY2VlZGVkKSB7Ci0g
ICAgICAgICAgICBzb3VyY2UtPmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBzb3VyY2UtPnNldE5hbWUoU3RyaW5n
IHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKLSAgICAgICAgc291cmNlLT5zZXRTZXR0
aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7Ci0gICAgICAgIHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVz
KFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7Ci0gICAgICAgIHNvdXJjZS0+c2V0QXNSZWFkeSgpOwot
ICAgIH0pOwotICAgIHJldHVybiBzb3VyY2U7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlRnJvbURldmljZVR5cGUoQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZSBkZXZpY2VUeXBlKQotewotICAgIHN3aXRjaCAoZGV2aWNlVHlwZSkgewotICAg
IGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSAgICAgICAgcmV0
dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOwotICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6U2NyZWVuOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93
OgotICAgICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87Ci0gICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgotICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgfQotICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOwot
fQotCi1SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUgZGV2aWNlVHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZVR5cGVGcm9tRGV2aWNl
VHlwZShkZXZpY2VUeXBlKSwgV1RGTW92ZShuYW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmll
ci50b1VJbnQ2NCgpKSwgV1RGTW92ZShoYXNoU2FsdCkpCi0gICAgLCBtX2lkZW50aWZpZXIoaWRl
bnRpZmllcikKLSAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQotICAgICwgbV9kZXZpY2VUeXBlKGRl
dmljZVR5cGUpCi0gICAgLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcykKLXsKLSAgICBzd2l0Y2ggKG1fZGV2aWNlVHlwZSkgewotICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToK
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0
aGlzKTsKLSNlbmRpZgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OlNjcmVlbjoKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Oldp
bmRvdzoKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpTcGVha2VyOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotfQotCi1SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjp+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpCi17Ci0gICAgc3dpdGNo
IChtX2RldmljZVR5cGUpIHsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmU6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0
aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1
cmVGYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgotICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6Ci0gICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICB9Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJl
YWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKLXsKLSAgICBp
ZiAobV9pc1JlYWR5KQotICAgICAgICByZXR1cm4gY2FsbGJhY2soV1RGTW92ZShtX2Vycm9yTWVz
c2FnZSkpOwotICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKLX0KLQotdm9pZCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSkK
LXsKLSAgICBtX2lzUmVhZHkgPSB0cnVlOwotICAgIG1fZXJyb3JNZXNzYWdlID0gV1RGTW92ZShl
cnJvck1lc3NhZ2UpOwotICAgIGlmIChtX2NhbGxiYWNrKQotICAgICAgICBtX2NhbGxiYWNrKG1f
ZXJyb3JNZXNzYWdlKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRB
c1JlYWR5KCkKLXsKLSAgICBtX2lzUmVhZHkgPSB0cnVlOwotICAgIGlmIChtX2NhbGxiYWNrKQot
ICAgICAgICBtX2NhbGxiYWNrKHsgfSk7Ci19Ci0KLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZSgpCi17Ci0gICAgc3dpdGNoICh0eXBlKCkp
IHsKLSAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgotICAgICAgICBy
ZXR1cm4gY2xvbmVWaWRlb1NvdXJjZSgpOwotICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW86Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6Tm9uZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotICAg
IHJldHVybiAqdGhpczsKLX0KLQotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2UoKQotewotICAgIGF1dG8gaWRlbnRpZmll
ciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGlmICgh
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpDbG9uZSB7IG1faWRlbnRpZmllciwgaWRlbnRpZmllciB9LCAwKSkKLSAgICAgICAgcmV0dXJu
ICp0aGlzOwotCi0gICAgYXV0byBjbG9uZVNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZShpZGVudGlmaWVyLCBkZXZpY2VUeXBlKCksIFN0cmluZyB7IG1fc2V0
dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9LCBkZXZpY2VJREhhc2hTYWx0KCksIG1fbWFuYWdlciwg
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7Ci0gICAgY2xvbmVTb3VyY2UtPnNldFNldHRp
bmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7IG1fc2V0dGluZ3MgfSk7Ci0gICAgbV9t
YW5hZ2VyLmFkZFNvdXJjZShjbG9uZVNvdXJjZS5jb3B5UmVmKCkpOwotICAgIHJldHVybiBjbG9u
ZVNvdXJjZTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRDYXBhYmls
aXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKLXsK
LSAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKLX0KLQotdm9pZCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmJiBzZXR0aW5ncykKLXsKLSAgICBhdXRvIGNoYW5nZWQgPSBtX3NldHRpbmdzLmRp
ZmZlcmVuY2Uoc2V0dGluZ3MpOwotICAgIG1fc2V0dGluZ3MgPSBXVEZNb3ZlKHNldHRpbmdzKTsK
LSAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2VydmVycyhjaGFuZ2VkKTsKLX0KLQotdm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUo
Y29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNpemUp
Ci17Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgYXVkaW9TYW1wbGVzQXZhaWxh
YmxlKHRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBzaXplKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShSZW1vdGVWaWRlb1Nh
bXBsZSYmIHJlbW90ZVNhbXBsZSkKLXsKLSAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVv
KTsKLQotICAgIHNldEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxlLnNpemUoKSk7Ci0KLSAgICBp
ZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4
ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKLSAgICAgICAgbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVT
YW1wbGUudmlkZW9Gb3JtYXQoKSk7Ci0KLSAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24p
IHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1l
ZGlhU2FtcGxlKHJlbW90ZVNhbXBsZSk7Ci0gICAgaWYgKCFzYW1wbGVSZWYpIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSZWFs
dGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVmKTsKLX0KLQot
SVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjb25uZWN0aW9uKCkK
LXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
LSAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgICAgICByZXR1cm4gJldl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpOwotI2VuZGlmCi0gICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKLXsKLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0YXJ0UHJvZHVjaW5nRGF0YSB7IG1f
aWRlbnRpZmllciB9LCAwKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpz
dG9wUHJvZHVjaW5nRGF0YSgpCi17Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVjaW5nRGF0YSB7IG1faWRlbnRp
ZmllciB9LCAwKTsKLX0KLQotYm9vbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91
bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKLXsKLSAgICBjb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNo
b3VsZEFwcGx5Um90YXRpb24geyBtX2lkZW50aWZpZXIsIHNob3VsZEFwcGx5Um90YXRpb24gfSwg
MCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcGFiaWxpdGll
cygpCi17Ci0gICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOwotfQotCi12b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyYgY29uc3RyYWludHMsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlv
bkhhbmRsZXIpCi17Ci0gICAgbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy5hcHBl
bmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIC8vIEZJWE1FOiBVc2Ugc2VuZEFz
eW5jV2l0aFJlcGx5LgotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25zdHJhaW50cyB7IG1faWRlbnRpZmllciwgY29u
c3RyYWludHMgfSwgMCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBw
bHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmIHNldHRpbmdzKQotewotICAgIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyhzZXR0aW5ncykpOwotCi0gICAgYXV0byBjYWxsYmFjayA9IG1f
cGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7Ci0gICAgY2FsbGJh
Y2soeyB9KTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0
cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVz
c2FnZSkKLXsKLSAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0Nh
bGxiYWNrcy50YWtlRmlyc3QoKTsKLSAgICBjYWxsYmFjayhBcHBseUNvbnN0cmFpbnRzRXJyb3Ig
eyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkgfSk7Ci19
Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6aGFzRW5kZWQoKQotewotICAgIGNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
RW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOwotICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UobV9p
ZGVudGlmaWVyKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJl
U3RvcHBlZCgpCi17Ci0gICAgc3RvcCgpOwotICAgIGhhc0VuZGVkKCk7Ci19Ci0KLXZvaWQgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCi17Ci0gICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpOwotICAgIGhhc0VuZGVkKCk7Ci19Ci0KLXZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQotewotICAgIGNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
UmVxdWVzdFRvRW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChPYnNlcnZlciYgb2JzZXJ2ZXIpCi17Ci0gICAg
c3dpdGNoICh0eXBlKCkpIHsKLSAgICBjYXNlIFR5cGU6OkF1ZGlvOgotICAgICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQob2JzZXJ2ZXIpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFR5cGU6OlZpZGVvOgotICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFR5cGU6Ok5vbmU6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIH0KLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzg5MGJlYjFiMDMxM2Q0ZTIzMDI5NTI5ZjUxZDExMTcw
ZTliNWI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgK
KysrIC9kZXYvbnVsbApAQCAtMSwxMTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNs
dWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+Ci0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0KLW5hbWVzcGFjZSBJUEMgewotY2xh
c3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uOwotY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKLXN0cnVjdCBN
ZWRpYUNvbnN0cmFpbnRzOwotY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Ci19Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1jbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjsKLQotY2xhc3MgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyYsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9IGZh
bHNlKTsKLSAgICB+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOwotCi0gICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQotICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpOwotCi0g
ICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mm
Jik7Ci0KLSAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7Ci0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRz
RmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSk7
Ci0KLSAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKCk7Ci0gICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkg
ZmluYWw7Ci0KLSAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJl
bW90ZVZpZGVvU2FtcGxlJiYpOwotICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEm
LCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKLQotcHJp
dmF0ZToKLSAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIm
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwotCi0gICAgLy8gUmVhbHRpbWVNZWRp
YVNvdXJjZQotICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7Ci0gICAgdm9pZCBz
dG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwotICAgIGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkg
ZmluYWwgeyB9Ci0gICAgdm9pZCBjb21taXRDb25maWd1cmF0aW9uKCkgZmluYWwgeyB9Ci0gICAg
Ym9vbCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgLyogc2hvdWxkQXBwbHlSb3RhdGlvbiAq
LykgZmluYWw7Ci0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKLSAgICB2b2lk
IHJlcXVlc3RUb0VuZChPYnNlcnZlciYpIGZpbmFsOwotICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2
ZWQoKSBmaW5hbDsKLSAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7Ci0gICAgY29uc3QgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJu
IG1fc2V0dGluZ3M7IH0KLSAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKLSAgICB2b2lkIHdoZW5SZWFkeShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOwotICAgIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
ZGV2aWNlVHlwZTsgfQotICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFs
OwotCi0gICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSk7Ci0gICAgdm9pZCBz
ZXRBc1JlYWR5KCk7Ci0gICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKTsKLSAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4g
Y2xvbmVWaWRlb1NvdXJjZSgpOwotCi0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21h
bmFnZXI7Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2Nh
cGFiaWxpdGllczsKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9z
ZXR0aW5nczsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwotICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGUgbV9kZXZpY2VUeXBlIHsgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6VW5rbm93biB9OwotCi0gICAgRGVxdWU8QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+
IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7Ci0gICAgYm9vbCBtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2Ug
fTsKLSAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7Ci0gICAgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcpPiBtX2NhbGxiYWNrOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggMDgzZjgyOWFmNzVhZTk5ZjZjMjhjZDY3MGI5
MGE2Njc3ODlmMzdlMy4uOWNkMjg5N2EwZTAwYTY2YjhiNTk0YjM2YjE0YTJhYjgyNjI0MTUwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgi
CiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgpAQCAtNDQsNyArNDUsOCBAQCB1c2lu
ZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9jZXNzJiBwcm9jZXNz
KQotICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCisgICAgOiBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcihudWxscHRyLCBmYWxzZSkKKyAgICAsIG1fcHJvY2Vzcyhwcm9jZXNzKQogICAg
ICwgbV9hdWRpb0ZhY3RvcnkoKnRoaXMpCiAgICAgLCBtX3ZpZGVvRmFjdG9yeSgqdGhpcykKICAg
ICAsIG1fZGlzcGxheUZhY3RvcnkoKnRoaXMpCkBAIC0xMDMsMTMgKzEwNSwxMyBAQCB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWQpCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVk
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogewogICAgIGlmIChhdXRvIHNvdXJj
ZSA9IG1fc291cmNlcy5nZXQoaWQpKQotICAgICAgICBzb3VyY2UtPmNhcHR1cmVTdG9wcGVkKCk7
CisgICAgICAgIHNvdXJjZS0+cmVtb3RlU291cmNlU3RvcHBlZCgpOwogfQogCiB2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpjYXB0dXJlRmFpbGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkKQogewogICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWQpKQot
ICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgc291cmNlLT5yZW1vdGVD
YXB0dXJlRmFpbGVkKCk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJj
ZU11dGVkQ2hhbmdlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRl
ZCkKQEAgLTE1OCw3ICsxNjAsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTbwogICAgICAgICBE
ZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVn
b3J5KHRydWUpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBt
X21hbmFnZXIpOworICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUo
bV9tYW5hZ2VyLCBkZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSk7
CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6c2V0U2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhib29sIHZhbHVlKQpAQCAtMTc2LDcgKzE3OCw3IEBAIENh
cHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6
OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJv
ciB7ICJWaWRlbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgaXMgbm90IGltcGxlbWVudGVkIl9zIH07
CiAjZW5kaWYKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUo
ZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlcik7
CisgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShtX21hbmFnZXIs
IGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpKTsKIH0KIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTEsNyArMTkzLDczIEBAIENhcHR1cmVTb3VyY2VP
ckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlz
cGxheUNhcHR1CiAgICAgaWYgKCFjb25zdHJhaW50cykKICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29u
c3RyYWludHMsIHsgfSwgeyB9LCBtX21hbmFnZXIpOworICAgIHJldHVybiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjcmVhdGUobV9tYW5hZ2VyLCBkZXZpY2UsICpjb25zdHJhaW50cywgeyB9
LCB7IH0pOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpj
b25uZWN0aW9uQnlJZGVudGlmaWVyKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChp
ZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNv
bm5lY3Rpb24oc291cmNlLT5zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkpOworCisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OndoZW5Tb3Vy
Y2VBZGRlZChSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7CisgICAgYWRkU291
cmNlKG1ha2VSZWYoc291cmNlKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OndoZW5Tb3VyY2VFbmRlZChSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7Cisg
ICAgcmVtb3ZlU291cmNlKHNvdXJjZS5pZGVudGlmaWVyKCkpOworfQorCit2b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpzZW5kQWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNh
cHR1cmVEZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJiBjb25zdHJhaW50cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRl
ZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBjb25u
ZWN0aW9uQnlJZGVudGlmaWVyKGlkZW50aWZpZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyB7IGlkZW50aWZp
ZXIsIGNhcHR1cmVEZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyB9LCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OnNlbmRDbG9uZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBvcmlnaW5hbElkZW50aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIG5ld0lkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBjb25uZWN0
aW9uQnlJZGVudGlmaWVyKG9yaWdpbmFsSWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNsb25lIHsgb3Jp
Z2luYWxJZGVudGlmaWVyLCBuZXdJZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpzZW5kUmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24g
PSBjb25uZWN0aW9uQnlJZGVudGlmaWVyKGlkZW50aWZpZXIpKQorICAgICAgICBjb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpFbmQgeyBpZGVu
dGlmaWVyIH0sIDApOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzZW5kU3Rh
cnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IGNvbm5lY3Rpb25CeUlkZW50aWZpZXIoaWRlbnRp
ZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlN0YXJ0UHJvZHVjaW5nRGF0YSB7IGlkZW50aWZpZXIgfSwgMCk7Cit9
CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNlbmRTdG9wKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIGNv
bm5lY3Rpb24gPSBjb25uZWN0aW9uQnlJZGVudGlmaWVyKGlkZW50aWZpZXIpKQorICAgICAgICBj
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpT
dG9wUHJvZHVjaW5nRGF0YSB7IGlkZW50aWZpZXIgfSwgMCk7Cit9CisKK3ZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OnNlbmRTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgc2hvdWxkQXBwbHlSb3Rh
dGlvbikKK3sKKyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IGNvbm5lY3Rpb25CeUlkZW50aWZp
ZXIoaWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRpb24geyBpZGVudGlm
aWVyLCBzaG91bGRBcHBseVJvdGF0aW9uIH0sIDApOworfQorCit2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpzZW5kQXBwbHlDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
JiBjb25zdHJhaW50cykKK3sKKyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IGNvbm5lY3Rpb25C
eUlkZW50aWZpZXIoaWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkFwcGx5Q29uc3RyYWludHMgeyBpZGVu
dGlmaWVyLCBjb25zdHJhaW50cyB9LCAwKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6c2VuZFJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gY29ubmVjdGlv
bkJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6UmVxdWVzdFRvRW5kIHsgaWRlbnRp
ZmllciB9LCAwKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCBiMGIxOTgyOTA1NDIyZGU3
Mjk1NDJhYmIzZWUwOWJjN2UzMzBkMDJkLi42NDExMzQwMDg1MGIyMjUxYzcyY2YxNWZmNGNiYmM5
YzZkYWIxZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlTWFuYWdlci5o
PgpAQCAtNDYsNyArNDcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U7CiBjbGFzcyBXZWJQcm9jZXNzOwogCi1jbGFzcyBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIDogcHVibGljIFdl
YlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MmKTsKQEAgLTEyOCw3ICsxMjksMTkg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3RyaW5nJiYsIFN0cmluZyYmKTsK
IAotICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVvU291cmNl
KFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKyAgICAvLyBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcgorICAgIHZvaWQgd2hlblNvdXJjZUFkZGVkKFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UmKSBmaW5hbDsKKyAgICB2b2lkIHdoZW5Tb3VyY2VFbmRlZChSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlJikgZmluYWw7CisgICAgdm9pZCBzZW5kQWRkU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0
cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJikgZmluYWw7CisgICAgdm9pZCBz
ZW5kQ2xvbmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgb3Jp
Z2luYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBu
ZXdJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIHNlbmRSZW1vdmVTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgc2VuZFN0YXJ0
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lk
IHNlbmRTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKSBmaW5hbDsK
KyAgICB2b2lkIHNlbmRTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pIGZpbmFsOworICAg
IHZvaWQgc2VuZEFwcGx5Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmKSBmaW5hbDsKKyAgICB2
b2lkIHNlbmRSZXF1ZXN0VG9FbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIpIGZpbmFsOworCisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uQnlJZGVudGlmaWVy
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIEhhc2hNYXA8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlZjxSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOwogICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415424</attachid>
            <date>2020-12-04 10:05:29 -0800</date>
            <delta_ts>2020-12-04 10:17:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201204100528.patch</filename>
            <type>text/plain</type>
            <size>149798</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDMzZTNhZjVkNGY3MmUxNDlhYTYyNTBi
Y2M4YmNlODgxODhlNTM5OTEuLjA1MWY0Yjk2ODIwYTFiNmQ5ZjMxY2NiMjYxNTRiNmNkYWJhNzNk
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTItMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUdXJuIG9uIFdl
YlNwZWVjaCBvbiBpT1Mgc2ltdWxhdG9yIGJ5IGRlZmF1bHQgZm9yIHRlc3RpbmcuCisKKyAgICAg
ICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6
CisKIDIwMjAtMTItMDMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkb3B0IEZBTExCQUNLX1BMQVRGT1JNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzdhNGUxNWEzNTlkNTFmNWEz
NmFlYWVjMjk5Zjc1ZGQ2MDQzOTY3My4uYTE2M2MxYTgwYzhiNjA4MzY2MGJkNzU5ODQ2MGY1MTM3
NjQ2MzA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEyLTA0ICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0
dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1lZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpm
aW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBEZWxldGVkLgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDQgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEZsb2F0IHBvc2l0
aW9uaW5nIG5lZWRzIHRvIGhhcHBlbiB3aGlsZSBidWlsZGluZyB0aGUgbGluZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAxOGQ5MDEzMTE1Y2M4NGZmMTI5MmNhYWE2YmVhYTQwNTdkM2EyZjFhLi42ZDEwMmIwMDRhZWIz
Y2Q2MGI1MGI3OTJhM2ZiYTAzZDAwOTRmZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NCBAQAor
MjAyMC0xMi0wNCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgYXVkaW8gY2FwdHVyZSBpcyBkb25lIGluIHdl
YiBwcm9jZXNzLiBGb3Igc3BlZWNoIHJlY29nbml0aW9uLCByZWNvZ25pemVyIGlzIGluIFVJIHBy
b2Nlc3MuIFRoZXJlZm9yZSwKKyAgICAgICAgVUkgcHJvY2VzcyBuZWVkcyB0byBhc2sgd2ViIHBy
b2Nlc3MgdG8gY2FwdHVyZSBhdWRpbyBhbmQgc2VuZCBiYWNrIGRhdGEuIFRvIGltcGxlbWVudCB0
aGlzLCB0aGlzIHBhdGNoIGFkZGVkOgorICAgICAgICAtIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6IHN1YmNsYXNzIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgYW5kIGNvbm5lY3QgdG8g
YSByZW1vdGUgCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgKG93bmVkIGJ5
IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiBhIGRp
ZmZlcmVudCBwcm9jZXNzLgorICAgICAgICAtIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOiBtYW5hZ2UgYWxsIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VzLgorICAgICAgICAtIFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlLgorICAgICAgICAtIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOiBvd24gYW5kIG1vbml0b3IgYSBsb2NhbCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlLgorCisgICAgICAgIE9yaWdpbmFsIFdlYktpdDo6
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSBpcyByZW5hbWVkIHRvIFdlYktpdDo6V2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS4gV2Ugc2hvdWxkCisgICAgICAgIHJlcGxhY2UgV2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZSwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIsIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkgd2l0aAorICAgICAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciwgUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIgbGF0ZXIgdG8gcmVkdWNlIAorICAgICAgICByZWR1bmRhbnQgY29kZS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6flJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnQp
OgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQpOgorICAgICAgICAoV2Vi
S2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBw
bHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXR0aW5ncyBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpjbG9u
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktp
dDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6On5SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cik6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNh
bmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpjbG9uZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2Vi
S2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAg
KiBTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAg
ICAgICogU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
OiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojpzb3VyY2VUeXBlRnJvbURldmljZVR5cGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291
cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OndoZW5SZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnNldEFzUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9u
ZVZpZGVvU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c2V0U2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNob3VsZEFw
cGx5Um90YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0Vu
ZCk6CisgICAgICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50
aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjYXB0dXJlRGV2aWNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y29uc3RyYWludHMgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZUZyb21DbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1v
dGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFw
cGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZCk6CisgICAgICAgICog
U2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgor
ICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291
cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxl
UmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZXRSZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVj
aFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpl
bnN1cmVSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OmVuc3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRl
b0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1
cmVTb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwLgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0Ojpzb3VyY2VU
eXBlRnJvbURldmljZVR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6fldlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp3
aGVuUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3Rl
VmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJv
dGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6aGFzRW5k
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0
dXJlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNhcHR1cmVGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oLgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjppZGVudGlmaWVy
IGNvbnN0KToKKwogMjAyMC0xMi0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBPbmx5IHRoZSBmaXJzdCB3aGVlbCBldmVudCBpbiBhIGdlc3R1cmUg
c2hvdWxkIGJlIGNhbmNlbGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZDRk
YWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJmMi4uNTc5YWE1M2JjOWJkODEwOGRi
ZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAg
LTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6CiAgICAgV2ViS2l0TGVn
YWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJLaXQ6CisgICAgICAiUExBVEZPUk0o
SU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBX
ZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGQ1NDQ4
Mzc4Yjk5NDFjNDcxOTg5MDY2NTBhMzU5NTY1ZTA2MWFiNzUuLmVkYzNjOGZkNzAzMTY4NzE4ZGJj
NzMxMDBmZmU3MjMxNjg0ZDc2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTMyNyw2ICsxMzI3
LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaAogICAgIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAogICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKKyAgICBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgKICAgICBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaAogICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2ZjM4YmM2MjM4ZGExZGJhODY4ZTI5
ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUyZmNkNDNkNzMxMDk3MmYzOGFkZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMzQsOSArMzQsMTAgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxs
YmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2spCi17CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpCit7CiAgICAgT3B0aW9u
YWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAgICBhdXRvIGRldmljZXMgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CiAgICAgZm9yIChh
dXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1MiwxOSBAQCBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0
dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNhcHR1cmVEZXZpY2UpIHsKLSAgICAg
ICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2Fw
dHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBj
YXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAgIGF1dG8gcmVzdWx0ID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOwotICAgIGlm
ICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgcmVzdWx0LmVycm9y
TWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0
YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFD
YWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIFdURk1vdmUoc291cmNlKSk7
Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92
ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgpKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVOVVNFRF9QQVJBTShkYXRhQ2FsbGJh
Y2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNhbGxiYWNrKTsKICNlbmRpZgotfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCmluZGV4
IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5ZjRlMGEuLjY5ZjlhODhiMjYxZTcx
ZjY2ZWMwMGJiOWU3MWRhMGYzYWM4MTk0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5o
CkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CiBjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0g
ZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0
OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rp
b248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKLSAgICBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJik7CisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2sm
JiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+
IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggYmZjNWJlMTAzNGJlM2MxMmQy
Y2FkZWMzZTEyMTk0M2VhYjg5OTMyMy4uMTc2MzFiNmExN2JjYTgzNWEzZDIyNDdlYzMxMTI3NGFi
YjZmZTM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTgw
LDYgKzgwLDcgQEAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6flNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoKQogICAgIG1fc291cmNlLT5zdG9wKCk7CiB9CiAK
Ky8vIE1heSBiZSBjYWxsZWQgb24gbWFpbiB0aHJlYWQgb3IgYmFja2dyb3VuZCB0aHJlYWQuCiB2
b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBs
ZUNvdW50KQogewogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMyOWUy
NjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li5mNjQ5YTc4NjU5ZmUzOWJjZDdlNDIyNTMyYjU1MzJk
OTEwYjkyYjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcApAQCAtNTQsMTUgKzU0LDIyIEBAIHZvaWQgU3BlZWNoUmVjb2duaXpl
cjo6cmVzZXQoKQogCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICByZXNldCgp
OworICAgIC8vIE1ha2Ugc3VyZSBubyBvbmdvaW5nIHJlcXVlc3QuCisgICAgQVNTRVJUKCFtX3Nv
dXJjZSk7CiAKICAgICBtX2NsaWVudElkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIG1fZGVs
ZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpKTsKK30KKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSAgICBzdGFydEludGVybmFsKCk7Cit2b2lkIFNwZWVj
aFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgaWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorewor
ICAgIHN0YXJ0KGlkZW50aWZpZXIpOworICAgIHNldFNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpOwog
fQogCi12b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQordm9pZCBTcGVlY2hS
ZWNvZ25pemVyOjpzZXRTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQog
ewogICAgIGF1dG8gZGF0YUNhbGxiYWNrID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyld
KGNvbnN0IGF1dG8mIHRpbWUsIGNvbnN0IGF1dG8mIGRhdGEsIGNvbnN0IGF1dG8mIGRlc2NyaXB0
aW9uLCBhdXRvIHNhbXBsZUNvdW50KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCkBAIC05MCw5
ICs5NywxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQogICAgICAg
ICAgICAgbV9zb3VyY2UgPSBudWxscHRyOwogICAgIH07CiAKLSAgICBtX3NvdXJjZSA9IG1ha2VV
bmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVy
LCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjaykpOwor
ICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+
KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0
ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShzb3VyY2UpKTsKIH0KIAorI2VuZGlmCisKIHZvaWQg
U3BlZWNoUmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdl
bmVyYXRlRmluYWxSZXN1bHQpCiB7CiAgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKaW5kZXgg
ZTZmMTNmZWU4NGE1MzNhZjBmMDRlMDc2OWMxYWUwOTViZTViZmYzZi4uMzVlYmZlZTQ1NTNmNjI2
OTYwNjgzMWQyYTkyYTBkZTY1Y2ZiYzgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtMzksMTcgKzM5LDIzIEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2Fs
bGJhY2smJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflNwZWVjaFJlY29nbml6ZXIoKSA9IGRlZmF1
bHQ7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
KTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Rh
cnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgUmVmPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYpOworI2VuZGlmCiAgICAgZW51bSBjbGFzcyBTaG91bGRHZW5lcmF0
ZUZpbmFsUmVzdWx0IHsgTm8sIFllcyB9OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcChT
aG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVz
KTsKIAogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJ
ZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCByZXNldCgpOwotICAgIHZvaWQgc3Rh
cnRJbnRlcm5hbCgpOwogICAgIHZvaWQgc3RvcEludGVybmFsKCk7CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorICAgIHZvaWQgc2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYm
KTsKKyNlbmRpZgorCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOwogICAgIERlbGVnYXRlQ2FsbGJhY2sg
bV9kZWxlZ2F0ZUNhbGxiYWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY3MmExNjYwYTVkOWZmODAxM2I2OWFiYmI2
YTNhYWE3OGI5YmUxZjEuLjcxYmJlYzFmODYwYTRiODBmMTUwM2MwMGMzZTZmYTcwZmU5ODg5OGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTIzNjI3LDEzICsyMzYyNyw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OwotCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29j
b2EgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJKTsKLQkJ
CXBhdGggPSBjb2NvYTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTk0NkQz
NzI3MUQ2Q0IyMjUwMDc3MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKApAQCAtMjU2NjQsNyArMjU2NTcsNiBAQAogCQlBQTJBNUFCNzE2QTQ4
NUE0MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKLQkJCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8sCiAJCQkJ
QUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRs
ICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dT
cGVlY2hTeW50aGVzaXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDg4ZTE1MWIxMjIyNGZl
YmNjODkzYjUzZDY4NWUzZWMxYjAxMGNkNDUuLjgwMmI3Y2YxZWU0M2QyNzlkODE0NzdmYzQ3MjAw
MDhlMTA1NjQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtNTAsNiArNTAsNyBAQCBzZXQoV2Vi
S2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lu
cy9OZXRzY2FwZS94MTEiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvV2Vic2l0ZURhdGEiCisgICAgIiR7V0VCS0lU
X0RJUn0vU2hhcmVkL21lZGlhIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2VzcyIKICAgICAi
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQyIKQEAgLTEwMyw2ICsxMDQsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1Nw
ZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTg1LDYgKzE4Nyw5IEBAIHNldChXZWJLaXRfTUVT
U0FHRVNfSU5fRklMRVMKIAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2Vp
dmVyCiAKKyAgICBTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAgICBT
aGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwogICAgIFVJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5CiAgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBlNTFjYWVkMjFlMTg2Y2YyYTE3M2Ni
OGEzMzMxMmJlMGIzMDRiYjAwLi43MjYwNTczMGYxY2NjZDk4M2U0NDExNGEwNzkzNzQwODkwMDcw
MGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC05MSw2ICs5MSw4IEBAICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNz
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvSFRUUFNVcGdyYWRlL0hUVFBTVXBn
cmFkZUxpc3QudHh0CiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL1dlYkNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvU2hhcmVkL21lZGlhL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KICQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBlODhiMmMyMWZhNzE3Yzc3ZDIzMDJjYjUxOGJhNGFkM2VkZTI1NzRhLi4wNWZi
M2VmNjVlYmNlMzg1YTI5ODYyZjE2NDBhOTQzMGQzZjFhNDBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEzMSw2ICsxMzEsOSBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
UHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVz
c2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2Fn
ZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgKQEAgLTIyNCw2ICsyMjcsOSBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNv
dXJjZVByb3h5TWVzc2FnZXNSZXBsaQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdp
c3RyeU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1Jl
cGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDY4MTQ4NTVmZjlkMjNhZjBh
NzdlNWZkYTZkZmQyZmQ1NTA5NzZmNjkuLmY5YzZmZGQyM2FlNjhiZGJlY2M1MDJlNTEwYmM4NzEw
NDU4ZGE0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzOCw2ICsxMzgsOCBA
QCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlTaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkgXAogCVNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIgXAogCVNoYXJlZC9XZWJDb25uZWN0aW9uIFwKKwlTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIgXAorCVNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciBcCiAJVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgXAogCVVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCiAJ
VUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ3ZGJiNjYzNGE0NWZiZTMwMTI5ZWZlYjI1MzlmMzE1YmZmZDk4ODEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHAKQEAgLTAsMCArMSwzMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNs
dWRlIDxXZWJDb3JlL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtQXVkaW9EYXRhLmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlh
U291cmNlCisgICAgOiBwcml2YXRlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2Vy
dmVyCisgICAgLCBwcml2YXRlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIHB1YmxpYyBTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZTo6Q2xpZW50CisjZW5kaWYKK3sKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiYmIHNvdXJjZSwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQor
ICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICAgICAsIG1fc291cmNlKFdU
Rk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9u
KSkKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1
ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZT4odGhpcykpKQorI2VuZGlmCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRk
T2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZl
cigqdGhpcyk7CisgICAgfQorCisgICAgflJlYWx0aW1lTWVkaWFTb3VyY2UoKQorICAgIHsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyNlbmRp
ZgorICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7Cisg
ICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCisgICAgdm9p
ZCBzdGFydCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+c3RhcnQoKTsKKyAgICB9CisKKyAg
ICB2b2lkIHN0b3AoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0b3AoKTsKKyAgICB9CisK
KyAgICB2b2lkIHJlcXVlc3RUb0VuZCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+cmVxdWVz
dFRvRW5kKCp0aGlzKTsKKyAgICB9CisKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzRXJyb3I+IGFwcGx5Q29uc3RyYWludHMoY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCisgICAgeworICAgICAgICBy
ZXR1cm4gbV9zb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMpOworICAgIH0KKwor
ICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc291cmNlLT5zZXR0aW5ncygpOworICAg
IH0KKworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpCisgICAg
eworICAgICAgICByZXR1cm4gbV9zb3VyY2UtPmNsb25lKCk7CisgICAgfQorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9y
aW5nQnVmZmVyLnN0b3JhZ2UoKSk7CisgICAgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9p
ZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2Fw
dHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZCht
X2lkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZW1vdGVTb3VyY2VTdG9wcGVkKG1faWRlbnRpZmllciksIDApOworICAgIH0KKwor
ICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29u
c3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgV2ViQ29yZTo6
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1l
cykgZmluYWwKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChtX2Rlc2Ny
aXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24u
cGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1EZXNjcmlwdGlv
bjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0g
KldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9u
LnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAgICAgICAgIG1fbnVt
YmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAg
ICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigp
LCBtX251bWJlck9mRnJhbWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChpczxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOworICAgICAgICBtX3JpbmdCdWZm
ZXIuc3RvcmUoZG93bmNhc3Q8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEp
Lmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgICAgICB1aW50
NjRfdCBzdGFydEZyYW1lOworICAgICAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICAgICAgbV9y
aW5nQnVmZmVyLmdldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cisg
ICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRp
bWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAg
ICAgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRh
KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BB
UkFNKG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09B
KQorCisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFs
CisgICAgeworICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlm
IChzdG9yYWdlKQorICAgICAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhX
SU5ET1dTKQorICAgICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxz
ZQorICAgICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7CisjZW5kaWYKKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
U2V0U3RvcmFnZShtX2lkZW50aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92
ZShoYW5kbGUpLCAgZGF0YVNpemUgfSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyks
IDApOworICAgIH0KKworI2VuZGlmCisKKyAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpIGZp
bmFsCisgICAgeworI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgICAgICBhdXRvIGJ1ZmZlclNp
emUgPSBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkg
LyA1MDsKKyAgICAgICAgaWYgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigp
LnByZWZlcnJlZEJ1ZmZlclNpemUoKSA+IGJ1ZmZlclNpemUpCisgICAgICAgICAgICBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1
ZmZlclNpemUpOworICAgICAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5zZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQsIFdlYkNv
cmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAg
UmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIFJlZjxJUEM6
OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMg
eyAwIH07CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQVJpbmdCdWZmZXIg
bV9yaW5nQnVmZmVyOworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rl
c2NyaXB0aW9uIHsgfTsKKyNlbmRpZgorfTsKKworUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikK
KyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQoreworfQorCitSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKK30KKworI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OmdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2Fu
ZGJveEhhbmRsZUZvclRDQ0QsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5k
bGVGb3JNaWNyb3Bob25lKQoreworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yVENDRCkpOworICAg
IGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWls
ZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciB0Y2NkIik7CisgICAgZWxzZQorICAg
ICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NELT5jb25zdW1lKCk7CisKKyAgICBtX3NhbmRi
b3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1v
dmUoc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVu
c2lvbkZvck1pY3JvcGhvbmUpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBz
YW5kYm94IGV4dGVuc2lvbiBmb3IgbWljcm9waG9uZSIpOworICAgIGVsc2UKKyAgICAgICAgbV9z
YW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+Y29uc3VtZSgpOworfQorCit2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCit7CisgICAg
aWYgKG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uRm9yVENDRC0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Qg
PSBudWxscHRyOworICAgIH0KKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bo
b25lKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPnJldm9rZSgp
OworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gbnVsbHB0cjsKKyAg
ICB9Cit9CisKKyNlbmRpZgorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRT
b3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOworICAgIHN3
aXRjaCAoY2FwdHVyZURldmljZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIFdURk1v
dmUoaGFzaFNhbHQpLCAmY29uc3RyYWludHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICAgICAgc291cmNl
T3JFcnJvciA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURl
dmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7CisgICAgICAgIGlmIChzb3Vy
Y2VPckVycm9yKQorICAgICAgICAgICAgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5tb25p
dG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAg
IHNvdXJjZU9yRXJyb3IgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5kaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJj
ZShjYXB0dXJlRGV2aWNlLCAmY29uc3RyYWludHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgYm9vbCBzdWNj
ZWVkZWQgPSAhIXNvdXJjZU9yRXJyb3I7CisgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50czsK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Cisg
ICAgaWYgKHN1Y2NlZWRlZCkgeworICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iu
c291cmNlKCk7CisgICAgICAgIHNldHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOworICAgICAg
ICBjYXBhYmlsaXRpZXMgPSBzb3VyY2UtPmNhcGFiaWxpdGllcygpOworICAgICAgICBBU1NFUlQo
IW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgICAgIG1fc291cmNlcy5hZGQo
aWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlPihpZGVudGlmaWVyLCBX
VEZNb3ZlKHNvdXJjZSksIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpKTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVz
c2FnZSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZWVkZWQsIGludmFsaWRDb25zdHJh
aW50cywgV1RGTW92ZShzZXR0aW5ncyksIFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7Cit9CisKK3Zv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc291cmNlcy5y
ZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OnN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAg
ICAgICAgc291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit1aW50NjRfdCBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjbG9uZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZp
ZXIpCit7CisgICAgYXV0byBvcmlnaW5hbFNvdXJjZSA9IG1fc291cmNlcy5nZXQob3JpZ2luYWxJ
ZGVudGlmaWVyKTsKKyAgICBpZiAoIW9yaWdpbmFsU291cmNlKQorICAgICAgICByZXR1cm47CisK
KyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhuZXdJZGVudGlmaWVyKSk7CisgICAgbV9z
b3VyY2VzLmFkZChuZXdJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2U+
KG5ld0lkZW50aWZpZXIsIG9yaWdpbmFsU291cmNlLT5jbG9uZSgpLCBtX2Nvbm5lY3Rpb24uY29w
eVJlZigpKSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNldFNob3Vs
ZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQoreworICAgIGlmIChhdXRvIHNvdXJj
ZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RvcCgpOwor
fQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIGF1dG8gc291cmNl
ID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoY29u
c3RyYWludHMpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6QXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChp
ZGVudGlmaWVyLCBzb3VyY2UtPnNldHRpbmdzKCkpKTsKKyAgICBlbHNlCisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNvbnN0cmFp
bnRzRmFpbGVkKGlkZW50aWZpZXIsIHJlc3VsdC0+YmFkQ29uc3RyYWludCwgcmVzdWx0LT5tZXNz
YWdlKSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlcXVlc3RUb0Vu
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+cmVxdWVzdFRvRW5kKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUyY2IzM2FhMTI0NzVhNmEwYTA5MTgy
MTFkNTAxZTFhYmQzZmYwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9PcmllbnRhdGlv
bk5vdGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczsKK3N0cnVj
dCBNZWRpYUNvbnN0cmFpbnRzOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJUEM6OkNvbm5lY3Rpb24mKTsKKyAg
ICB+UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKworcHJpdmF0ZToKKyAgICAvLyBNZXNz
YWdlcworICAgIHZvaWQgYWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYmKT4mJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBjbG9uZVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZpZXIpOworICAgIHZvaWQg
c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWlu
dHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMmKTsKKyAgICB2b2lkIHJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9O
UykKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJiYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKKyAgICB2b2lkIHJldm9rZVNhbmRi
b3hFeHRlbnNpb25zKCk7CisjZW5kaWYKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgor
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2
NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBjbGFz
cyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIGZyaWVuZCBjbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hN
YXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworICAgIFdlYkNvcmU6Ok9yaWVudGF0
aW9uTm90aWZpZXIgbV9vcmllbnRhdGlvbk5vdGlmaWVyIHsgMCB9OworCisjaWYgRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94
RXh0ZW5zaW9uRm9yVENDRDsKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94
RXh0ZW5zaW9uRm9yTWljcm9waG9uZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wOWVkYmI5MGRlYzNmYzc5MmU5ZTJhNTJhMGZjM2M0MDU3ZjQxMjY0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0NCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEFkZFNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGlu
dmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNl
dHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxp
dGllcykgQXN5bmMKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworCisgICAgQ2xvbmVTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgb3JpZ2luYWxJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBuZXdJZGVudGlmaWVyKQorICAg
IFNldFNob3VsZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQorICAgIEFwcGx5Q29u
c3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpCisgICAgUmVx
dWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIEdyYW50U2FuZGJveEV4
dGVuc2lvbnMoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZUZvclRDQ0QsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hF
eHRlbnNpb25IYW5kbGVGb3JNaWNyb3Bob25lKQorICAgIFJldm9rZVNhbmRib3hFeHRlbnNpb25z
KCkKKyNlbmRpZgorfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTQ0
NmU5MzA4ZDBiODgwMzhhNjVlYzUwNWY3MGIyZWEzZjRmYjk2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
QEAgLTAsMCArMSwzMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RhdGljIGlubGluZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlIGRldmljZVR5cGUpCit7CisgICAgc3dpdGNoIChkZXZpY2VUeXBlKSB7CisgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87CisgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6Ok5vbmU7Cit9CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
PiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1
cmVEZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBjb25zdHJh
aW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKK30KKworUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2Fw
dHVyZURldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBPcHRpb25hbDxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcj4gb3JpZ2luYWxJZGVudGlmaWVyKQorICAgIDogV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShzb3VyY2VUeXBlRnJvbURldmljZVR5cGUoY2FwdHVy
ZURldmljZS50eXBlKCkpLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVy
LnRvVUludDY0KCkpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQorICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQorICAgICwgbV9j
YXB0dXJlRGV2aWNlKGNhcHR1cmVEZXZpY2UpCisgICAgLCBtX2NvbnN0cmFpbnRzKGNvbnN0cmFp
bnRzKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8
V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlPihudWxscHRyKSkpCisjZW5kaWYKK3sKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgc3dpdGNoIChtX2NhcHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5
KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3Rv
cnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAg
IGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoIW9yaWdp
bmFsSWRlbnRpZmllcikgeworICAgICAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgqdGhpcyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX21hbmFnZXItPmFkZFNvdXJjZUZyb21DbG9u
ZSgqdGhpcywgKm9yaWdpbmFsSWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKK3sKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIHN3aXRjaCAobV9jYXB0dXJlRGV2aWNlLnR5cGUoKSkgeworICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKKyAgICAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0
dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAg
ICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVv
Q2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgor
ICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNwZWFrZXI6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpV
bmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisjZW5kaWYKKwor
ICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlz
KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0Rh
dGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNz
YWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0IHsgbV9pZGVudGlmaWVyIH0p
OworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRh
KCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2Fn
ZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVudGlmaWVyIH0pOwor
fQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBu
dW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisKKyAg
ICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkp
IHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8g
Y3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2UiKTsKKyAgICB9CisKKyAgICBh
dXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3Jp
bmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5n
QnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2Up
OworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkp
OworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxv
Y2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVu
aXF1ZTxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZy
YW1lcyk7Cit9CisKKyNlbmRpZgorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJl
bW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVkKCkKK3sKKyAgICBz
dG9wKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAobV9p
c1JlYWR5KQorICAgICAgICByZXR1cm4gY2FsbGJhY2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkp
OworICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpzZXRBc1JlYWR5KCkKK3sKKyAgICBtX2lzUmVhZHkgPSB0cnVl
OworICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICBtX2NhbGxiYWNrKHsgfSk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3Nh
Z2UpCit7CisgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1v
dmUoZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFj
ayhtX2Vycm9yTWVzc2FnZSk7Cit9CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
PiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZSgpCit7CisgICAgc3dpdGNoICh0eXBl
KCkpIHsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAg
ICByZXR1cm4gY2xvbmVWaWRlb1NvdXJjZSgpOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6QXVkaW86CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICBjYXNlIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorfQorCitSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSgp
Cit7CisgICAgaWYgKCFtX21hbmFnZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjbG9uZVZpZGVvU291cmNlIG1hbmFnZXIgZG9lcyBub3QgZXhpc3Qi
KTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIGF1dG8gaWRlbnRpZmllciA9
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAg
IGF1dG8gbGFiZWwgPSBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCk7CisgICAgYXV0byBjbG9u
ZVNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShpZGVudGlm
aWVyLCAqbV9tYW5hZ2VyLCBtX2NhcHR1cmVEZXZpY2UsIG1fY29uc3RyYWludHMsIFN0cmluZyB7
IGxhYmVsIH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9pZGVudGlmaWVyKSk7CisgICAgY2xvbmVT
b3VyY2UtPnNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7
IG1fc2V0dGluZ3MgfSk7CisgICAgcmV0dXJuIGNsb25lU291cmNlOworfQorCit2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQoreworICAgIG1fY2FwYWJpbGl0
aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYmIHNldHRpbmdzKQoreworICAgIGF1dG8gY2hhbmdlZCA9IG1fc2V0dGluZ3MuZGlmZmVyZW5j
ZShzZXR0aW5ncyk7CisgICAgbV9zZXR0aW5ncyA9IFdURk1vdmUoc2V0dGluZ3MpOworICAgIG5v
dGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOworfQorCit2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRp
bWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVp
bnQ2NF90IGVuZEZyYW1lKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9idWZm
ZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJCdWZmZXIgZm9yIHJlbW90ZSBzb3VyY2UgaXMgbnVs
bCIpOworICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmlu
Z0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAg
ICBtX3JpbmdCdWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0
aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1fYnVm
ZmVyLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTSh0aW1lKTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworICAgIFVOVVNF
RF9QQVJBTShzdGFydEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZW5kRnJhbWUpOworI2VuZGlm
Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBs
ZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsK
KworICAgIHNldEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxlLnNpemUoKSk7CisKKyAgICBpZiAo
IW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxG
b3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbiA9IFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShy
ZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNl
c3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNy
ZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZSk7CisgICAgaWYgKCFzYW1wbGVSZWYpIHsKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVmKTsK
K30KKworI2VuZGlmCisKK2Jvb2wgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2hvdWxk
QXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgaWYgKG1fbWFu
YWdlcikgeworICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpTZXRTaG91bGRBcHBseVJvdGF0aW9uIHsgbV9pZGVudGlmaWVyLCBzaG91
bGRBcHBseVJvdGF0aW9uIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29u
c3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFw
cGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFt
X21hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWlu
dHNDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX21h
bmFnZXItPnNlbmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNv
bnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9KTsKK30KKwordm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGNvbnN0IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit7CisgICAgc2V0
U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzKHNldHRpbmdzKSk7
CisgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3Mu
dGFrZUZpcnN0KCk7CisgICAgY2FsbGJhY2soeyB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0
cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9w
ZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKKyAgICBjYWxsYmFj
ayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZN
b3ZlKGVycm9yTWVzc2FnZSkgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1f
bWFuYWdlci0+c2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlcXVl
c3RUb0VuZCB7IG1faWRlbnRpZmllciB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpyZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIHN3aXRjaCAo
dHlwZSgpKSB7CisgICAgY2FzZSBUeXBlOjpBdWRpbzoKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6cmVxdWVzdFRvRW5kKG9ic2VydmVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBU
eXBlOjpWaWRlbzoKKyAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRmNTljODA1MzAyOTFiNjQwMDExYjg1NTcxYWQ5NWEyZWQwMWY2YmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmgKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKK2NsYXNzIENBUmluZ0J1ZmZlcjsKK2NsYXNzIEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ7CitjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7CisjZW5kaWYKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworCitj
bGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gY3JlYXRlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgflJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKCkgY29uc3QgeyByZXR1
cm4gbV9jYXB0dXJlRGV2aWNlOyB9OworICAgIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJhaW50czsgfTsKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6
OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVz
QXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0
YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90ZUNhcHR1cmVGYWls
ZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZp
ZGVvU2FtcGxlJiYpOworI2VuZGlmCisKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVk
ZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9p
ZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmlu
ZyYmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2Fn
ZSk7CisgICAgdm9pZCBzZXRBc1JlYWR5KCk7CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKTsKKyAgICB2b2lkIHNldFNl
dHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKKworcHJpdmF0
ZToKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
JiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIE9wdGlvbmFsPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyPiBvcmlnaW5hbElkZW50aWZpZXIgPSBXVEY6Om51
bGxvcHQpOworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVv
U291cmNlKCk7CisgICAgCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAg
IHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5n
RGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9
CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAgICBib29sIGlzQ2FwdHVyZVNvdXJj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHNldFNob3VsZEFwcGx5
Um90YXRpb24oYm9vbCkgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImKSBm
aW5hbDsKKyAgICB2b2lkIHN0b3BCZWluZ09ic2VydmVkKCkgZmluYWw7CisgICAgdm9pZCBhcHBs
eUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0
cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiBjbG9uZSgpIGZpbmFsOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI+IG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBtX3NldHRpbmdzOworICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9jYXB0
dXJlRGV2aWNlOworICAgIFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsK
KworICAgIERlcXVlPEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0
cmFpbnRzQ2FsbGJhY2tzOworICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsKKyAgICBTdHJp
bmcgbV9lcnJvck1lc3NhZ2U7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBt
X2NhbGxiYWNrOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwor
I2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWU1YjY4YjYzNTk5NTFmY2FiZmI0OTk2
MjExZmVkYjU0NWFkM2JjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTU2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIFNob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zIHNob3VsZEhh
bmRsZVNhbmRib3hFeHRlbnNpb25zKQorICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCisg
ICAgLCBtX3Nob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zKHNob3VsZEhhbmRsZVNhbmRib3hF
eHRlbnNpb25zKQoreworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjphZGRTb3VyY2UoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1
dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKCFtX3NvdXJj
ZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwg
bWFrZVdlYWtQdHIoc291cmNlKSk7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKSAm
JiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIGlmICghbV9oYXNHcmFudGVkU2FuZGJveEV4
dGVuc2lvbnMgJiYgbV9zaG91bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyA9PSBTaG91bGRIYW5k
bGVTYW5kYm94RXh0ZW5zaW9uczo6WWVzKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBoYW5kbGVGb3JUQ0NEOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRBdWRp
dFRva2VuKCksIGhhbmRsZUZvclRDQ0QpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgaGFuZGxlRm9yTWljcm9waG9uZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9z
LCBoYW5kbGVGb3JNaWNyb3Bob25lKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OkdyYW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9yVENDRCwg
aGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5z
aW9ucyA9IHRydWU7CisgICAgfQorI2VuZGlmCisKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UgeyBpZGVudGlmaWVy
LCBzb3VyY2UuY2FwdHVyZURldmljZSgpLCBzb3VyY2UuZGV2aWNlSURIYXNoU2FsdCgpLCBzb3Vy
Y2UuY29uc3RyYWludHMoKSB9LCAgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyks
IGlkZW50aWZpZXJdKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYg
c2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBt
X3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpOworICAgICAgICBpZiAoIXNvdXJjZSkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgeworICAgICAgICAgICAgc291
cmNlLT5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBzb3VyY2UtPnNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3Mu
bGFiZWwoKS5zdHJpbmcoKSB9KTsKKyAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3Zl
KHNldHRpbmdzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2Fw
YWJpbGl0aWVzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0QXNSZWFkeSgpOworICAgIH0pOworfQor
Cit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2VGcm9tQ2xv
bmUoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKG1f
c291cmNlcy5jb250YWlucyhvcmlnaW5hbElkZW50aWZpZXIpKTsKKyAgICBhdXRvIGlkZW50aWZp
ZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRy
KHNvdXJjZSkpOworCisgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OkNsb25lU291cmNlIHsgb3JpZ2luYWxJZGVudGlmaWVyLCBpZGVudGlmaWVyIH0pOworfQor
Cit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9
IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fc291cmNlcy5nZXQoaWRlbnRpZmll
cikgPT0gJnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisg
ICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkgJiYgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lv
bnMpIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94
RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0KKyNlbmRpZgorCisgICAgc2VuZChNZXNzYWdlczo6
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW92ZVNvdXJjZSB7IGlkZW50aWZpZXIgfSk7
Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaXBjSGFuZGxl
LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJj
ZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnNldFN0b3JhZ2UoaXBjSGFuZGxl
LmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVp
bnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIGlmIChhdXRvIHNv
dXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBl
bmRGcmFtZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJl
bW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50
aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291cmNlU3RvcHBlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKK30KKwordWludDY0X3QgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklE
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9
IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJh
aW50c1N1Y2NlZWRlZChzZXR0aW5ncyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwg
U3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0
KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RG
TW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShtZXNzYWdlKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGNkZGNlNmU5MTdlYTAyNzM5YmJmMTYwZTk1MTFlNmJiY2QyZTJhNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllczsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKK3N0cnVjdCBNZWRp
YUNvbnN0cmFpbnRzOworCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CisKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgSVBDOjpNZXNz
YWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBl
bnVtIGNsYXNzIFNob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zIDogYm9vbCB7IE5vLCBZZXMg
fTsKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJUEM6OkNvbm5lY3Rpb24m
LCBTaG91bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyA9IFNob3VsZEhhbmRsZVNhbmRib3hFeHRl
bnNpb25zOjpZZXMpOworICAgIHZvaWQgYWRkU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UmKTsKKyAgICB2b2lkIGFkZFNvdXJjZUZyb21DbG9uZShSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
cmVtb3ZlU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAgICB2b2lk
IHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVt
b3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7
CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3RyaW5nJiYsIFN0cmluZyYm
KTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxl
JiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVj
dGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRf
dCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZT4+IG1fc291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zIHsg
ZmFsc2UgfTsKKyAgICBTaG91bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyBtX3Nob3VsZEhhbmRs
ZVNhbmRib3hFeHRlbnNpb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21l
ZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJiYjA1MjFhZDk5MTU0OGU3ZDVmMGM5Njc4ODdiZTU1MDhkOGNlOTEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDQwIEBACisjIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2Fn
ZXMgLT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFu
ZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNj
cmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYKKworICAgIFJlbW90ZUF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVp
bnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNhcHR1cmVG
YWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICBSZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCisKKyAgICBBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKKyAgICBBcHBseUNvbnN0cmFpbnRz
RmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFN0cmluZyBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcgbWVzc2FnZSkKK30KKworI2VuZGlmCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IDRlYTRhZmJkNjlmMTgwZDc4ZTU5YmZhZTMyNWM0ZWY2NGY0NDkyMDYu
LjI0MjllNDRlZWJkNDljMWYyNDhkMDBjZDE1MTEwYjMzM2M3ODY4MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtMjc3LDYgKzI3NywxMCBAQCBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1h
dGlvbi5jcHAgQG5vLXVuaWZ5CiAKIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAK
IAorU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorU2hhcmVkL21l
ZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCitTaGFyZWQvbWVkaWEvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFVJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNz
UHJveHkuY3BwCiBVSVByb2Nlc3MvQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVy
LmNwcAogVUlQcm9jZXNzL0RldmljZUlkSGFzaFNhbHRTdG9yYWdlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IDUwODczOGJjMjFhZjg2NjM3NmNmZWViNTlmZjg0Y2U0NmNlMjYxNmIuLjRm
MDdmMDBiYjljMTIzNWY3OTAzNjdiOWQ5ZDA5ZjFmODkzNGUxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKQEAgLTU2NywxMCArNTY3LDEwIEBAIFdlYlByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2Vi
UGF5bWVudENvb3JkaW5hdG9yQ29jb2EubW0KIAogV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nl
c3Npb25NYW5hZ2VyLm1tCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmNwcAotV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAog
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKIFdlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KK1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVu
dFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2YzMyYzU0OGEw
YTA5YWIwMmJjMTQ1MzQ1MjQ0Li5iOTcwZjExMTI4NGMxN2Y0YTZhNDE4YmMxZjM3ZTIwZjU5MzJk
Mjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuY3BwCkBAIC05Myw2ICs5MywxOSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgog
ICAgICAgICB9KTsKICAgICB9CiAKKyAgICBtX3JlY29nbml6ZXItPnJlc2V0KCk7CisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gc291cmNlT3JFcnJvciA9IG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKCk7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKSB7Cisg
ICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICBzZW5k
VXBkYXRlKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
OkF1ZGlvQ2FwdHVyZSwgc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllciwg
c291cmNlT3JFcnJvci5zb3VyY2UoKSk7CisgICAgcmV0dXJuOworI2VuZGlmCisKICAgICBtX3Jl
Y29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAppbmRleCBhN2Y3NmQzOGVl
NTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li4xYTQ2YzE1OGM3Y2YyZjg0M2ZmMTFmNmZm
MjEzYmZhZDQ5OThmOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTU3LDYgKzU3LDExIEBAIHB1YmxpYzoKICAgICB2b2lk
IGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIpOwogICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
dXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gRnVuY3Rpb248V2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoKT47CisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291
cmNlQ3JlYXRlRnVuY3Rpb24oUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYgZnVu
Y3Rpb24pIHsgbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKGZ1
bmN0aW9uKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lv
bkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CiAgICAgdm9p
ZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIpOwpAQCAtNzUsNiArODAsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3JlcXVlc3Rz
OwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9wZXJtaXNzaW9uQ2hl
Y2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcj4gbV9y
ZWNvZ25pemVyOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247
CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTdkOWNkZmU1NTM1YzI3YzQ1MDRmMDEw
YTZlZGY4ZTRjNWUzY2E2YS4uNmQ4Nzk3MzQ5ZGIxYWQ1MGEzNzBjNTY2Y2NkMTU4YzliYjYwYThm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0z
Nyw2ICszNyw5IEBACiAjaW5jbHVkZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgor
I2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCkBAIC0xNzAyLDggKzE3MDUsOCBAQCBQ
QUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgpIGNvbnN0CiAKIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNwZWVjaFJl
Y29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRp
ZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0aW9uU2VydmVyLmlzTmV3
RW50cnkpOworICAgIEFTU0VSVCghbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlu
cyhpZGVudGlmaWVyKSk7CisgICAgYXV0byYgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKS5pdGVyYXRv
ci0+dmFsdWU7CiAgICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdlID0gbnVsbHB0cjsKICAgICBm
b3IgKGF1dG8qIHBhZ2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlmIChwYWdlICYmIHBhZ2UtPndl
YlBhZ2VJRCgpID09IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsNyArMTcxOCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBtYWtlVW5pcXVl
PFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlm
aWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBh
dXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNwZWVjaFJlY29nbml0aW9u
U2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29u
bmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFn
ZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMTcyMyw3ICsxNzI2LDMwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAKICAg
ICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24ob3JpZ2lu
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7Ci0gICAgYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZh
bHVlKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25p
dGlvblNlcnZlcik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHNwZWVjaFJlY29n
bml0aW9uU2VydmVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHdlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFy
Z2V0UGFnZSldKCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJu
IENhcHR1cmVTb3VyY2VPckVycm9yIHsgIldlYlByb2Nlc3NQcm94eSBpcyBpbnZhbGlkIiB9Owor
CisgICAgICAgIGlmICghd2Vha1BhZ2UgfHwgd2Vha1BhZ2UtPnByZWZlcmVuY2VzKCkuY2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVT
b3VyY2VPckVycm9yIHsgIlBhZ2UgaXMgaW52YWxpZCBvciB1c2luZyBHUFUgcHJvY2VzcyBmb3Ig
Y2FwdHVyZSIgfTsKKworICAgICAgICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgICAgIGlmICghY2Fw
dHVyZURldmljZSkKKyAgICAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJO
byBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OworCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgYXV0byYgc291cmNlTWFuYWdlciA9IGVuc3VyZVJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMgY29uc3RyYWludHM7CisgICAgICAgIGNvbnN0cmFpbnRzLmlzVmFsaWQgPSB0cnVlOworICAg
ICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjcmVhdGUoc291cmNlTWFuYWdlciwgKmNhcHR1cmVEZXZpY2UsIGNvbnN0cmFpbnRzLCBT
dHJpbmcgeyBjYXB0dXJlRGV2aWNlLT5sYWJlbCgpIH0sICJTcGVlY2hSZWNvZ25pdGlvbiIpIH07
CisjZWxzZQorICAgICAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpj
cmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7CisjZW5kaWYKKyAgICB9KTsKKyNlbmRp
ZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTcz
Myw2ICsxNzU5LDIwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVuCiAgICAgbV9zcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1hcC5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCitSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vz
c1Byb3h5OjplbnN1cmVSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAg
aWYgKCFtX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKSB7CisgICAgICAgIG1fcmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyPigqY29ubmVjdGlvbigpKTsKKyAgICAgICAgYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCAqbV9yZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik7Cisg
ICAgfQorCisgICAgcmV0dXJuICptX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwor
fQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGMxMGIzOTQ4ZDc3Njc2Mzcx
NGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLmUxMWM3YjE4YjhlODg2ZWQzMjk3MjBkZDBmNzU0ZDg4
NWY0Yjg2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBA
IC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3Ry
dWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiAKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7
CisjZW5kaWYKKwogZW51bSBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBlIHsgfTsKIHR5
cGVkZWYgUmVmQ291bnRlcjxGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBlPiBGb3JlZ3Jv
dW5kV2ViUHJvY2Vzc0NvdW50ZXI7CiB0eXBlZGVmIEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRl
cjo6VG9rZW4gRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbjsKQEAgLTUwNSw2ICs1MDksOSBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGVzdHJveVNwZWVjaFJlY29n
bml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYg
ZW5zdXJlUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgogCiAgICAg
dm9pZCBzeXN0ZW1CZWVwKCk7CiAgICAgCkBAIC02NDMsNiArNjUwLDkgQEAgcHJpdmF0ZToKIAog
ICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fcmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OGUwZGJjYjg4NTliMjY0YzU2MjNiOTQxMjc2YjI4M2NlZDFjZjM1YS4uY2M4YTZkZmY4MGMzNTEy
ODU4ZmZhZWUwZjJiNTc4YmE2ODBlMGUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA0LDYgKzE0MDQsMTYgQEAKIAkJOTE5Nzk0
MDgyM0RCQzRDQjAwMjU3ODkyIC8qIFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5NDA3MjNEQkM0Q0Ew
MDI1Nzg5MiAvKiBXZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmggKi87IH07CiAJCTkxOTc5NDBB
MjNEQkM0RTAwMDI1Nzg5MiAvKiBBUElJbnNwZWN0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5NDA5MjNEQkM0RTAwMDI1Nzg5MiAv
KiBBUElJbnNwZWN0b3JDbGllbnQuaCAqLzsgfTsKIAkJOTE5Nzk0MEMyM0RCQzUwMzAwMjU3ODky
IC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MTk3OTQwQjIzREJDNTAzMDAyNTc4OTIgLyogX1dLSW5zcGVjdG9y
RGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5MzAwM0VGRjI1NzhDRDYxMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNF
RjgyNTc4QzRFMzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLzsgfTsK
KwkJOTMwMDNGMDAyNTc4Q0Q2NTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzAwM0VGQTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCAqLzsgfTsKKwkJOTMwMDNGMDEyNTc4Q0Q2NzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzAwM0VGQzI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCAqLzsgfTsKKwkJOTMwMDNGMEUyNTc4REEzODAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRjBDMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkzMDAzRjBGMjU3OERC
MDYwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0Yw
NzI1NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OworCQk5MzAwM0YxMDI1NzhEQjA4MDBGMkEzREEgLyogUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTMwMDNGMDkyNTc4RDk4QzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJOTMwMDNGMTEyNTc4REIwQTAwRjJB
M0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwNjI1NzhEOThC
MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAq
LzsgfTsKKwkJOTMwMDNGMTIyNTc4REIwQzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRjBCMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTkz
MDAzRjEzMjU3OERCMTIwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMwMDNGMEQyNTc4RDlFRTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CisJCTkzMTkzNTUzMjU3QTk4RUMw
MDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE5MzU1MTI1N0E5OEU4MDAzRjY2RDQg
LyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OwogCQk5MzIxRDU4NjFBMzhF
RTNDMDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIxRDU4NTFBMzhFRTNDMDA4MDUy
QkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmggKi87IH07CiAJCTkzMjFENThBMUEz
OEYxOTYwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIxRDU4OTFBMzhGMTk2MDA4MDUyQkUg
LyogV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzMjM2MTFFMUIwMTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVy
bGF5U2Nyb2xsYmFyU3R5bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzMjM2MTFEMUIwMTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFy
U3R5bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzU2OCw4ICszNTc4LDYgQEAKIAkJNDE2ODRDNEQyNDY0M0JGQTAwMUNFOEVEIC8qIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTY4NEM0RTI0NjQzQzgxMDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2ODRD
NEYyNDY0M0QzRjAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE2ODRDNTAyNDY0NTBGRDAw
MUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxNjg0QzUxMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE2Q0Q3NDUyM0ZCMTc4QjAwNjYxRDk5IC8qIE1ETlNSZWdpc3RlcklkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTUROU1JlZ2lzdGVySWRlbnRpZmllci5o
OyBwYXRoID0gTmV0d29yay93ZWJydGMvTUROU1JlZ2lzdGVySWRlbnRpZmllci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZGODA4NjI0NUIzOTc0MDBCNjhGMDIgLyogTGliV2Vi
UlRDTmV0d29yay5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBMaWJXZWJSVENO
ZXR3b3JrLm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29y
ay5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RjgwODkyNDVD
N0ZGNTAwQjY4RjAyIC8qIExpYldlYlJUQ05ldHdvcmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gTGliV2ViUlRDTmV0d29yay5jcHA7IHBhdGggPSBOZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTQ1NjMsNiArNDU3MSwyMiBAQAogCQk5MTk3OTQwNzIzREJDNENBMDAyNTc4OTIgLyogV2ViUGFn
ZUluc3BlY3RvckFnZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkxOTc5NDA5MjNEQkM0RTAwMDI1Nzg5MiAvKiBBUElJbnNwZWN0b3JDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSW5zcGVjdG9yQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxOTc5NDBCMjNEQkM1MDMwMDI1Nzg5MiAvKiBfV0tJbnNw
ZWN0b3JEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJbnNw
ZWN0b3JEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0VGNzI1
NzhDNEUzMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0VGODI1
NzhDNEUzMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUY5MjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzAwM0VGQTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTMwMDNFRkIyNTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzAwM0VGQzI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRkQyNTc4Q0M0
OTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0VGRTI1NzhDQzRBMDBGMkEzREEg
LyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwNjI1NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMDcyNTc4RDk4QjAwRjJBM0RBIC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMDky
NTc4RDk4QzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwQjI1NzhE
OUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzAwM0YwQzI1NzhEOUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjBEMjU3OEQ5RUUwMEYyQTNEQSAvKiBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzE5MzU1MTI1
N0E5OEU4MDAzRjY2RDQgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzMTkzNTUyMjU3QTk4RTkwMDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzIxRDU4NTFBMzhF
RTNDMDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzIxRDU4NzFBMzhFRTc0MDA4MDUyQkUgLyogV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzIxRDU4OTFBMzhGMTk2MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVB
Y3Rpb25UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ltbWVkaWF0
ZUFjdGlvblR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MjYwLDYgKzYy
ODQsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQwMEREN0M2OCAvKiBHYW1lcGFkICovLAogCQkJ
CTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBpb3MgKi8sCiAJCQkJQkMxMTFCNUExMTJGNjI4
MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQk5MzAwM0VGNjI1NzhDNDUwMDBGMkEzREEgLyogbWVk
aWEgKi8sCiAJCQkJMUFBRTA1OEMxMjc5RENENDAwODUyNDE4IC8qIFBsdWdpbnMgKi8sCiAJCQkJ
MkQyRTA0NzYxRjVCRUM0RjAwQkIyNUVEIC8qIFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQkxQUJG
NDM3ODFBMzY4MDM1MDAzRkIwRTYgLyogV2Vic2l0ZURhdGEgKi8sCkBAIC04ODA1LDggKzg4MzAs
NiBAQAogCQkJCTQxNjg0QzRGMjQ2NDNEM0YwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5jcHAgKi8sCiAJCQkJNDE2ODRDNEUyNDY0M0M4MTAwMUNFOEVEIC8qIFJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmggKi8sCiAJCQkJNDE2ODRDNEQyNDY0M0JGQTAwMUNFOEVEIC8q
IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAotCQkJCTQxNjg0QzUw
MjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKLQkJ
CQk0MTY4NEM1MTI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
ICovLAogCQkJCUNENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAgKi8sCiAJCQkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmggKi8sCiAJCQkJQ0Q0OTFCMEExRTczMkQxMjAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLApAQCAtODgxNCw2ICs4ODM3LDggQEAK
IAkJCQk1MkQ1QTFCMzFDNTc0OUYyMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLywKIAkJCQk1MkQ1QTFCNDFDNTc0OUYyMDBERTM0QTMgLyogVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5tbSAqLywKIAkJCQk3QzZFNzBGOTE4QjJENEEwMDBGMjRFMkUgLyogV2Vi
UHJvY2Vzc0NvY29hLm1tICovLAorCQkJCTkzMTkzNTUyMjU3QTk4RTkwMDNGNjZENCAvKiBXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5MzE5MzU1MTI1N0E5OEU4MDAz
RjY2RDQgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC04OTcxLDYgKzg5OTYs
MjEgQEAKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owor
CQk5MzAwM0VGNjI1NzhDNDUwMDBGMkEzREEgLyogbWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzMDAzRUZFMjU3OENDNEEwMEYyQTNEQSAvKiBS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJOTMwMDNFRkMyNTc4Q0M0OTAw
RjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJOTMwMDNFRkQy
NTc4Q0M0OTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovLAorCQkJCTkzMDAzRUY5MjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlLmNwcCAqLywKKwkJCQk5MzAwM0VGODI1NzhDNEUzMDBGMkEzREEgLyogUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5oICovLAorCQkJCTkzMDAzRUY3MjU3OEM0RTMwMEYyQTNEQSAvKiBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJOTMwMDNFRkEyNTc4
QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJ
CQkJOTMwMDNFRkIyNTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBtZWRpYTsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTkzOTI4OEUwMjE0MDRERjAwMEVCQkEzMyAvKiBJ
bmRleGVkREIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
MTA0OTIsNiArMTA1MzIsOSBAQAogCQkJCTFBMDQzQjVDMTI0RDVFOUQwMEZGQkZCNSAvKiBQbHVn
aW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFBOEVGQTZFMTI1MkI4NDEwMEY3MDY3
RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUE4RUZBNkYxMjUy
Qjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQk5MzAwM0YwNzI1
NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAorCQkJCTkzMDAzRjA5MjU3OEQ5OEMwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTMwMDNGMDYyNTc4RDk4QjAwRjJBM0RB
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJ
Q0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCiAJCQkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlv
U2Vzc2lvbk1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RENTM1NzQyNDBEREUwNzAwRjdCOEM0IC8qIFJl
bW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTA1NDUsNiArMTA1ODgs
OSBAQAogCQkJCTFERDJBNjYxMjU2MTIyRjEwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVBy
b3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUFDMTMzODMxODU5MEM0NjAwRjNFQzA1IC8q
IFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUMxMzM4
NDE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oICovLAor
CQkJCTkzMDAzRjBCMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTMwMDNGMEMyNTc4RDlFRDAwRjJB
M0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJ
CQk5MzAwM0YwRDI1NzhEOUVFMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkwRjU5NDdBNTE4N0I1MTc2MDA0Mzc4NTcg
LyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJ
CTBGNTk0N0E2MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1l
c3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NkIyNTYyMDIxRTAwRkY3QjZGIC8qIFJlbW90ZVNvdXJj
ZUJ1ZmZlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTExNTQwLDYgKzExNTg2LDkg
QEAKIAkJCQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2QTYgLyogUXVhcmFudGluZVNQSS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1i
bmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVFNTcyNTI0MDlGMTQyMDAy
MDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
MzAwM0YwMTI1NzhDRDY3MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzMDAzRjEwMjU3OERCMDgwMEYyQTNEQSAvKiBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0YxMTI1
NzhEQjBBMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQzMTgyMjJCMzUxNUUwMDhEMEU4QiAvKiBSZWRp
cmVjdFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTlCMTIyOUQy
MjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5Q0QyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTExNTgwLDYgKzExNjI5LDEw
IEBACiAJCQkJMUE1NzA0RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVjdEludm9jYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEzMzgwMTg1OTBBRTQwMEYzRUMwNSAvKiBSZW1v
dGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzODYxODU5MEM0NjAw
RjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzMDAzRUZGMjU3OENENjEwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0YwMDI1NzhDRDY1MDBGMkEzREEgLyogUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRjBF
MjU3OERBMzgwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0YxMzI1NzhEQjEyMDBGMkEzREEgLyogUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNTk0NzkwMTg3QjNCM0EwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8q
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNTk0NzlCMTg3QjNCNjAwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTExODg1LDYgKzExOTM4LDcgQEAKIAkJCQkxQTFFMDkz
NDE4ODYxRDM4MDBEMkRDNDkgLyogV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViUHJvdGVjdGlvblNwYWNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjFDQ0NBNjIzMTQ4NUFBMDBCNjU5QjkgLyogV2ViUmVt
b3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMTkzNTUzMjU3QTk4RUMw
MDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTg2MEU3MTIzMEY2N0ZDMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250
cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBRkZCQTE2NTQyMDQ4MDAxQkEwNUUgLyog
V2ViUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjA2MEUwMTY1NDMxN0Yw
MEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAg
LTEzMzczLDYgKzEzNDI3LDcgQEAKIAkJCQkyRDU0QzMxQjIxMkY0REE2MDA0OUMxNzQgLyogUHJv
Y2Vzc0xhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMEMyMjdGMjQ1MTEzMEEwMEVE
NjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTFBMEMyMjVFMjQzNTc1Q0QwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxMb2FkZXIu
bW0gaW4gU291cmNlcyAqLywKKwkJCQk5MzAwM0YwRjI1NzhEQjA2MDBGMkEzREEgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFEMDM2OUFFMjU2Nzk2QjkwMDQ0MDM3MiAvKiBS
ZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZGMjRBMkQxODc5RTRCQzAwM0FCRjBEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTMzOTQsNiArMTM0NDksNyBA
QAogCQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxREQyQTY2MzI1NjEy
NDZGMDBGRjdCNkYgLyogUmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQUMxMzM4NTE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2Jq
ZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTMwMDNG
MTIyNTc4REIwQzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTk0N0E3MTg3QjUxNzYwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxREQyQTY2RTI1NjIwMjFFMDBGRjdCNkYgLyogUmVtb3RlU291cmNl
QnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUQwMzY5
QUMyNTY3OTY5OTAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmNwcAppbmRleCAzZjM1MzE5NGEzMmMzZTY3OWJjYTI5ZmJlYTg1MDMxYzkyMWU0
ZmM0Li5jZjI4M2VkMzViNWYwMTNhNzZiY2U5OWZjNzljMjVjNTAyY2RlZDNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtNDYsNiArNDYs
MTAgQEAgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0aGlzKTsKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKG1faWRlbnRpZmllciksIDApOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpOworI2VuZGlmCiB9CiAKIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6fldlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggZjJmMjI4MjJjN2IyMjNmY2E1OWY5NTU3M2QxMWRjOTliMTAzNDgxMS4u
ZWUzYjQyYzhiZTM2MDc1ZGQ1NDk3MmE4NmViNGUzNjc0NjE1NGY1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDMsNiArNDMsOCBAQAogI2luY2x1ZGUgIk5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0Fzc2VydGlvbi5oIgorI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lv
bi5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJTdG9y
YWdlQXJlYU1hcC5oIgpAQCAtMTk2OSw2ICsxOTcxLDE4IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZW5h
YmxlVlA5U1dEZWNvZGVyKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
K1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzOjplbnN1cmVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3JlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKSB7CisgICAgICAgIG1fcmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVl
PFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7
CisgICAgICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKm1fcmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIpOworICAgIH0KKworICAgIHJldHVybiAqbV9yZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0Vf
TE9HX1NFU1NJT05fSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGU5
YzQ3ZGI0YzQ0N2MwZjRhYjYyN2MwOTRiNWY2OGRiNTY1YTlhNmMuLmEwNDE1NTJkMTE5OTE0Yzlj
ZjI0ZmY0YzkxMzliODQ4NjA4NjU4NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaApAQCAtMTQyLDYgKzE0MiwxMCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKKwog
Y2xhc3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzCiB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNjAsNiArMzY0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZFdyaXRlVG9QYXN0ZWJvYXJkQXN5bmNocm9ub3VzbHkoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7
CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nlc3Mo
KTsKQEAgLTY5Myw2ICs3MDEsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdnA5RGVjb2RlckVu
YWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV92cDlTV0RlY29kZXJFbmFibGVkIHsgZmFsc2Ug
fTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fcmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5jcHAKaW5kZXggNWIzZTcwMGUwOTU4ZTJmYmQ1NjkxNzgwNDI3MWRlZGM5NGZjNWU0OS4u
NjUwNTY4NmJlMWZhNGRmMjU2Y2JhODY0MjA0MGEyYmRmMWZmZDMxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXI6OnNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogICAgICAg
ICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CiAK
LXZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyOjphZGRTb3VyY2UoUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNl
KQogewogICAgIEFTU0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAgc2V0Q29ubmVjdGlv
bihzb3VyY2UtPmNvbm5lY3Rpb24oKSk7CkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3UKICAgICBpdGVyYXRvci0+dmFsdWUtPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0
aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwogfQogCi1SZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OlJlbW90ZUF1ZGlvKFJlZjxSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKK1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
OjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYgc291cmNlKQogICAgIDogbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogICAgICwgbV9y
aW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCmluZGV4
IDZmYjRiYzM3YjkzODAxNmZjZTVjNWM1YWM1YTQzNzAyN2YxODZiZTQuLmFlMGE2ZTBmYzg5YTky
YWVkMWY4NzdjODYwYWE2YWNiZmVjMDdmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCkBAIC0y
OSw4ICsyOSw4IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2lu
Y2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgIldlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJB
dWRpb0J1ZmZlckxpc3QuaD4KQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIFJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyKCk7CiAgICAgflJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCk7
CiAKLSAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7
CisgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYp
OwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CkBAIC02MywxMyArNjMsMTMgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBS
ZW1vdGVBdWRpbyB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1Ymxp
YzoKLSAgICAgICAgZXhwbGljaXQgUmVtb3RlQXVkaW8oUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYpOworICAgICAgICBleHBsaWNpdCBSZW1vdGVBdWRpbyhSZWY8V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZT4mJik7CiAKICAgICAgICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNo
YXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOwogICAgICAgICB2b2lkIGF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBz
dGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBS
ZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgICAgIFJlZjxXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKICAgICAgICAgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CiAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKICAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4gbV9idWZmZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmOWMyYWFkMDkx
OTYyZTM1OTZlZjg5M2IzNTljMWQxZDY4NGFlMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzEwICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oIgotCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCi0KLSNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIlNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaCIKLSNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCi0jaW5j
bHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFDb25zdHJhaW50cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dl
YkF1ZGlvQnVmZmVyTGlzdC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFj
ZSBQQUw7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0
cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLXsKLSAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLnR5cGUoKSwg
V1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpKTsKLSAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsK
LSAgICBzb3VyY2UtPmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMoc291cmNlLT5pZGVudGlmaWVyKCksIGRldmljZSwgc291cmNl
LT5kZXZpY2VJREhhc2hTYWx0KCksIGNvbnN0cmFpbnRzKSwgW3NvdXJjZSA9IHNvdXJjZS5jb3B5
UmVmKCldKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGlu
Z3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKLSAg
ICAgICAgICAgIHNvdXJjZS0+ZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHNvdXJjZS0+c2V0TmFtZShTdHJpbmcg
eyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwotICAgICAgICBzb3VyY2UtPnNldFNldHRp
bmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKLSAgICAgICAgc291cmNlLT5zZXRDYXBhYmlsaXRpZXMo
V1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKLSAgICAgICAgc291cmNlLT5zZXRBc1JlYWR5KCk7Ci0g
ICAgfSk7Ci0gICAgcmV0dXJuIHNvdXJjZTsKLX0KLQotc3RhdGljIGlubGluZSBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlIGRldmljZVR5cGUpCi17Ci0gICAgc3dpdGNoIChkZXZpY2VUeXBlKSB7Ci0gICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICByZXR1
cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87Ci0gICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpTY3JlZW46Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6
Ci0gICAgICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKLSAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6Ci0gICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICB9Ci0gICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7Ci19
Ci0KLVJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZSBkZXZpY2VUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcykKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZyb21EZXZpY2VU
eXBlKGRldmljZVR5cGUpLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVy
LnRvVUludDY0KCkpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKLSAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQotICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCi0gICAgLCBtX2RldmljZVR5cGUoZGV2
aWNlVHlwZSkKLSAgICAsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyhzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKQotewotICAgIHN3aXRjaCAobV9kZXZpY2VUeXBlKSB7Ci0gICAgY2FzZSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1
ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRo
aXMpOwotI2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U2NyZWVuOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2lu
ZG93OgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNwZWFrZXI6Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci19Ci0KLVJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKLXsKLSAgICBzd2l0Y2gg
KG1fZGV2aWNlVHlwZSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWlj
cm9waG9uZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3Rp
dmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46Ci0gICAgY2Fz
ZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKLSAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIH0KLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp3aGVuUmVh
ZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKQotewotICAgIGlm
IChtX2lzUmVhZHkpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhXVEZNb3ZlKG1fZXJyb3JNZXNz
YWdlKSk7Ci0gICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwotfQotCi12b2lkIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQot
ewotICAgIG1faXNSZWFkeSA9IHRydWU7Ci0gICAgbV9lcnJvck1lc3NhZ2UgPSBXVEZNb3ZlKGVy
cm9yTWVzc2FnZSk7Ci0gICAgaWYgKG1fY2FsbGJhY2spCi0gICAgICAgIG1fY2FsbGJhY2sobV9l
cnJvck1lc3NhZ2UpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEFz
UmVhZHkoKQotewotICAgIG1faXNSZWFkeSA9IHRydWU7Ci0gICAgaWYgKG1fY2FsbGJhY2spCi0g
ICAgICAgIG1fY2FsbGJhY2soeyB9KTsKLX0KLQotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lKCkKLXsKLSAgICBzd2l0Y2ggKHR5cGUoKSkg
ewotICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86Ci0gICAgICAgIHJl
dHVybiBjbG9uZVZpZGVvU291cmNlKCk7Ci0gICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlOjpBdWRpbzoKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpOb25lOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0gICAg
cmV0dXJuICp0aGlzOwotfQotCi1SZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSgpCi17Ci0gICAgYXV0byBpZGVudGlmaWVy
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgaWYgKCFj
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OkNsb25lIHsgbV9pZGVudGlmaWVyLCBpZGVudGlmaWVyIH0sIDApKQotICAgICAgICByZXR1cm4g
KnRoaXM7Ci0KLSAgICBhdXRvIGNsb25lU291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlKGlkZW50aWZpZXIsIGRldmljZVR5cGUoKSwgU3RyaW5nIHsgbV9zZXR0
aW5ncy5sYWJlbCgpLnN0cmluZygpIH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9tYW5hZ2VyLCBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKLSAgICBjbG9uZVNvdXJjZS0+c2V0U2V0dGlu
Z3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgbV9zZXR0aW5ncyB9KTsKLSAgICBtX21h
bmFnZXIuYWRkU291cmNlKGNsb25lU291cmNlLmNvcHlSZWYoKSk7Ci0gICAgcmV0dXJuIGNsb25l
U291cmNlOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxp
dGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQotewot
ICAgIG1fY2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOwotfQotCi12b2lkIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyYmIHNldHRpbmdzKQotewotICAgIGF1dG8gY2hhbmdlZCA9IG1fc2V0dGluZ3MuZGlm
ZmVyZW5jZShzZXR0aW5ncyk7Ci0gICAgbV9zZXR0aW5ncyA9IFdURk1vdmUoc2V0dGluZ3MpOwot
ICAgIG5vdGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOwotfQotCi12b2lk
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2l6ZSkK
LXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBhdWRpb1NhbXBsZXNBdmFpbGFi
bGUodGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNpemUpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFJlbW90ZVZpZGVvU2Ft
cGxlJiYgcmVtb3RlU2FtcGxlKQotewotICAgIEFTU0VSVCh0eXBlKCkgPT0gVHlwZTo6VmlkZW8p
OwotCi0gICAgc2V0SW50cmluc2ljU2l6ZShyZW1vdGVTYW1wbGUuc2l6ZSgpKTsKLQotICAgIGlm
ICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhl
bEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQotICAgICAgICBtX2ltYWdl
VHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHJlbW90ZVNh
bXBsZS52aWRlb0Zvcm1hdCgpKTsKLQotICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikg
ewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGF1dG8gc2FtcGxlUmVmID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlTWVk
aWFTYW1wbGUocmVtb3RlU2FtcGxlKTsKLSAgICBpZiAoIXNhbXBsZVJlZikgewotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1wbGVSZWYpOwotfQotCi1J
UEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNvbm5lY3Rpb24oKQot
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQot
ICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgICAgIHJldHVybiAmV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzdGFydFByb2R1Y2luZ0RhdGEoKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9kdWNpbmdEYXRhIHsgbV9p
ZGVudGlmaWVyIH0sIDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0
b3BQcm9kdWNpbmdEYXRhKCkKLXsKLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlm
aWVyIH0sIDApOwotfQotCi1ib29sIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNob3Vs
ZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQotewotICAgIGNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U2V0U2hv
dWxkQXBwbHlSb3RhdGlvbiB7IG1faWRlbnRpZmllciwgc2hvdWxkQXBwbHlSb3RhdGlvbiB9LCAw
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwYWJpbGl0aWVz
KCkKLXsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJiBjb25zdHJhaW50cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9u
SGFuZGxlcikKLXsKLSAgICBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVu
ZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgLy8gRklYTUU6IFVzZSBzZW5kQXN5
bmNXaXRoUmVwbHkuCi0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpBcHBseUNvbnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25z
dHJhaW50cyB9LCAwKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBs
eUNvbnN0cmFpbnRzU3VjY2VlZGVkKGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyYgc2V0dGluZ3MpCi17Ci0gICAgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzKHNldHRpbmdzKSk7Ci0KLSAgICBhdXRvIGNhbGxiYWNrID0gbV9w
ZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKLSAgICBjYWxsYmFj
ayh7IH0pOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3Ry
YWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNz
YWdlKQotewotICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2Fs
bGJhY2tzLnRha2VGaXJzdCgpOwotICAgIGNhbGxiYWNrKEFwcGx5Q29uc3RyYWludHNFcnJvciB7
IFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNzYWdlKSB9KTsKLX0K
LQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpoYXNFbmRlZCgpCi17Ci0gICAgY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpF
bmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShtX2lk
ZW50aWZpZXIpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVT
dG9wcGVkKCkKLXsKLSAgICBzdG9wKCk7Ci0gICAgaGFzRW5kZWQoKTsKLX0KLQotdm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKLXsKLSAgICBSZWFsdGltZU1l
ZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCk7Ci0gICAgaGFzRW5kZWQoKTsKLX0KLQotdm9pZCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCgpCi17Ci0gICAgY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpS
ZXF1ZXN0VG9FbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKE9ic2VydmVyJiBvYnNlcnZlcikKLXsKLSAgICBz
d2l0Y2ggKHR5cGUoKSkgewotICAgIGNhc2UgVHlwZTo6QXVkaW86Ci0gICAgICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChvYnNlcnZlcik7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgVHlwZTo6VmlkZW86Ci0gICAgICAgIHN0b3BCZWluZ09ic2VydmVkKCk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgVHlwZTo6Tm9uZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgfQotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjODkwYmViMWIwMzEzZDRlMjMwMjk1MjlmNTFkMTExNzBl
OWI1YjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAor
KysgL2Rldi9udWxsCkBAIC0xLDExMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1
ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIuaD4KLSNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KLQotbmFtZXNwYWNlIElQQyB7Ci1jbGFz
cyBDb25uZWN0aW9uOwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb247Ci1jbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwotc3RydWN0IE1l
ZGlhQ29uc3RyYWludHM7Ci1jbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsKLX0KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOwotCi1jbGFzcyBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2UgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzID0gZmFs
c2UpOwotICAgIH5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7Ci0KLSAgICBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9pZGVudGlmaWVyOyB9Ci0gICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCk7Ci0KLSAg
ICB2b2lkIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYm
KTsKLQotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25zdCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKLSAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNG
YWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsK
LQotICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKLSAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBm
aW5hbDsKLQotICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGUmJik7Ci0gICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUo
Y29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYs
IGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOwotCi1wcml2
YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYs
IGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7Ci0KLSAgICAvLyBSZWFsdGltZU1lZGlh
U291cmNlCi0gICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKLSAgICB2b2lkIHN0
b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7Ci0gICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBm
aW5hbCB7IH0KLSAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KLSAgICBi
b29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICov
KSBmaW5hbDsKLSAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOwotICAgIHZvaWQg
cmVxdWVzdFRvRW5kKE9ic2VydmVyJikgZmluYWw7Ci0gICAgdm9pZCBzdG9wQmVpbmdPYnNlcnZl
ZCgpIGZpbmFsOwotICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKLSAgICBjb25zdCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1cm4g
bV9zZXR0aW5nczsgfQotICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOwotICAgIHZvaWQgd2hlblJlYWR5KENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7Ci0gICAgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9k
ZXZpY2VUeXBlOyB9Ci0gICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkgZmluYWw7
Ci0KLSAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKLSAgICB2b2lkIHNl
dEFzUmVhZHkoKTsKLSAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOwotICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBj
bG9uZVZpZGVvU291cmNlKCk7Ci0KLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFu
YWdlcjsKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2Fw
YWJpbGl0aWVzOwotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3Nl
dHRpbmdzOwotCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZSBtX2RldmljZVR5cGUgeyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpVbmtub3duIH07Ci0KLSAgICBEZXF1ZTxBcHBseUNvbnN0cmFpbnRzSGFuZGxlcj4g
bV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrczsKLSAgICBib29sIG1fc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9
OwotICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKLSAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyk+IG1fY2FsbGJhY2s7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCAwODNmODI5YWY3NWFlOTlmNmMyOGNkNjcwYjkw
YTY2Nzc4OWYzN2UzLi41OGM4MDZiNWZhZGY1MjRkMGU4Yjk0YzIxOWI3MGRkYTA2N2QwZDkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTMwLDEwICszMCwxMCBAQAogCiAjaW5jbHVkZSAiQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVj
dGlvbi5oIgotI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRl
ICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRH
bG9iYWxTZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
aD4KQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c2V0dXBD
YXB0dXJlUHJvY2Vzc2VzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVAKICAgICAgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGlzcGxheUNhcHR1cmVGYWN0
b3J5KG1fZGlzcGxheUZhY3RvcnkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjphZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQordm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKIHsKICAgICBpZiAoc291cmNlLT50eXBlKCkgPT0gUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCiAgICAgICAgIG1fcmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwpAQCAtMTU4LDcgKzE1OCw3
IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0Zh
Y3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvCiAgICAgICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0
aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYK
IAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAq
Y29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlcik7CisgICAgcmV0
dXJuIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJh
aW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsKIH0KIAogdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKGJvb2wgdmFsdWUpCkBAIC0xNzYsNyArMTc2LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0
dXJlU28KICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlZpZGVvIGNhcHR1
cmUgaW4gR1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKICNlbmRpZgogCi0gICAg
cmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJh
aW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsKKyAgICByZXR1cm4gV2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7
IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIpOwogfQogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKQEAgLTE5MSw3ICsxOTEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dQogICAg
IGlmICghY29uc3RyYWludHMpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0s
IHsgfSwgbV9tYW5hZ2VyKTsKKyAgICByZXR1cm4gV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCBiMGIxOTgyOTA1NDIyZGU3Mjk1NDJhYmIzZWUwOWJj
N2UzMzBkMDJkLi41ZTQ0YTU4YjQ0Zjg0OWIyOGY4M2YwYmQ2ZjlkOTViMDFlZWE2MGE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7
CitjbGFzcyBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOwogY2xhc3MgV2ViUHJvY2VzczsK
IAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBs
ZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBAIC01Nyw3ICs1Nyw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KICAgICB2b2lkIHNldHVwQ2FwdHVyZVByb2Nl
c3Nlcyhib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1
cmVBdWRpb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9JblVJUHJvY2Vzcywg
Ym9vbCBzaG91bGRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZURp
c3BsYXlJblVJUHJvY2Vzcyk7CiAKLSAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFdlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKQEAgLTEyOCw5ICsxMjgsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTdHJpbmcmJiwgU3RyaW5nJiYpOwog
Ci0gICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lVmlkZW9Tb3VyY2Uo
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBjbG9uZVZpZGVvU291cmNlKFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Um
KTsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworICAgIEhhc2hNYXA8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlZjxXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOwogICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsK
ICAgICBOb09wQ2FwdHVyZURldmljZU1hbmFnZXIgbV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7
CiAgICAgQXVkaW9GYWN0b3J5IG1fYXVkaW9GYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJiZmM5N2Q0ZjQ4ZDljYjdlZGE3MTg1NzcyNDc3YTI0NDQzYTlm
ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwzMTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIK
KyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFD
b25zdHJhaW50cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlv
QnVmZmVyTGlzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFdl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFp
bnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK3sKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLnR5cGUoKSwg
V1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpKTsKKworICAgIHNvdXJjZS0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhzb3VyY2UtPmlkZW50aWZpZXIo
KSwgZGV2aWNlLCBzb3VyY2UtPmRldmljZUlESGFzaFNhbHQoKSwgY29uc3RyYWludHMpLCBbc291
cmNlID0gc291cmNlLmNvcHlSZWYoKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3Nh
Z2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgeworICAgICAgICBpZiAo
IXN1Y2NlZWRlZCkgeworICAgICAgICAgICAgc291cmNlLT5kaWRGYWlsKFdURk1vdmUoZXJyb3JN
ZXNzYWdlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc291cmNl
LT5zZXROYW1lKFN0cmluZyB7IHNldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSk7CisgICAgICAg
IHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOworICAgICAgICBzb3VyY2Ut
PnNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykpOworICAgICAgICBzb3VyY2Ut
PnNldEFzUmVhZHkoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gc291cmNlOworfQorCitzdGF0aWMg
aW5saW5lIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZUZyb21EZXZpY2VUeXBl
KENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGRl
dmljZVR5cGUpIHsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhv
bmU6CisgICAgICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzsKKyAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OlZpZGVvOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoK
KyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6Tm9uZTsKK30KKworV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6V2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwg
Ym9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZShzb3VyY2VUeXBlRnJvbURldmljZVR5cGUoZGV2aWNlVHlwZSksIFdURk1vdmUobmFtZSksIFN0
cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9VSW50NjQoKSksIFdURk1vdmUoaGFzaFNhbHQpKQor
ICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikK
KyAgICAsIG1fZGV2aWNlVHlwZShkZXZpY2VUeXBlKQorICAgICwgbV9zaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCit7CisgICAgc3dpdGNoIChtX2Rl
dmljZVR5cGUpIHsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhv
bmU6CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJj
ZSgqdGhpcyk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpDYW1lcmE6CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9y
eSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KK30KKworV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6fldlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoKQoreworICAgIHN3aXRjaCAobV9kZXZpY2VUeXBlKSB7CisgICAgY2FzZSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1
ZGlvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisjZW5kaWYKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNl
KCp0aGlzKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpTcGVha2VyOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93
bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCit2b2lkIFdlYlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OndoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyk+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKG1faXNSZWFkeSkKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKFdURk1vdmUobV9lcnJvck1lc3NhZ2UpKTsKKyAgICBtX2NhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCit7CisgICAgbV9pc1JlYWR5ID0gdHJ1
ZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAo
bV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjayhtX2Vycm9yTWVzc2FnZSk7Cit9CisKK3Zv
aWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0QXNSZWFkeSgpCit7CisgICAgbV9p
c1JlYWR5ID0gdHJ1ZTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjayh7
IH0pOworfQorCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y2xvbmUoKQoreworICAgIHN3aXRjaCAodHlwZSgpKSB7CisgICAgY2FzZSBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKKyAgICAgICAgcmV0dXJuIGNsb25lVmlkZW9T
b3VyY2UoKTsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4gKnRoaXM7Cit9
CisKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjbG9uZVZpZGVvU291cmNlKCkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBpZiAoIWNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q2xvbmUgeyBtX2lk
ZW50aWZpZXIsIGlkZW50aWZpZXIgfSwgMCkpCisgICAgICAgIHJldHVybiAqdGhpczsKKworICAg
IGF1dG8gY2xvbmVTb3VyY2UgPSBhZG9wdFJlZigqbmV3IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UoaWRlbnRpZmllciwgZGV2aWNlVHlwZSgpLCBTdHJpbmcgeyBtX3NldHRpbmdzLmxhYmVs
KCkuc3RyaW5nKCkgfSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcykpOworICAgIGNsb25lU291cmNlLT5zZXRTZXR0aW5ncyhSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MgeyBtX3NldHRpbmdzIH0pOworICAgIG1fbWFuYWdlci5hZGRT
b3VyY2UoY2xvbmVTb3VyY2UuY29weVJlZigpKTsKKyAgICByZXR1cm4gY2xvbmVTb3VyY2U7Cit9
CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCit7CisgICAgbV9j
YXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7Cit9CisKK3ZvaWQgV2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiYgc2V0dGluZ3MpCit7CisgICAgYXV0byBjaGFuZ2VkID0gbV9zZXR0aW5ncy5kaWZmZXJl
bmNlKHNldHRpbmdzKTsKKyAgICBtX3NldHRpbmdzID0gV1RGTW92ZShzZXR0aW5ncyk7CisgICAg
bm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMoY2hhbmdlZCk7Cit9CisKK3ZvaWQgV2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNv
bnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzaXplKQor
eworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZSh0aW1lLCBkYXRhLCBkZXNjcmlwdGlvbiwgc2l6ZSk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3RlVmlkZW9T
YW1wbGUmJiByZW1vdGVTYW1wbGUpCit7CisgICAgQVNTRVJUKHR5cGUoKSA9PSBUeXBlOjpWaWRl
byk7CisKKyAgICBzZXRJbnRyaW5zaWNTaXplKHJlbW90ZVNhbXBsZS5zaXplKCkpOworCisgICAg
aWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBp
eGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCisgICAgICAgIG1faW1h
Z2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUocmVtb3Rl
U2FtcGxlLnZpZGVvRm9ybWF0KCkpOworCisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9u
KSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgYXV0byBzYW1wbGVSZWYgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVN
ZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUpOworICAgIGlmICghc2FtcGxlUmVmKSB7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoKnNhbXBsZVJlZik7Cit9CisK
K0lQQzo6Q29ubmVjdGlvbiogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y29ubmVjdGlv
bigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKKyAgICAgICAgcmV0dXJu
ICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKTsKKyNlbmRpZgorICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAgY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0Rh
dGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEg
eyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKK2Jvb2wgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7
CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpTZXRTaG91bGRBcHBseVJvdGF0aW9uIHsgbV9pZGVudGlmaWVyLCBzaG91bGRBcHBs
eVJvdGF0aW9uIH0sIDApOworICAgIHJldHVybiB0cnVlOworfQorCitjb25zdCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjYXBhYmlsaXRpZXMoKQoreworICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKK30KKwor
dm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRz
SGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fcGVuZGluZ0FwcGx5Q29uc3Ry
YWludHNDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAv
LyBGSVhNRTogVXNlIHNlbmRBc3luY1dpdGhSZXBseS4KKyAgICBjb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkFwcGx5Q29uc3RyYWludHMg
eyBtX2lkZW50aWZpZXIsIGNvbnN0cmFpbnRzIH0sIDApOworfQorCit2b2lkIFdlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICBzZXRTZXR0
aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Moc2V0dGluZ3MpKTsKKwor
ICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLnRh
a2VGaXJzdCgpOworICAgIGNhbGxiYWNrKHsgfSk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25z
dHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCit7CisgICAgYXV0byBjYWxsYmFjayA9IG1f
cGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7CisgICAgY2FsbGJh
Y2soQXBwbHlDb25zdHJhaW50c0Vycm9yIHsgV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RG
TW92ZShlcnJvck1lc3NhZ2UpIH0pOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6Omhhc0VuZGVkKCkKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKKyAg
ICBtX21hbmFnZXIucmVtb3ZlU291cmNlKG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsK
KyAgICBoYXNFbmRlZCgpOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmNhcHR1cmVGYWlsZWQoKQoreworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWls
ZWQoKTsKKyAgICBoYXNFbmRlZCgpOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnN0b3BCZWluZ09ic2VydmVkKCkKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlJlcXVlc3RUb0VuZCB7IG1faWRl
bnRpZmllciB9LCAwKTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpy
ZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIHN3aXRjaCAodHlwZSgpKSB7
CisgICAgY2FzZSBUeXBlOjpBdWRpbzoKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVx
dWVzdFRvRW5kKG9ic2VydmVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpWaWRl
bzoKKyAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWU2NDVj
NDM0NGE0MDljYTY1OTI3YTM2MTJiNmM4NTgxZDJlZDhlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aApAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3Jl
L0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+Cisj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlv
bjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uOworY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKK3N0cnVjdCBNZWRpYUNvbnN0cmFp
bnRzOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjsKKworY2xhc3MgV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0
ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyYsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9IGZhbHNlKTsKKyAg
ICB+V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOworCisgICAgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQorICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpOworCisgICAgdm9p
ZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CisK
KyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVk
KFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSk7CisKKyAg
ICB2b2lkIGNhcHR1cmVTdG9wcGVkKCk7CisgICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7
CisKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZp
ZGVvU2FtcGxlJiYpOworICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0
IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25z
dCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKworcHJpdmF0ZToK
KyAgICBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNv
dXJjZQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9w
UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmlu
YWwgeyB9CisgICAgdm9pZCBjb21taXRDb25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisgICAgYm9v
bCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgLyogc2hvdWxkQXBwbHlSb3RhdGlvbiAqLykg
ZmluYWw7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHJl
cXVlc3RUb0VuZChPYnNlcnZlciYpIGZpbmFsOworICAgIHZvaWQgc3RvcEJlaW5nT2JzZXJ2ZWQo
KSBmaW5hbDsKKyAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1f
c2V0dGluZ3M7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOworICAgIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2
aWNlVHlwZTsgfQorICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpIGZpbmFsOwor
CisgICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBzZXRB
c1JlYWR5KCk7CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyYmKTsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xv
bmVWaWRlb1NvdXJjZSgpOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFn
ZXI7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFi
aWxpdGllczsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0
aW5nczsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOworICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUgbV9kZXZpY2VUeXBlIHsgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6VW5rbm93biB9OworCisgICAgRGVxdWU8QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+IG1f
cGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CisgICAgYm9vbCBtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsK
KyAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dHJpbmcpPiBtX2NhbGxiYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
Zgo=
</data>
<flag name="commit-queue"
          id="432639"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415425</attachid>
            <date>2020-12-04 10:14:03 -0800</date>
            <delta_ts>2020-12-04 10:47:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201204101402.patch</filename>
            <type>text/plain</type>
            <size>149806</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDMzZTNhZjVkNGY3MmUxNDlhYTYyNTBi
Y2M4YmNlODgxODhlNTM5OTEuLjA1MWY0Yjk2ODIwYTFiNmQ5ZjMxY2NiMjYxNTRiNmNkYWJhNzNk
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTItMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUdXJuIG9uIFdl
YlNwZWVjaCBvbiBpT1Mgc2ltdWxhdG9yIGJ5IGRlZmF1bHQgZm9yIHRlc3RpbmcuCisKKyAgICAg
ICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6
CisKIDIwMjAtMTItMDMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkb3B0IEZBTExCQUNLX1BMQVRGT1JNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzdhNGUxNWEzNTlkNTFmNWEz
NmFlYWVjMjk5Zjc1ZGQ2MDQzOTY3My4uYTE2M2MxYTgwYzhiNjA4MzY2MGJkNzU5ODQ2MGY1MTM3
NjQ2MzA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEyLTA0ICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0
dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1lZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpm
aW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBEZWxldGVkLgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDQgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEZsb2F0IHBvc2l0
aW9uaW5nIG5lZWRzIHRvIGhhcHBlbiB3aGlsZSBidWlsZGluZyB0aGUgbGluZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAxOGQ5MDEzMTE1Y2M4NGZmMTI5MmNhYWE2YmVhYTQwNTdkM2EyZjFhLi42ZDEwMmIwMDRhZWIz
Y2Q2MGI1MGI3OTJhM2ZiYTAzZDAwOTRmZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NCBAQAor
MjAyMC0xMi0wNCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgYXVkaW8gY2FwdHVyZSBpcyBkb25lIGluIHdl
YiBwcm9jZXNzLiBGb3Igc3BlZWNoIHJlY29nbml0aW9uLCByZWNvZ25pemVyIGlzIGluIFVJIHBy
b2Nlc3MuIFRoZXJlZm9yZSwKKyAgICAgICAgVUkgcHJvY2VzcyBuZWVkcyB0byBhc2sgd2ViIHBy
b2Nlc3MgdG8gY2FwdHVyZSBhdWRpbyBhbmQgc2VuZCBiYWNrIGRhdGEuIFRvIGltcGxlbWVudCB0
aGlzLCB0aGlzIHBhdGNoIGFkZGVkOgorICAgICAgICAtIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6IHN1YmNsYXNzIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgYW5kIGNvbm5lY3QgdG8g
YSByZW1vdGUgCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgKG93bmVkIGJ5
IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiBhIGRp
ZmZlcmVudCBwcm9jZXNzLgorICAgICAgICAtIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOiBtYW5hZ2UgYWxsIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VzLgorICAgICAgICAtIFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlLgorICAgICAgICAtIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOiBvd24gYW5kIG1vbml0b3IgYSBsb2NhbCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlLgorCisgICAgICAgIE9yaWdpbmFsIFdlYktpdDo6
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSBpcyByZW5hbWVkIHRvIFdlYktpdDo6V2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS4gV2Ugc2hvdWxkCisgICAgICAgIHJlcGxhY2UgV2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZSwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIsIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkgd2l0aAorICAgICAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciwgUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIgbGF0ZXIgdG8gcmVkdWNlIAorICAgICAgICByZWR1bmRhbnQgY29kZS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6flJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnQp
OgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQpOgorICAgICAgICAoV2Vi
S2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBw
bHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXR0aW5ncyBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpjbG9u
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktp
dDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6On5SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cik6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNh
bmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpjbG9uZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2Vi
S2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAg
KiBTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAg
ICAgICogU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
OiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojpzb3VyY2VUeXBlRnJvbURldmljZVR5cGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291
cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OndoZW5SZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnNldEFzUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9u
ZVZpZGVvU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c2V0U2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNob3VsZEFw
cGx5Um90YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0Vu
ZCk6CisgICAgICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50
aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjYXB0dXJlRGV2aWNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y29uc3RyYWludHMgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZUZyb21DbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1v
dGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFw
cGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZCk6CisgICAgICAgICog
U2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgor
ICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291
cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxl
UmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZXRSZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVj
aFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpl
bnN1cmVSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OmVuc3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRl
b0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1
cmVTb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwLgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0Ojpzb3VyY2VU
eXBlRnJvbURldmljZVR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6fldlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp3
aGVuUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3Rl
VmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJv
dGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6aGFzRW5k
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0
dXJlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNhcHR1cmVGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oLgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjppZGVudGlmaWVy
IGNvbnN0KToKKwogMjAyMC0xMi0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBPbmx5IHRoZSBmaXJzdCB3aGVlbCBldmVudCBpbiBhIGdlc3R1cmUg
c2hvdWxkIGJlIGNhbmNlbGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZDRk
YWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJmMi4uNTc5YWE1M2JjOWJkODEwOGRi
ZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAg
LTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6CiAgICAgV2ViS2l0TGVn
YWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJLaXQ6CisgICAgICAiUExBVEZPUk0o
SU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBX
ZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGQ1NDQ4
Mzc4Yjk5NDFjNDcxOTg5MDY2NTBhMzU5NTY1ZTA2MWFiNzUuLmVkYzNjOGZkNzAzMTY4NzE4ZGJj
NzMxMDBmZmU3MjMxNjg0ZDc2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTMyNyw2ICsxMzI3
LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaAogICAgIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAogICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKKyAgICBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgKICAgICBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaAogICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2ZjM4YmM2MjM4ZGExZGJhODY4ZTI5
ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUyZmNkNDNkNzMxMDk3MmYzOGFkZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMzQsOSArMzQsMTAgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxs
YmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2spCi17CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpCit7CiAgICAgT3B0aW9u
YWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAgICBhdXRvIGRldmljZXMgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CiAgICAgZm9yIChh
dXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1MiwxOSBAQCBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0
dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNhcHR1cmVEZXZpY2UpIHsKLSAgICAg
ICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2Fw
dHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBj
YXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAgIGF1dG8gcmVzdWx0ID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOwotICAgIGlm
ICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgcmVzdWx0LmVycm9y
TWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0
YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFD
YWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIFdURk1vdmUoc291cmNlKSk7
Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92
ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgpKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVOVVNFRF9QQVJBTShkYXRhQ2FsbGJh
Y2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNhbGxiYWNrKTsKICNlbmRpZgotfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCmluZGV4
IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5ZjRlMGEuLjY5ZjlhODhiMjYxZTcx
ZjY2ZWMwMGJiOWU3MWRhMGYzYWM4MTk0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5o
CkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CiBjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0g
ZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0
OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rp
b248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKLSAgICBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJik7CisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2sm
JiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+
IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggYmZjNWJlMTAzNGJlM2MxMmQy
Y2FkZWMzZTEyMTk0M2VhYjg5OTMyMy4uMTc2MzFiNmExN2JjYTgzNWEzZDIyNDdlYzMxMTI3NGFi
YjZmZTM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTgw
LDYgKzgwLDcgQEAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6flNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoKQogICAgIG1fc291cmNlLT5zdG9wKCk7CiB9CiAK
Ky8vIE1heSBiZSBjYWxsZWQgb24gbWFpbiB0aHJlYWQgb3IgYmFja2dyb3VuZCB0aHJlYWQuCiB2
b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBs
ZUNvdW50KQogewogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMyOWUy
NjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li5mNjQ5YTc4NjU5ZmUzOWJjZDdlNDIyNTMyYjU1MzJk
OTEwYjkyYjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcApAQCAtNTQsMTUgKzU0LDIyIEBAIHZvaWQgU3BlZWNoUmVjb2duaXpl
cjo6cmVzZXQoKQogCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICByZXNldCgp
OworICAgIC8vIE1ha2Ugc3VyZSBubyBvbmdvaW5nIHJlcXVlc3QuCisgICAgQVNTRVJUKCFtX3Nv
dXJjZSk7CiAKICAgICBtX2NsaWVudElkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIG1fZGVs
ZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpKTsKK30KKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSAgICBzdGFydEludGVybmFsKCk7Cit2b2lkIFNwZWVj
aFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgaWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorewor
ICAgIHN0YXJ0KGlkZW50aWZpZXIpOworICAgIHNldFNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpOwog
fQogCi12b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQordm9pZCBTcGVlY2hS
ZWNvZ25pemVyOjpzZXRTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQog
ewogICAgIGF1dG8gZGF0YUNhbGxiYWNrID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyld
KGNvbnN0IGF1dG8mIHRpbWUsIGNvbnN0IGF1dG8mIGRhdGEsIGNvbnN0IGF1dG8mIGRlc2NyaXB0
aW9uLCBhdXRvIHNhbXBsZUNvdW50KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCkBAIC05MCw5
ICs5NywxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQogICAgICAg
ICAgICAgbV9zb3VyY2UgPSBudWxscHRyOwogICAgIH07CiAKLSAgICBtX3NvdXJjZSA9IG1ha2VV
bmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVy
LCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjaykpOwor
ICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+
KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0
ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShzb3VyY2UpKTsKIH0KIAorI2VuZGlmCisKIHZvaWQg
U3BlZWNoUmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdl
bmVyYXRlRmluYWxSZXN1bHQpCiB7CiAgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKaW5kZXgg
ZTZmMTNmZWU4NGE1MzNhZjBmMDRlMDc2OWMxYWUwOTViZTViZmYzZi4uMzVlYmZlZTQ1NTNmNjI2
OTYwNjgzMWQyYTkyYTBkZTY1Y2ZiYzgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtMzksMTcgKzM5LDIzIEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2Fs
bGJhY2smJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflNwZWVjaFJlY29nbml6ZXIoKSA9IGRlZmF1
bHQ7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
KTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Rh
cnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgUmVmPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYpOworI2VuZGlmCiAgICAgZW51bSBjbGFzcyBTaG91bGRHZW5lcmF0
ZUZpbmFsUmVzdWx0IHsgTm8sIFllcyB9OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcChT
aG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVz
KTsKIAogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJ
ZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCByZXNldCgpOwotICAgIHZvaWQgc3Rh
cnRJbnRlcm5hbCgpOwogICAgIHZvaWQgc3RvcEludGVybmFsKCk7CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorICAgIHZvaWQgc2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYm
KTsKKyNlbmRpZgorCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOwogICAgIERlbGVnYXRlQ2FsbGJhY2sg
bV9kZWxlZ2F0ZUNhbGxiYWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY3MmExNjYwYTVkOWZmODAxM2I2OWFiYmI2
YTNhYWE3OGI5YmUxZjEuLjcxYmJlYzFmODYwYTRiODBmMTUwM2MwMGMzZTZmYTcwZmU5ODg5OGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTIzNjI3LDEzICsyMzYyNyw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OwotCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29j
b2EgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJKTsKLQkJ
CXBhdGggPSBjb2NvYTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTk0NkQz
NzI3MUQ2Q0IyMjUwMDc3MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKApAQCAtMjU2NjQsNyArMjU2NTcsNiBAQAogCQlBQTJBNUFCNzE2QTQ4
NUE0MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKLQkJCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8sCiAJCQkJ
QUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRs
ICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dT
cGVlY2hTeW50aGVzaXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDg4ZTE1MWIxMjIyNGZl
YmNjODkzYjUzZDY4NWUzZWMxYjAxMGNkNDUuLjgwMmI3Y2YxZWU0M2QyNzlkODE0NzdmYzQ3MjAw
MDhlMTA1NjQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtNTAsNiArNTAsNyBAQCBzZXQoV2Vi
S2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lu
cy9OZXRzY2FwZS94MTEiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvV2Vic2l0ZURhdGEiCisgICAgIiR7V0VCS0lU
X0RJUn0vU2hhcmVkL21lZGlhIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2VzcyIKICAgICAi
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQyIKQEAgLTEwMyw2ICsxMDQsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1Nw
ZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTg1LDYgKzE4Nyw5IEBAIHNldChXZWJLaXRfTUVT
U0FHRVNfSU5fRklMRVMKIAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2Vp
dmVyCiAKKyAgICBTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAgICBT
aGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwogICAgIFVJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5CiAgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBlNTFjYWVkMjFlMTg2Y2YyYTE3M2Ni
OGEzMzMxMmJlMGIzMDRiYjAwLi43MjYwNTczMGYxY2NjZDk4M2U0NDExNGEwNzkzNzQwODkwMDcw
MGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC05MSw2ICs5MSw4IEBAICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNz
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvSFRUUFNVcGdyYWRlL0hUVFBTVXBn
cmFkZUxpc3QudHh0CiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL1dlYkNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvU2hhcmVkL21lZGlhL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KICQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBlODhiMmMyMWZhNzE3Yzc3ZDIzMDJjYjUxOGJhNGFkM2VkZTI1NzRhLi4wNWZi
M2VmNjVlYmNlMzg1YTI5ODYyZjE2NDBhOTQzMGQzZjFhNDBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEzMSw2ICsxMzEsOSBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
UHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVz
c2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2Fn
ZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgKQEAgLTIyNCw2ICsyMjcsOSBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNv
dXJjZVByb3h5TWVzc2FnZXNSZXBsaQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdp
c3RyeU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1Jl
cGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDY4MTQ4NTVmZjlkMjNhZjBh
NzdlNWZkYTZkZmQyZmQ1NTA5NzZmNjkuLmY5YzZmZGQyM2FlNjhiZGJlY2M1MDJlNTEwYmM4NzEw
NDU4ZGE0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzOCw2ICsxMzgsOCBA
QCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlTaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkgXAogCVNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIgXAogCVNoYXJlZC9XZWJDb25uZWN0aW9uIFwKKwlTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIgXAorCVNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciBcCiAJVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgXAogCVVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCiAJ
VUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ3ZGJiNjYzNGE0NWZiZTMwMTI5ZWZlYjI1MzlmMzE1YmZmZDk4ODEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHAKQEAgLTAsMCArMSwzMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNs
dWRlIDxXZWJDb3JlL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtQXVkaW9EYXRhLmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlh
U291cmNlCisgICAgOiBwcml2YXRlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2Vy
dmVyCisgICAgLCBwcml2YXRlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIHB1YmxpYyBTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZTo6Q2xpZW50CisjZW5kaWYKK3sKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiYmIHNvdXJjZSwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQor
ICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICAgICAsIG1fc291cmNlKFdU
Rk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9u
KSkKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1
ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZT4odGhpcykpKQorI2VuZGlmCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRk
T2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZl
cigqdGhpcyk7CisgICAgfQorCisgICAgflJlYWx0aW1lTWVkaWFTb3VyY2UoKQorICAgIHsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyNlbmRp
ZgorICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7Cisg
ICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCisgICAgdm9p
ZCBzdGFydCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+c3RhcnQoKTsKKyAgICB9CisKKyAg
ICB2b2lkIHN0b3AoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0b3AoKTsKKyAgICB9CisK
KyAgICB2b2lkIHJlcXVlc3RUb0VuZCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+cmVxdWVz
dFRvRW5kKCp0aGlzKTsKKyAgICB9CisKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzRXJyb3I+IGFwcGx5Q29uc3RyYWludHMoY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCisgICAgeworICAgICAgICBy
ZXR1cm4gbV9zb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMpOworICAgIH0KKwor
ICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc291cmNlLT5zZXR0aW5ncygpOworICAg
IH0KKworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpCisgICAg
eworICAgICAgICByZXR1cm4gbV9zb3VyY2UtPmNsb25lKCk7CisgICAgfQorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9y
aW5nQnVmZmVyLnN0b3JhZ2UoKSk7CisgICAgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9p
ZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2Fw
dHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZCht
X2lkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZW1vdGVTb3VyY2VTdG9wcGVkKG1faWRlbnRpZmllciksIDApOworICAgIH0KKwor
ICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29u
c3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgV2ViQ29yZTo6
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1l
cykgZmluYWwKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChtX2Rlc2Ny
aXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24u
cGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1EZXNjcmlwdGlv
bjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0g
KldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9u
LnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAgICAgICAgIG1fbnVt
YmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAg
ICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigp
LCBtX251bWJlck9mRnJhbWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChpczxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOworICAgICAgICBtX3JpbmdCdWZm
ZXIuc3RvcmUoZG93bmNhc3Q8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEp
Lmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgICAgICB1aW50
NjRfdCBzdGFydEZyYW1lOworICAgICAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICAgICAgbV9y
aW5nQnVmZmVyLmdldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cisg
ICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRp
bWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAg
ICAgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRh
KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BB
UkFNKG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09B
KQorCisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFs
CisgICAgeworICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlm
IChzdG9yYWdlKQorICAgICAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhX
SU5ET1dTKQorICAgICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxz
ZQorICAgICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7CisjZW5kaWYKKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
U2V0U3RvcmFnZShtX2lkZW50aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92
ZShoYW5kbGUpLCAgZGF0YVNpemUgfSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyks
IDApOworICAgIH0KKworI2VuZGlmCisKKyAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpIGZp
bmFsCisgICAgeworI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgICAgICBhdXRvIGJ1ZmZlclNp
emUgPSBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkg
LyA1MDsKKyAgICAgICAgaWYgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigp
LnByZWZlcnJlZEJ1ZmZlclNpemUoKSA+IGJ1ZmZlclNpemUpCisgICAgICAgICAgICBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1
ZmZlclNpemUpOworICAgICAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5zZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQsIFdlYkNv
cmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAg
UmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIFJlZjxJUEM6
OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMg
eyAwIH07CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQVJpbmdCdWZmZXIg
bV9yaW5nQnVmZmVyOworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rl
c2NyaXB0aW9uIHsgfTsKKyNlbmRpZgorfTsKKworUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikK
KyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQoreworfQorCitSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKK30KKworI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OmdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2Fu
ZGJveEhhbmRsZUZvclRDQ0QsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5k
bGVGb3JNaWNyb3Bob25lKQoreworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yVENDRCkpOworICAg
IGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWls
ZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciB0Y2NkIik7CisgICAgZWxzZQorICAg
ICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NELT5jb25zdW1lKCk7CisKKyAgICBtX3NhbmRi
b3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1v
dmUoc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVu
c2lvbkZvck1pY3JvcGhvbmUpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBz
YW5kYm94IGV4dGVuc2lvbiBmb3IgbWljcm9waG9uZSIpOworICAgIGVsc2UKKyAgICAgICAgbV9z
YW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+Y29uc3VtZSgpOworfQorCit2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCit7CisgICAg
aWYgKG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uRm9yVENDRC0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Qg
PSBudWxscHRyOworICAgIH0KKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bo
b25lKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPnJldm9rZSgp
OworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gbnVsbHB0cjsKKyAg
ICB9Cit9CisKKyNlbmRpZgorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRT
b3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOworICAgIHN3
aXRjaCAoY2FwdHVyZURldmljZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIFdURk1v
dmUoaGFzaFNhbHQpLCAmY29uc3RyYWludHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICAgICAgc291cmNl
T3JFcnJvciA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURl
dmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7CisgICAgICAgIGlmIChzb3Vy
Y2VPckVycm9yKQorICAgICAgICAgICAgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5tb25p
dG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAg
IHNvdXJjZU9yRXJyb3IgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5kaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJj
ZShjYXB0dXJlRGV2aWNlLCAmY29uc3RyYWludHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgYm9vbCBzdWNj
ZWVkZWQgPSAhIXNvdXJjZU9yRXJyb3I7CisgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50czsK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Cisg
ICAgaWYgKHN1Y2NlZWRlZCkgeworICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iu
c291cmNlKCk7CisgICAgICAgIHNldHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOworICAgICAg
ICBjYXBhYmlsaXRpZXMgPSBzb3VyY2UtPmNhcGFiaWxpdGllcygpOworICAgICAgICBBU1NFUlQo
IW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgICAgIG1fc291cmNlcy5hZGQo
aWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlPihpZGVudGlmaWVyLCBX
VEZNb3ZlKHNvdXJjZSksIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpKTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVz
c2FnZSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZWVkZWQsIGludmFsaWRDb25zdHJh
aW50cywgV1RGTW92ZShzZXR0aW5ncyksIFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7Cit9CisKK3Zv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc291cmNlcy5y
ZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OnN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAg
ICAgICAgc291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit1aW50NjRfdCBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjbG9uZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZp
ZXIpCit7CisgICAgYXV0byBvcmlnaW5hbFNvdXJjZSA9IG1fc291cmNlcy5nZXQob3JpZ2luYWxJ
ZGVudGlmaWVyKTsKKyAgICBpZiAoIW9yaWdpbmFsU291cmNlKQorICAgICAgICByZXR1cm47CisK
KyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhuZXdJZGVudGlmaWVyKSk7CisgICAgbV9z
b3VyY2VzLmFkZChuZXdJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2U+
KG5ld0lkZW50aWZpZXIsIG9yaWdpbmFsU291cmNlLT5jbG9uZSgpLCBtX2Nvbm5lY3Rpb24uY29w
eVJlZigpKSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNldFNob3Vs
ZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQoreworICAgIGlmIChhdXRvIHNvdXJj
ZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RvcCgpOwor
fQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIGF1dG8gc291cmNl
ID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoY29u
c3RyYWludHMpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6QXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChp
ZGVudGlmaWVyLCBzb3VyY2UtPnNldHRpbmdzKCkpKTsKKyAgICBlbHNlCisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNvbnN0cmFp
bnRzRmFpbGVkKGlkZW50aWZpZXIsIHJlc3VsdC0+YmFkQ29uc3RyYWludCwgcmVzdWx0LT5tZXNz
YWdlKSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlcXVlc3RUb0Vu
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+cmVxdWVzdFRvRW5kKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUyY2IzM2FhMTI0NzVhNmEwYTA5MTgy
MTFkNTAxZTFhYmQzZmYwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9PcmllbnRhdGlv
bk5vdGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczsKK3N0cnVj
dCBNZWRpYUNvbnN0cmFpbnRzOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJUEM6OkNvbm5lY3Rpb24mKTsKKyAg
ICB+UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKworcHJpdmF0ZToKKyAgICAvLyBNZXNz
YWdlcworICAgIHZvaWQgYWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYmKT4mJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBjbG9uZVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZpZXIpOworICAgIHZvaWQg
c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWlu
dHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMmKTsKKyAgICB2b2lkIHJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9O
UykKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJiYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKKyAgICB2b2lkIHJldm9rZVNhbmRi
b3hFeHRlbnNpb25zKCk7CisjZW5kaWYKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgor
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2
NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBjbGFz
cyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIGZyaWVuZCBjbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hN
YXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworICAgIFdlYkNvcmU6Ok9yaWVudGF0
aW9uTm90aWZpZXIgbV9vcmllbnRhdGlvbk5vdGlmaWVyIHsgMCB9OworCisjaWYgRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94
RXh0ZW5zaW9uRm9yVENDRDsKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94
RXh0ZW5zaW9uRm9yTWljcm9waG9uZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wOWVkYmI5MGRlYzNmYzc5MmU5ZTJhNTJhMGZjM2M0MDU3ZjQxMjY0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0NCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEFkZFNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGlu
dmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNl
dHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxp
dGllcykgQXN5bmMKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworCisgICAgQ2xvbmVTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgb3JpZ2luYWxJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBuZXdJZGVudGlmaWVyKQorICAg
IFNldFNob3VsZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQorICAgIEFwcGx5Q29u
c3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpCisgICAgUmVx
dWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIEdyYW50U2FuZGJveEV4
dGVuc2lvbnMoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZUZvclRDQ0QsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hF
eHRlbnNpb25IYW5kbGVGb3JNaWNyb3Bob25lKQorICAgIFJldm9rZVNhbmRib3hFeHRlbnNpb25z
KCkKKyNlbmRpZgorfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTQ0
NmU5MzA4ZDBiODgwMzhhNjVlYzUwNWY3MGIyZWEzZjRmYjk2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
QEAgLTAsMCArMSwzMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RhdGljIGlubGluZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlIGRldmljZVR5cGUpCit7CisgICAgc3dpdGNoIChkZXZpY2VUeXBlKSB7CisgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87CisgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6Ok5vbmU7Cit9CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
PiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1
cmVEZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBjb25zdHJh
aW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKK30KKworUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2Fw
dHVyZURldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBPcHRpb25hbDxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcj4gb3JpZ2luYWxJZGVudGlmaWVyKQorICAgIDogV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShzb3VyY2VUeXBlRnJvbURldmljZVR5cGUoY2FwdHVy
ZURldmljZS50eXBlKCkpLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVy
LnRvVUludDY0KCkpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQorICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQorICAgICwgbV9j
YXB0dXJlRGV2aWNlKGNhcHR1cmVEZXZpY2UpCisgICAgLCBtX2NvbnN0cmFpbnRzKGNvbnN0cmFp
bnRzKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8
V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlPihudWxscHRyKSkpCisjZW5kaWYKK3sKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgc3dpdGNoIChtX2NhcHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5
KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3Rv
cnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAg
IGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoIW9yaWdp
bmFsSWRlbnRpZmllcikgeworICAgICAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgqdGhpcyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX21hbmFnZXItPmFkZFNvdXJjZUZyb21DbG9u
ZSgqdGhpcywgKm9yaWdpbmFsSWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKK3sKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIHN3aXRjaCAobV9jYXB0dXJlRGV2aWNlLnR5cGUoKSkgeworICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKKyAgICAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0
dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAg
ICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVv
Q2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgor
ICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNwZWFrZXI6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpV
bmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisjZW5kaWYKKwor
ICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlz
KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0Rh
dGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNz
YWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0IHsgbV9pZGVudGlmaWVyIH0p
OworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRh
KCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2Fn
ZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVudGlmaWVyIH0pOwor
fQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBu
dW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisKKyAg
ICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkp
IHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8g
Y3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2UiKTsKKyAgICB9CisKKyAgICBh
dXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3Jp
bmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5n
QnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2Up
OworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkp
OworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxv
Y2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVu
aXF1ZTxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZy
YW1lcyk7Cit9CisKKyNlbmRpZgorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJl
bW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVkKCkKK3sKKyAgICBz
dG9wKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAobV9p
c1JlYWR5KQorICAgICAgICByZXR1cm4gY2FsbGJhY2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkp
OworICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpzZXRBc1JlYWR5KCkKK3sKKyAgICBtX2lzUmVhZHkgPSB0cnVl
OworICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICBtX2NhbGxiYWNrKHsgfSk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3Nh
Z2UpCit7CisgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1v
dmUoZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFj
ayhtX2Vycm9yTWVzc2FnZSk7Cit9CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
PiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZSgpCit7CisgICAgc3dpdGNoICh0eXBl
KCkpIHsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAg
ICByZXR1cm4gY2xvbmVWaWRlb1NvdXJjZSgpOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6QXVkaW86CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICBjYXNlIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorfQorCitSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSgp
Cit7CisgICAgaWYgKCFtX21hbmFnZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjbG9uZVZpZGVvU291cmNlIG1hbmFnZXIgZG9lcyBub3QgZXhpc3Qi
KTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIGF1dG8gaWRlbnRpZmllciA9
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAg
IGF1dG8gbGFiZWwgPSBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCk7CisgICAgYXV0byBjbG9u
ZVNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShpZGVudGlm
aWVyLCAqbV9tYW5hZ2VyLCBtX2NhcHR1cmVEZXZpY2UsIG1fY29uc3RyYWludHMsIFN0cmluZyB7
IGxhYmVsIH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9pZGVudGlmaWVyKSk7CisgICAgY2xvbmVT
b3VyY2UtPnNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7
IG1fc2V0dGluZ3MgfSk7CisgICAgcmV0dXJuIGNsb25lU291cmNlOworfQorCit2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQoreworICAgIG1fY2FwYWJpbGl0
aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYmIHNldHRpbmdzKQoreworICAgIGF1dG8gY2hhbmdlZCA9IG1fc2V0dGluZ3MuZGlmZmVyZW5j
ZShzZXR0aW5ncyk7CisgICAgbV9zZXR0aW5ncyA9IFdURk1vdmUoc2V0dGluZ3MpOworICAgIG5v
dGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOworfQorCit2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRp
bWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVp
bnQ2NF90IGVuZEZyYW1lKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9idWZm
ZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJCdWZmZXIgZm9yIHJlbW90ZSBzb3VyY2UgaXMgbnVs
bCIpOworICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmlu
Z0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAg
ICBtX3JpbmdCdWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0
aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1fYnVm
ZmVyLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTSh0aW1lKTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworICAgIFVOVVNF
RF9QQVJBTShzdGFydEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZW5kRnJhbWUpOworI2VuZGlm
Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBs
ZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsK
KworICAgIHNldEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxlLnNpemUoKSk7CisKKyAgICBpZiAo
IW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxG
b3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbiA9IFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShy
ZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNl
c3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNy
ZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZSk7CisgICAgaWYgKCFzYW1wbGVSZWYpIHsKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVmKTsK
K30KKworI2VuZGlmCisKK2Jvb2wgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2hvdWxk
QXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgaWYgKG1fbWFu
YWdlcikgeworICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpTZXRTaG91bGRBcHBseVJvdGF0aW9uIHsgbV9pZGVudGlmaWVyLCBzaG91
bGRBcHBseVJvdGF0aW9uIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29u
c3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFw
cGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFt
X21hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWlu
dHNDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX21h
bmFnZXItPnNlbmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNv
bnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9KTsKK30KKwordm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGNvbnN0IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit7CisgICAgc2V0
U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzKHNldHRpbmdzKSk7
CisgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3Mu
dGFrZUZpcnN0KCk7CisgICAgY2FsbGJhY2soeyB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0
cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9w
ZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKKyAgICBjYWxsYmFj
ayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZN
b3ZlKGVycm9yTWVzc2FnZSkgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1f
bWFuYWdlci0+c2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlcXVl
c3RUb0VuZCB7IG1faWRlbnRpZmllciB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpyZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIHN3aXRjaCAo
dHlwZSgpKSB7CisgICAgY2FzZSBUeXBlOjpBdWRpbzoKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6cmVxdWVzdFRvRW5kKG9ic2VydmVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBU
eXBlOjpWaWRlbzoKKyAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRmNTljODA1MzAyOTFiNjQwMDExYjg1NTcxYWQ5NWEyZWQwMWY2YmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmgKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKK2NsYXNzIENBUmluZ0J1ZmZlcjsKK2NsYXNzIEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ7CitjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7CisjZW5kaWYKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworCitj
bGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gY3JlYXRlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgflJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKCkgY29uc3QgeyByZXR1
cm4gbV9jYXB0dXJlRGV2aWNlOyB9OworICAgIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJhaW50czsgfTsKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6
OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVz
QXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0
YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90ZUNhcHR1cmVGYWls
ZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZp
ZGVvU2FtcGxlJiYpOworI2VuZGlmCisKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVk
ZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9p
ZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmlu
ZyYmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2Fn
ZSk7CisgICAgdm9pZCBzZXRBc1JlYWR5KCk7CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKTsKKyAgICB2b2lkIHNldFNl
dHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKKworcHJpdmF0
ZToKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
JiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIE9wdGlvbmFsPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyPiBvcmlnaW5hbElkZW50aWZpZXIgPSBXVEY6Om51
bGxvcHQpOworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVv
U291cmNlKCk7CisgICAgCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAg
IHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5n
RGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9
CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAgICBib29sIGlzQ2FwdHVyZVNvdXJj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHNldFNob3VsZEFwcGx5
Um90YXRpb24oYm9vbCkgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImKSBm
aW5hbDsKKyAgICB2b2lkIHN0b3BCZWluZ09ic2VydmVkKCkgZmluYWw7CisgICAgdm9pZCBhcHBs
eUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0
cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiBjbG9uZSgpIGZpbmFsOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI+IG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBtX3NldHRpbmdzOworICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9jYXB0
dXJlRGV2aWNlOworICAgIFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsK
KworICAgIERlcXVlPEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0
cmFpbnRzQ2FsbGJhY2tzOworICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsKKyAgICBTdHJp
bmcgbV9lcnJvck1lc3NhZ2U7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBt
X2NhbGxiYWNrOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwor
I2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWU1YjY4YjYzNTk5NTFmY2FiZmI0OTk2
MjExZmVkYjU0NWFkM2JjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTU2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIFNob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zIHNob3VsZEhh
bmRsZVNhbmRib3hFeHRlbnNpb25zKQorICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCisg
ICAgLCBtX3Nob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zKHNob3VsZEhhbmRsZVNhbmRib3hF
eHRlbnNpb25zKQoreworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjphZGRTb3VyY2UoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1
dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKCFtX3NvdXJj
ZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwg
bWFrZVdlYWtQdHIoc291cmNlKSk7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKSAm
JiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIGlmICghbV9oYXNHcmFudGVkU2FuZGJveEV4
dGVuc2lvbnMgJiYgbV9zaG91bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyA9PSBTaG91bGRIYW5k
bGVTYW5kYm94RXh0ZW5zaW9uczo6WWVzKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBoYW5kbGVGb3JUQ0NEOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRBdWRp
dFRva2VuKCksIGhhbmRsZUZvclRDQ0QpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgaGFuZGxlRm9yTWljcm9waG9uZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9z
LCBoYW5kbGVGb3JNaWNyb3Bob25lKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OkdyYW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9yVENDRCwg
aGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5z
aW9ucyA9IHRydWU7CisgICAgfQorI2VuZGlmCisKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UgeyBpZGVudGlmaWVy
LCBzb3VyY2UuY2FwdHVyZURldmljZSgpLCBzb3VyY2UuZGV2aWNlSURIYXNoU2FsdCgpLCBzb3Vy
Y2UuY29uc3RyYWludHMoKSB9LCAgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyks
IGlkZW50aWZpZXJdKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYg
c2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBt
X3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpOworICAgICAgICBpZiAoIXNvdXJjZSkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgeworICAgICAgICAgICAgc291
cmNlLT5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBzb3VyY2UtPnNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3Mu
bGFiZWwoKS5zdHJpbmcoKSB9KTsKKyAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3Zl
KHNldHRpbmdzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2Fw
YWJpbGl0aWVzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0QXNSZWFkeSgpOworICAgIH0pOworfQor
Cit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2VGcm9tQ2xv
bmUoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKG1f
c291cmNlcy5jb250YWlucyhvcmlnaW5hbElkZW50aWZpZXIpKTsKKyAgICBhdXRvIGlkZW50aWZp
ZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRy
KHNvdXJjZSkpOworCisgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OkNsb25lU291cmNlIHsgb3JpZ2luYWxJZGVudGlmaWVyLCBpZGVudGlmaWVyIH0pOworfQor
Cit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9
IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fc291cmNlcy5nZXQoaWRlbnRpZmll
cikgPT0gJnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisg
ICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkgJiYgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lv
bnMpIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94
RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0KKyNlbmRpZgorCisgICAgc2VuZChNZXNzYWdlczo6
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW92ZVNvdXJjZSB7IGlkZW50aWZpZXIgfSk7
Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaXBjSGFuZGxl
LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJj
ZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnNldFN0b3JhZ2UoaXBjSGFuZGxl
LmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVp
bnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIGlmIChhdXRvIHNv
dXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBl
bmRGcmFtZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJl
bW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50
aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291cmNlU3RvcHBlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKK30KKwordWludDY0X3QgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklE
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9
IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJh
aW50c1N1Y2NlZWRlZChzZXR0aW5ncyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwg
U3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0
KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RG
TW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShtZXNzYWdlKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGNkZGNlNmU5MTdlYTAyNzM5YmJmMTYwZTk1MTFlNmJiY2QyZTJhNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllczsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKK3N0cnVjdCBNZWRp
YUNvbnN0cmFpbnRzOworCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CisKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgSVBDOjpNZXNz
YWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBl
bnVtIGNsYXNzIFNob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zIDogYm9vbCB7IE5vLCBZZXMg
fTsKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJUEM6OkNvbm5lY3Rpb24m
LCBTaG91bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyA9IFNob3VsZEhhbmRsZVNhbmRib3hFeHRl
bnNpb25zOjpZZXMpOworICAgIHZvaWQgYWRkU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UmKTsKKyAgICB2b2lkIGFkZFNvdXJjZUZyb21DbG9uZShSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
cmVtb3ZlU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAgICB2b2lk
IHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVt
b3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7
CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3RyaW5nJiYsIFN0cmluZyYm
KTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxl
JiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVj
dGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRf
dCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZT4+IG1fc291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zIHsg
ZmFsc2UgfTsKKyAgICBTaG91bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyBtX3Nob3VsZEhhbmRs
ZVNhbmRib3hFeHRlbnNpb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21l
ZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJiYjA1MjFhZDk5MTU0OGU3ZDVmMGM5Njc4ODdiZTU1MDhkOGNlOTEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDQwIEBACisjIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2Fn
ZXMgLT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFu
ZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNj
cmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYKKworICAgIFJlbW90ZUF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVp
bnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNhcHR1cmVG
YWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICBSZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCisKKyAgICBBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKKyAgICBBcHBseUNvbnN0cmFpbnRz
RmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFN0cmluZyBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcgbWVzc2FnZSkKK30KKworI2VuZGlmCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IDRlYTRhZmJkNjlmMTgwZDc4ZTU5YmZhZTMyNWM0ZWY2NGY0NDkyMDYu
LjI0MjllNDRlZWJkNDljMWYyNDhkMDBjZDE1MTEwYjMzM2M3ODY4MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtMjc3LDYgKzI3NywxMCBAQCBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1h
dGlvbi5jcHAgQG5vLXVuaWZ5CiAKIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAK
IAorU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorU2hhcmVkL21l
ZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCitTaGFyZWQvbWVkaWEvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFVJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNz
UHJveHkuY3BwCiBVSVByb2Nlc3MvQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVy
LmNwcAogVUlQcm9jZXNzL0RldmljZUlkSGFzaFNhbHRTdG9yYWdlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IDUwODczOGJjMjFhZjg2NjM3NmNmZWViNTlmZjg0Y2U0NmNlMjYxNmIuLjRm
MDdmMDBiYjljMTIzNWY3OTAzNjdiOWQ5ZDA5ZjFmODkzNGUxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKQEAgLTU2NywxMCArNTY3LDEwIEBAIFdlYlByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2Vi
UGF5bWVudENvb3JkaW5hdG9yQ29jb2EubW0KIAogV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nl
c3Npb25NYW5hZ2VyLm1tCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmNwcAotV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAog
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKIFdlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KK1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVu
dFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2YzMyYzU0OGEw
YTA5YWIwMmJjMTQ1MzQ1MjQ0Li5iOTcwZjExMTI4NGMxN2Y0YTZhNDE4YmMxZjM3ZTIwZjU5MzJk
Mjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuY3BwCkBAIC05Myw2ICs5MywxOSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgog
ICAgICAgICB9KTsKICAgICB9CiAKKyAgICBtX3JlY29nbml6ZXItPnJlc2V0KCk7CisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gc291cmNlT3JFcnJvciA9IG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKCk7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKSB7Cisg
ICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICBzZW5k
VXBkYXRlKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
OkF1ZGlvQ2FwdHVyZSwgc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllciwg
c291cmNlT3JFcnJvci5zb3VyY2UoKSk7CisgICAgcmV0dXJuOworI2VuZGlmCisKICAgICBtX3Jl
Y29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAppbmRleCBhN2Y3NmQzOGVl
NTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li4xYTQ2YzE1OGM3Y2YyZjg0M2ZmMTFmNmZm
MjEzYmZhZDQ5OThmOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTU3LDYgKzU3LDExIEBAIHB1YmxpYzoKICAgICB2b2lk
IGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIpOwogICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
dXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gRnVuY3Rpb248V2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoKT47CisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291
cmNlQ3JlYXRlRnVuY3Rpb24oUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYgZnVu
Y3Rpb24pIHsgbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKGZ1
bmN0aW9uKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lv
bkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CiAgICAgdm9p
ZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIpOwpAQCAtNzUsNiArODAsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3JlcXVlc3Rz
OwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9wZXJtaXNzaW9uQ2hl
Y2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcj4gbV9y
ZWNvZ25pemVyOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247
CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTdkOWNkZmU1NTM1YzI3YzQ1MDRmMDEw
YTZlZGY4ZTRjNWUzY2E2YS4uZjVlNzRiYTA0MjU3YjgwZDk4OGZmY2Y5MmM0Zjg4ZGE3ZjViNDMz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0z
Nyw2ICszNyw5IEBACiAjaW5jbHVkZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgor
I2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCkBAIC0xNzAyLDggKzE3MDUsOCBAQCBQ
QUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgpIGNvbnN0CiAKIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNwZWVjaFJl
Y29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRp
ZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0aW9uU2VydmVyLmlzTmV3
RW50cnkpOworICAgIEFTU0VSVCghbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlu
cyhpZGVudGlmaWVyKSk7CisgICAgYXV0byYgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKS5pdGVyYXRv
ci0+dmFsdWU7CiAgICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdlID0gbnVsbHB0cjsKICAgICBm
b3IgKGF1dG8qIHBhZ2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlmIChwYWdlICYmIHBhZ2UtPndl
YlBhZ2VJRCgpID09IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsNyArMTcxOCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBtYWtlVW5pcXVl
PFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlm
aWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBh
dXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNwZWVjaFJlY29nbml0aW9u
U2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29u
bmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFn
ZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMTcyMyw3ICsxNzI2LDMwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAKICAg
ICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24ob3JpZ2lu
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7Ci0gICAgYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZh
bHVlKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25p
dGlvblNlcnZlcik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHNwZWVjaFJlY29n
bml0aW9uU2VydmVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHdlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFy
Z2V0UGFnZSldKCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJu
IENhcHR1cmVTb3VyY2VPckVycm9yIHsgIldlYlByb2Nlc3NQcm94eSBpcyBpbnZhbGlkIiB9Owor
CisgICAgICAgIGlmICghd2Vha1BhZ2UgfHwgd2Vha1BhZ2UtPnByZWZlcmVuY2VzKCkuY2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVT
b3VyY2VPckVycm9yIHsgIlBhZ2UgaXMgaW52YWxpZCBvciB1c2luZyBHUFUgcHJvY2VzcyBmb3Ig
Y2FwdHVyZSIgfTsKKworICAgICAgICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgICAgIGlmICghY2Fw
dHVyZURldmljZSkKKyAgICAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJO
byBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OworCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgYXV0byYgc291cmNlTWFuYWdlciA9IGVuc3VyZVJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMgY29uc3RyYWludHM7CisgICAgICAgIGNvbnN0cmFpbnRzLmlzVmFsaWQgPSB0cnVlOworICAg
ICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjcmVhdGUoc291cmNlTWFuYWdlciwgKmNhcHR1cmVEZXZpY2UsIGNvbnN0cmFpbnRzLCBT
dHJpbmcgeyBjYXB0dXJlRGV2aWNlLT5sYWJlbCgpIH0sICJTcGVlY2hSZWNvZ25pdGlvbiIpIH07
CisjZWxzZQorICAgICAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpj
cmVhdGVSZWFsdGltZU1lZGlhU291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyNlbmRpZgorICAgIH0p
OworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
CkBAIC0xNzMzLDYgKzE3NTksMjAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW4KICAgICBtX3Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKK1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBX
ZWJQcm9jZXNzUHJveHk6OmVuc3VyZVJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkK
K3sKKyAgICBpZiAoIW1fcmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpIHsKKyAgICAg
ICAgbV9yZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8UmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+KCpjb25uZWN0aW9uKCkpOworICAgICAgICBhZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICptX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKm1fcmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI7Cit9CisKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKIAogdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVsbHNjcmVlbklucHV0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzEwYjM5NDhk
Nzc2NzYzNzE0ZDE2NDc5YjU5MzYyODJhNjk3MzNkYS4uZTExYzdiMThiOGU4ODZlZDMyOTcyMGRk
MGY3NTRkODg1ZjRiODY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnM7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKIHN0cnVjdCBXZWJzaXRlRGF0YTsKIAor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjsKKyNlbmRpZgorCiBlbnVtIEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGUg
eyB9OwogdHlwZWRlZiBSZWZDb3VudGVyPEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+
IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlcjsKIHR5cGVkZWYgRm9yZWdyb3VuZFdlYlByb2Nl
c3NDb3VudGVyOjpUb2tlbiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuOwpAQCAtNTA1LDYgKzUw
OSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CiAgICAgdm9pZCBkZXN0cm95U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyJiBlbnN1cmVSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlm
CiAKICAgICB2b2lkIHN5c3RlbUJlZXAoKTsKICAgICAKQEAgLTY0Myw2ICs2NTAsOSBAQCBwcml2
YXRlOgogCiAgICAgdXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNw
ZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyPj47CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVl
Y2hSZWNvZ25pdGlvblNlcnZlck1hcDsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9yZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA4ZTBkYmNiODg1OWIyNjRjNTYyM2I5NDEyNzZiMjgzY2VkMWNmMzVhLi5jYzhhNmRm
ZjgwYzM1MTI4NThmZmFlZTBmMmI1NzhiYTY4MGUwZTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MDQsNiArMTQwNCwxNiBAQAog
CQk5MTk3OTQwODIzREJDNENCMDAyNTc4OTIgLyogV2ViUGFnZUluc3BlY3RvckFnZW50QmFzZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE5Nzk0MDcy
M0RCQzRDQTAwMjU3ODkyIC8qIFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaCAqLzsgfTsKIAkJ
OTE5Nzk0MEEyM0RCQzRFMDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE5Nzk0MDkyM0RCQzRFMDAw
MjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5oICovOyB9OwogCQk5MTk3OTQwQzIzREJDNTAz
MDAyNTc4OTIgLyogX1dLSW5zcGVjdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5NDBCMjNEQkM1MDMwMDI1Nzg5MiAvKiBfV0tJ
bnNwZWN0b3JEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkzMDAzRUZGMjU3OENENjEwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzAwM0VGODI1NzhDNEUzMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
ICovOyB9OworCQk5MzAwM0YwMDI1NzhDRDY1MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMDAzRUZBMjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oICovOyB9OworCQk5MzAwM0YwMTI1NzhDRDY3MDBGMkEzREEgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMDAzRUZDMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oICovOyB9OworCQk5MzAwM0YwRTI1NzhEQTM4MDBGMkEzREEgLyogUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNGMEMyNTc4RDlFRDAwRjJBM0RBIC8qIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJOTMwMDNG
MEYyNTc4REIwNjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMDAzRjA3MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTkzMDAzRjEwMjU3OERCMDgwMEYyQTNEQSAvKiBS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwOTI1NzhEOThDMDBGMkEzREEgLyogUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQk5MzAwM0YxMTI1NzhE
QjBBMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRjA2
MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovOyB9OworCQk5MzAwM0YxMjI1NzhEQjBDMDBGMkEzREEgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNGMEIyNTc4RDlFRDAwRjJBM0RBIC8q
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKKwkJOTMwMDNGMTMyNTc4REIxMjAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwRDI1NzhEOUVFMDBGMkEzREEgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJOTMxOTM1NTMy
NTdBOThFQzAwM0Y2NkQ0IC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTkzNTUxMjU3QTk4RTgw
MDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi87IH07CiAJCTkzMjFE
NTg2MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMjFENTg1MUEzOEVF
M0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJOTMy
MUQ1OEExQTM4RjE5NjAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMjFENTg5MUEzOEYxOTYw
MDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMyMzYxMUUxQjAxNURBODAwRkE5MjMyIC8q
IF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTMyMzYxMUQxQjAxNURBODAwRkE5MjMyIC8qIF9XS092ZXJsYXlT
Y3JvbGxiYXJTdHlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0zNTY4LDggKzM1NzgsNiBAQAogCQk0MTY4NEM0RDI0NjQzQkZBMDAxQ0U4RUQg
LyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzRFMjQ2NDNDODEwMDFDRThFRCAvKiBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTY4NEM0RjI0NjQzRDNGMDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTY4NEM1MDI0
NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE2ODRDNTEyNDY0NTBGRDAwMUNFOEVE
IC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTZDRDc0NTIzRkIxNzhCMDA2NjFEOTkgLyogTUROU1JlZ2lzdGVySWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNRE5TUmVnaXN0ZXJJZGVu
dGlmaWVyLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9NRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkY4MDg2MjQ1QjM5NzQwMEI2OEYwMiAv
KiBMaWJXZWJSVENOZXR3b3JrLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IExp
YldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENOZXR3b3JrLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZG
ODA4OTI0NUM3RkY1MDBCNjhGMDIgLyogTGliV2ViUlRDTmV0d29yay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaWJXZWJSVENOZXR3b3JrLmNwcDsgcGF0aCA9IE5l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDU2Myw2ICs0NTcxLDIyIEBACiAJCTkxOTc5NDA3MjNEQkM0Q0EwMDI1Nzg5MiAv
KiBXZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTE5Nzk0MDkyM0RCQzRFMDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElJbnNwZWN0b3JDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE5Nzk0MEIyM0RCQzUwMzAwMjU3ODkyIC8q
IF9XS0luc3BlY3RvckRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS0luc3BlY3RvckRlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
MDAzRUY3MjU3OEM0RTMwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
MDAzRUY4MjU3OEM0RTMwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRjkyNTc4QzRFNDAwRjJBM0RB
IC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUZBMjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzAwM0VGQjI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzMDAzRUZDMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0VG
RDI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUZFMjU3OENDNEEw
MEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjA2MjU3OEQ5OEIwMEYyQTNEQSAvKiBS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwNzI1NzhEOThCMDBG
MkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzAwM0YwOTI1NzhEOThDMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAz
RjBCMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjBDMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMEQyNTc4RDlFRTAwRjJBM0RB
IC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
MTkzNTUxMjU3QTk4RTgwMDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMxOTM1NTIyNTdBOThFOTAwM0Y2NkQ0IC8qIFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjFE
NTg1MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjFENTg3MUEzOEVFNzQwMDgwNTJC
RSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjFENTg5MUEzOEYxOTYwMDgwNTJCRSAvKiBXS0lt
bWVkaWF0ZUFjdGlvblR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
SW1tZWRpYXRlQWN0aW9uVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYy
NjAsNiArNjI4NCw3IEBACiAJCQkJNTE1QkUxQUUxRDU5MDAzNDAwREQ3QzY4IC8qIEdhbWVwYWQg
Ki8sCiAJCQkJMkRBOTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzExMUI1
QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTkzMDAzRUY2MjU3OEM0NTAwMEYyQTNE
QSAvKiBtZWRpYSAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0MTggLyogUGx1Z2lucyAq
LywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3RlTGF5ZXJUcmVlICovLAog
CQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJzaXRlRGF0YSAqLywKQEAgLTg4MDUs
OCArODgzMCw2IEBACiAJCQkJNDE2ODRDNEYyNDY0M0QzRjAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmNwcCAqLywKIAkJCQk0MTY4NEM0RTI0NjQzQzgxMDAxQ0U4RUQgLyog
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCAqLywKIAkJCQk0MTY4NEM0RDI0NjQzQkZBMDAx
Q0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCi0JCQkJ
NDE2ODRDNTAyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
ICovLAotCQkJCTQxNjg0QzUxMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlLmggKi8sCiAJCQkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcCAqLywKIAkJCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLywKIAkJCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCkBAIC04ODE0LDYgKzg4
MzcsOCBAQAogCQkJCTUyRDVBMUIzMUM1NzQ5RjIwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTUyRDVBMUI0MUM1NzQ5RjIwMERFMzRBMyAvKiBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICovLAogCQkJCTdDNkU3MEY5MThCMkQ0QTAwMEYyNEUy
RSAvKiBXZWJQcm9jZXNzQ29jb2EubW0gKi8sCisJCQkJOTMxOTM1NTIyNTdBOThFOTAwM0Y2NkQ0
IC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCTkzMTkzNTUxMjU3
QTk4RTgwMDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8sCiAJCQkp
OwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTg5NzEs
NiArODk5NiwyMSBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCTkzMDAzRUY2MjU3OEM0NTAwMEYyQTNEQSAvKiBtZWRpYSAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTMwMDNFRkUyNTc4Q0M0QTAwRjJB
M0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5MzAwM0VGQzI1
NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5
MzAwM0VGRDI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4gKi8sCisJCQkJOTMwMDNFRjkyNTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCTkzMDAzRUY4MjU3OEM0RTMwMEYyQTNEQSAvKiBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8sCisJCQkJOTMwMDNFRjcyNTc4QzRFMzAwRjJB
M0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5MzAw
M0VGQTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aCAqLywKKwkJCQk5MzAwM0VGQjI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IG1lZGlhOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTM5Mjg4RTAyMTQwNERGMDAwRUJC
QTMzIC8qIEluZGV4ZWREQiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCkBAIC0xMDQ5Miw2ICsxMDUzMiw5IEBACiAJCQkJMUEwNDNCNUMxMjRENUU5RDAwRkZCRkI1
IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUE4RUZBNkUxMjUyQjg0
MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQThF
RkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlcy5oICovLAorCQkJCTkz
MDAzRjA3MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTMwMDNGMDkyNTc4RDk4QzAwRjJBM0RBIC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5MzAwM0YwNjI1NzhEOThC
MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAq
LywKIAkJCQlDREQ1MzU3NjI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREQ1MzU3NTI0MERERTA3MDBGN0I4QzQgLyogUmVt
b3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCAqLywKIAkJCQlDREQ1MzU3NDI0MERERTA3MDBGN0I4
QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMDU0NSw2
ICsxMDU4OCw5IEBACiAJCQkJMUREMkE2NjEyNTYxMjJGMTAwRkY3QjZGIC8qIFJlbW90ZU1lZGlh
U291cmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkxQUMxMzM4MzE4NTkwQzQ2MDBG
M0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJ
CTFBQzEzMzg0MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2Vz
LmggKi8sCisJCQkJOTMwMDNGMEIyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk5MzAwM0YwQzI1NzhE
OUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
ICovLAorCQkJCTkzMDAzRjBEMjU3OEQ5RUUwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTBGNTk0N0E1MTg3QjUxNzYw
MDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJMEY1OTQ3QTYxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWVzc2FnZXMuaCAqLywKIAkJCQkxREQyQTY2QjI1NjIwMjFFMDBGRjdCNkYgLyogUmVt
b3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTE1NDAsNiAr
MTE1ODYsOSBAQAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBRdWFyYW50aW5lU1BJ
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBDMjI3RTI0NTExMzBBMDBFRDYxNEQgLyogUXVpY2tM
b29rVGh1bWJuYWlsaW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRUU1NzI1MjQw
OUYxNDIwMDIwMDVENiAvKiBRdWlja0xvb2tUaHVtYm5haWxMb2FkZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTkzMDAzRjAxMjU3OENENjcwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNGMTAyNTc4REIwODAwRjJBM0RBIC8qIFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
MDAzRjExMjU3OERCMEEwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdGRDMxODIyMkIzNTE1RTAwOEQwRThC
IC8qIFJlZGlyZWN0U09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3NTEgLyogUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE1ODAsNiAr
MTE2MjksMTAgQEAKIAkJCQkxQTU3MDRGQzFCRTE3NTExMDA4NzRBRjEgLyogUmVtb3RlT2JqZWN0
SW52b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzODAxODU5MEFFNDAwRjNFQzA1
IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUMxMzM4NjE4
NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTMwMDNFRkYyNTc4Q0Q2MTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRjAwMjU3OENENjUwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTMwMDNGMEUyNTc4REEzODAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRjEzMjU3OERCMTIwMEYyQTNE
QSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OTAxODdCM0IzQTAwNDM3ODU3IC8qIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBODE4N0I1MTc2MDA0
Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY1OTQ3OUIxODdCM0I2MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLApAQCAtMTE4ODUsNiArMTE5MzgsNyBAQAogCQkJ
CTFBMUUwOTM0MTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxMkY1ODlEMTJBODgzODgwMDYyOTUzMCAvKiBXZWJQcm90ZWN0
aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MUNDQ0E2MjMxNDg1QUEwMEI2NTlCOSAv
KiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMxOTM1NTMy
NTdBOThFQzAwM0Y2NkQ0IC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE1ODYwRTcxMjMwRjY3RkMwMDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUludGVy
Y2VwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMEFGRkJBMTY1NDIwNDgwMDFC
QTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMDYwRTAx
NjU0MzE3RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTMzNzMsNiArMTM0MjcsNyBAQAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3
NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyN0YyNDUx
MTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUEwQzIyNUUyNDM1NzVDRDAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFp
bExvYWRlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkzMDAzRjBGMjU3OERCMDYwMEYyQTNEQSAv
KiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5QjEyMjlDRTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUQwMzY5QUUyNTY3OTZCOTAwNDQw
MzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEQgLyogUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMzM5NCw2ICsx
MzQ0OSw3IEBACiAJCQkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJB
NjYzMjU2MTI0NkYwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMwNSAvKiBS
ZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5MzAwM0YxMjI1NzhEQjBDMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1OTQ3QTcxODdC
NTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJBNjZFMjU2MjAyMUUwMEZGN0I2RiAvKiBSZW1v
dGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxRDAzNjlBQzI1Njc5Njk5MDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uY3BwCmluZGV4IDNmMzUzMTk0YTMyYzNlNjc5YmNhMjlmYmVhODUw
MzFjOTIxZTRmYzQuLmNmMjgzZWQzNWI1ZjAxM2E3NmJjZTk5ZmM3OWMyNWM1MDJjZGVkM2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCkBAIC00
Niw2ICs0NiwxMCBAQCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbgogewogICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRo
aXMpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6Q3JlYXRlU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyKCk7CisjZW5kaWYKIH0KIAogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Ojp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCBmMmYyMjgyMmM3YjIyM2ZjYTU5Zjk1NTczZDExZGM5OWIx
MDM0ODExLi5lZTNiNDJjOGJlMzYwNzVkZDU0OTcyYTg2ZWI0ZTM2NzQ2MTU0ZjU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Myw2ICs0Myw4IEBACiAjaW5j
bHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzQXNzZXJ0aW9u
LmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVk
aW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1
ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCkBAIC0xOTY5LDYgKzE5NzEsMTggQEAgdm9pZCBXZWJQcm9j
ZXNzOjplbmFibGVWUDlTV0RlY29kZXIoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3M6OmVuc3VyZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fcmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9yZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA9IG1h
a2VVbmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+KCpwYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpKTsKKyAgICAgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqbV9yZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcik7CisgICAgfQorCisgICAgcmV0dXJuICptX3JlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYg
UkVMRUFTRV9MT0dfU0VTU0lPTl9JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
aW5kZXggZTljNDdkYjRjNDQ3YzBmNGFiNjI3YzA5NGI1ZjY4ZGI1NjVhOWE2Yy4uYTA0MTU1MmQx
MTk5MTRjOWNmMjRmZjRjOTEzOWI4NDg2MDg2NTg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCkBAIC0xNDIsNiArMTQyLDEwIEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVyczsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNl
bmRpZgorCiBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3MKIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM2MCw2ICszNjQsMTAgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hyb25vdXNseShjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2Vi
UHJvY2VzcygpOwpAQCAtNjkzLDYgKzcwMSwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92cDlE
ZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZwOVNXRGVjb2RlckVuYWJsZWQg
eyBmYWxzZSB9OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6
dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9yZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyLmNwcAppbmRleCA1YjNlNzAwZTA5NThlMmZiZDU2OTE3ODA0MjcxZGVkYzk0
ZmM1ZTQ5Li42NTA1Njg2YmUxZmE0ZGYyNTZjYmE4NjQyMDQwYTJiZGYxZmZkMzEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlci5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBSZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlcjo6c2V0Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24p
CiAgICAgICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlz
KTsKIH0KIAotdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKK3ZvaWQgUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4m
JiBzb3VyY2UpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKICAgICBzZXRD
b25uZWN0aW9uKHNvdXJjZS0+Y29ubmVjdGlvbigpKTsKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lk
IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdQogICAgIGl0ZXJhdG9yLT52YWx1ZS0+YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7CiB9CiAK
LVJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVm
PFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpSZW1vdGVBdWRpbyhSZWY8V2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiAgICAgOiBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCiAg
ICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
LmgKaW5kZXggNmZiNGJjMzdiOTM4MDE2ZmNlNWM1YzVhYzVhNDM3MDI3ZjE4NmJlNC4uYWUwYTZl
MGZjODlhOTJhZWQxZjg3N2M4NjBhYTZhY2JmZWMwN2ZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
LmgKQEAgLTI5LDggKzI5LDggQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSAiV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgpAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAg
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKICAgICB+UmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIoKTsKIAotICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZT4mJik7CiAgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKTsKQEAgLTYzLDEzICs2MywxMyBAQCBwcml2YXRlOgogICAg
IGNsYXNzIFJlbW90ZUF1ZGlvIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAg
ICAgcHVibGljOgotICAgICAgICBleHBsaWNpdCBSZW1vdGVBdWRpbyhSZWY8UmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisgICAgICAgIGV4cGxpY2l0IFJlbW90ZUF1ZGlvKFJlZjxXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKIAogICAgICAgICB2b2lkIHNldFN0b3JhZ2Uo
Y29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CiAgICAgICAgIHZvaWQgYXVk
aW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVp
bnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICAgICAg
UmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAgICAgICBXZWJD
b3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKICAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2J1ZmZlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY5
YzJhYWQwOTE5NjJlMzU5NmVmODkzYjM1OWMxZDFkNjg0YWUzNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMTAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmgiCi0KLSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCi0jaW5j
bHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKLSNpbmNsdWRlICJVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oIgotI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMu
aCIKLSNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKLSNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
Ci0jaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1l
ZGlhU291cmNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcg
bmFtZXNwYWNlIFBBTDsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1SZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KQotewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2Uu
dHlwZSgpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykpOwotICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5
UmVmKCkpOwotICAgIHNvdXJjZS0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9y
Q2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhzb3VyY2UtPmlkZW50aWZpZXIoKSwgZGV2aWNl
LCBzb3VyY2UtPmRldmljZUlESGFzaFNhbHQoKSwgY29uc3RyYWludHMpLCBbc291cmNlID0gc291
cmNlLmNvcHlSZWYoKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8m
JiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgewotICAgICAgICBpZiAoIXN1Y2NlZWRl
ZCkgewotICAgICAgICAgICAgc291cmNlLT5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgc291cmNlLT5zZXROYW1l
KFN0cmluZyB7IHNldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSk7Ci0gICAgICAgIHNvdXJjZS0+
c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwotICAgICAgICBzb3VyY2UtPnNldENhcGFi
aWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykpOwotICAgICAgICBzb3VyY2UtPnNldEFzUmVh
ZHkoKTsKLSAgICB9KTsKLSAgICByZXR1cm4gc291cmNlOwotfQotCi1zdGF0aWMgaW5saW5lIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZUZyb21EZXZpY2VUeXBlKENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSkKLXsKLSAgICBzd2l0Y2ggKGRldmljZVR5cGUp
IHsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6Ci0gICAg
ICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzsKLSAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNjcmVlbjoKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OldpbmRvdzoKLSAgICAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVv
OwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKLSAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIH0KLSAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
Tm9uZTsKLX0KLQotUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShzb3VyY2VUeXBlRnJv
bURldmljZVR5cGUoZGV2aWNlVHlwZSksIFdURk1vdmUobmFtZSksIFN0cmluZzo6bnVtYmVyKGlk
ZW50aWZpZXIudG9VSW50NjQoKSksIFdURk1vdmUoaGFzaFNhbHQpKQotICAgICwgbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCi0gICAgLCBtX21hbmFnZXIobWFuYWdlcikKLSAgICAsIG1fZGV2aWNl
VHlwZShkZXZpY2VUeXBlKQotICAgICwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpCi17Ci0gICAgc3dpdGNoIChtX2RldmljZVR5cGUpIHsKLSAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5k
aWYKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpD
YW1lcmE6Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNv
dXJjZSgqdGhpcyk7Ci0jZW5kaWYKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpXaW5kb3c6Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6U3BlYWtlcjoKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVu
a25vd246Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLX0KLQotUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQotewotICAg
IHN3aXRjaCAobV9kZXZpY2VUeXBlKSB7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpNaWNyb3Bob25lOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS51
bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6Ci0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlk
ZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKLSNlbmRpZgotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoK
LSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgotICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgfQotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OndoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCi17
Ci0gICAgaWYgKG1faXNSZWFkeSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKFdURk1vdmUobV9l
cnJvck1lc3NhZ2UpKTsKLSAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Ci19Ci0K
LXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1l
c3NhZ2UpCi17Ci0gICAgbV9pc1JlYWR5ID0gdHJ1ZTsKLSAgICBtX2Vycm9yTWVzc2FnZSA9IFdU
Rk1vdmUoZXJyb3JNZXNzYWdlKTsKLSAgICBpZiAobV9jYWxsYmFjaykKLSAgICAgICAgbV9jYWxs
YmFjayhtX2Vycm9yTWVzc2FnZSk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0QXNSZWFkeSgpCi17Ci0gICAgbV9pc1JlYWR5ID0gdHJ1ZTsKLSAgICBpZiAobV9jYWxs
YmFjaykKLSAgICAgICAgbV9jYWxsYmFjayh7IH0pOwotfQotCi1SZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmUoKQotewotICAgIHN3aXRjaCAo
dHlwZSgpKSB7Ci0gICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKLSAg
ICAgICAgcmV0dXJuIGNsb25lVmlkZW9Tb3VyY2UoKTsKLSAgICBjYXNlIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvOgotICAgICAgICBicmVhazsKLSAgICBjYXNlIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6Ok5vbmU6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IH0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZVZpZGVvU291cmNlKCkKLXsKLSAgICBhdXRvIGlk
ZW50aWZpZXIgPSBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAg
ICBpZiAoIWNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Q2xvbmUgeyBtX2lkZW50aWZpZXIsIGlkZW50aWZpZXIgfSwgMCkpCi0gICAgICAg
IHJldHVybiAqdGhpczsKLQotICAgIGF1dG8gY2xvbmVTb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoaWRlbnRpZmllciwgZGV2aWNlVHlwZSgpLCBTdHJpbmcg
eyBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX21h
bmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOwotICAgIGNsb25lU291cmNlLT5z
ZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgeyBtX3NldHRpbmdzIH0pOwot
ICAgIG1fbWFuYWdlci5hZGRTb3VyY2UoY2xvbmVTb3VyY2UuY29weVJlZigpKTsKLSAgICByZXR1
cm4gY2xvbmVTb3VyY2U7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0
Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRp
ZXMpCi17Ci0gICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7Ci19Ci0K
LXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCi17Ci0gICAgYXV0byBjaGFuZ2VkID0gbV9zZXR0
aW5ncy5kaWZmZXJlbmNlKHNldHRpbmdzKTsKLSAgICBtX3NldHRpbmdzID0gV1RGTW92ZShzZXR0
aW5ncyk7Ci0gICAgbm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMoY2hhbmdlZCk7Ci19
Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZh
aWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBzaXplKQotewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIGF1ZGlvU2FtcGxl
c0F2YWlsYWJsZSh0aW1lLCBkYXRhLCBkZXNjcmlwdGlvbiwgc2l6ZSk7Ci19Ci0KLXZvaWQgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3Rl
VmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCi17Ci0gICAgQVNTRVJUKHR5cGUoKSA9PSBUeXBl
OjpWaWRlbyk7Ci0KLSAgICBzZXRJbnRyaW5zaWNTaXplKHJlbW90ZVNhbXBsZS5zaXplKCkpOwot
Ci0gICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Np
b24tPnBpeGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCi0gICAgICAg
IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUo
cmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOwotCi0gICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgYXV0byBzYW1wbGVSZWYgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5j
cmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUpOwotICAgIGlmICghc2FtcGxlUmVmKSB7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoKnNhbXBsZVJlZik7
Ci19Ci0KLUlQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y29ubmVj
dGlvbigpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCi0gICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICAgICAgcmV0
dXJuICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKTsKLSNlbmRpZgotICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCi17Ci0gICAgY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0Rh
dGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBt
X2lkZW50aWZpZXIgfSwgMCk7Ci19Ci0KLWJvb2wgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pCi17Ci0gICAg
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpTZXRTaG91bGRBcHBseVJvdGF0aW9uIHsgbV9pZGVudGlmaWVyLCBzaG91bGRBcHBseVJvdGF0
aW9uIH0sIDApOwotICAgIHJldHVybiB0cnVlOwotfQotCi1jb25zdCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXBh
YmlsaXRpZXMoKQotewotICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKLX0KLQotdm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNv
bXBsZXRpb25IYW5kbGVyKQotewotICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFj
a3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAvLyBGSVhNRTogVXNl
IHNlbmRBc3luY1dpdGhSZXBseS4KLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkFwcGx5Q29uc3RyYWludHMgeyBtX2lkZW50aWZp
ZXIsIGNvbnN0cmFpbnRzIH0sIDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKLXsKLSAgICBzZXRTZXR0aW5ncyhXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Moc2V0dGluZ3MpKTsKLQotICAgIGF1dG8gY2FsbGJh
Y2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOwotICAg
IGNhbGxiYWNrKHsgfSk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBw
bHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBl
cnJvck1lc3NhZ2UpCi17Ci0gICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3Ry
YWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7Ci0gICAgY2FsbGJhY2soQXBwbHlDb25zdHJhaW50
c0Vycm9yIHsgV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2Up
IH0pOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6Omhhc0VuZGVkKCkKLXsK
LSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OkVuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKLSAgICBtX21hbmFnZXIucmVtb3ZlU291
cmNlKG1faWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2FwdHVyZVN0b3BwZWQoKQotewotICAgIHN0b3AoKTsKLSAgICBoYXNFbmRlZCgpOwotfQotCi12
b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQotewotICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKTsKLSAgICBoYXNFbmRlZCgpOwotfQot
Ci12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BCZWluZ09ic2VydmVkKCkKLXsK
LSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlJlcXVlc3RUb0VuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKLX0KLQotdm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQot
ewotICAgIHN3aXRjaCAodHlwZSgpKSB7Ci0gICAgY2FzZSBUeXBlOjpBdWRpbzoKLSAgICAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKG9ic2VydmVyKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBUeXBlOjpWaWRlbzoKLSAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBUeXBlOjpOb25lOgotICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICB9Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM4OTBiZWIxYjAzMTNkNGUyMzAyOTUyOWY1
MWQxMTE3MGU5YjViOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTExICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
Ci0jaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllci5oPgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotCi1uYW1lc3BhY2UgSVBD
IHsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKLWNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7Ci1z
dHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKLWNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOwotfQotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI7Ci0KLWNs
YXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MgPSBmYWxzZSk7Ci0gICAgflJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKLQotICAgIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLSAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
KTsKLQotICAgIHZvaWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiYpOwotCi0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGNvbnN0IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOwotICAgIHZvaWQgYXBwbHlDb25z
dHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1l
c3NhZ2UpOwotCi0gICAgdm9pZCBjYXB0dXJlU3RvcHBlZCgpOwotICAgIHZvaWQgY2FwdHVyZUZh
aWxlZCgpIGZpbmFsOwotCi0gICAgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJD
b3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsKLSAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVk
aW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk7
Ci0KLXByaXZhdGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKLQotICAgIC8vIFJlYWx0
aW1lTWVkaWFTb3VyY2UKLSAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwotICAg
IHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKLSAgICBib29sIGlzQ2FwdHVyZVNvdXJj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2b2lkIGJlZ2luQ29uZmlndXJh
dGlvbigpIGZpbmFsIHsgfQotICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsg
fQotICAgIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIC8qIHNob3VsZEFwcGx5Um90
YXRpb24gKi8pIGZpbmFsOwotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJikgZmluYWw7Ci0g
ICAgdm9pZCByZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImKSBmaW5hbDsKLSAgICB2b2lkIHN0b3BCZWlu
Z09ic2VydmVkKCkgZmluYWw7Ci0gICAgdm9pZCBoYXNFbmRlZCgpIGZpbmFsOwotICAgIGNvbnN0
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7
IHJldHVybiBtX3NldHRpbmdzOyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWw7Ci0gICAgdm9pZCB3aGVuUmVh
ZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBmaW5hbDsKLSAgICBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2RldmljZVR5cGU7IH0KLSAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmUo
KSBmaW5hbDsKLQotICAgIHZvaWQgZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOwotICAg
IHZvaWQgc2V0QXNSZWFkeSgpOwotICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik7Ci0gICAgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IGNsb25lVmlkZW9Tb3VyY2UoKTsKLQotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLSAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ciYgbV9tYW5hZ2VyOwotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMgbV9jYXBhYmlsaXRpZXM7Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIG1fc2V0dGluZ3M7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFu
c2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKLSAgICBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlIG1fZGV2aWNlVHlwZSB7IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlVua25vd24gfTsKLQotICAgIERlcXVlPEFwcGx5Q29uc3RyYWludHNI
YW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzOwotICAgIGJvb2wgbV9z
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNSZWFkeSB7
IGZhbHNlIH07Ci0gICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwotICAgIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IDA4M2Y4MjlhZjc1YWU5OWY2YzI4
Y2Q2NzBiOTBhNjY3Nzg5ZjM3ZTMuLjU4YzgwNmI1ZmFkZjUyNGQwZThiOTRjMjE5YjcwZGRhMDY3
ZDBkOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMzAsMTAgKzMwLDEwIEBACiAKICNpbmNs
dWRlICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIgogI2luY2x1ZGUgIkdQVVByb2Nl
c3NDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgog
I2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVk
ZSAiV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGVw
cmVjYXRlZEdsb2JhbFNldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oPgpAQCAtODUsNyArODUsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpzZXR1cENhcHR1cmVQcm9jZXNzZXMoYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUAogICAg
ICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXREaXNwbGF5Q2Fw
dHVyZUZhY3RvcnkobV9kaXNwbGF5RmFjdG9yeSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3Vy
Y2UpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogewogICAgIGlmIChzb3VyY2UtPnR5cGUo
KSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykKICAgICAgICAgbV9yZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CkBAIC0xNTgs
NyArMTU4LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU28KICAgICAgICAgRGVwcmVjYXRlZEds
b2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsK
ICNlbmRpZgogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsK
KyAgICByZXR1cm4gV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwg
KmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIpOwogfQogCiB2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNldFNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKQEAgLTE3Niw3ICsxNzYsNyBAQCBDYXB0dXJlU291
cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVW
aWRlb0NhcHR1cmVTbwogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiVmlk
ZW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRlZCJfcyB9OwogI2VuZGlm
CiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwg
KmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIpOworICAgIHJl
dHVybiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3Ry
YWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlcik7CiB9CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpAQCAtMTkxLDcgKzE5MSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9y
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNh
cHR1CiAgICAgaWYgKCFjb25zdHJhaW50cykKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJl
dHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWlu
dHMsIHsgfSwgeyB9LCBtX21hbmFnZXIpOworICAgIHJldHVybiBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgeyB9LCBtX21hbmFn
ZXIpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IGIwYjE5ODI5MDU0MjJkZTcyOTU0MmFi
YjNlZTA5YmM3ZTMzMGQwMmQuLjVlNDRhNThiNDRmODQ5YjI4ZjgzZjBiZDZmOWQ5NWIwMWVlYTYw
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIFJlbW90ZVZpZGVv
U2FtcGxlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTsKK2NsYXNzIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CiBjbGFzcyBXZWJQ
cm9jZXNzOwogCiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9j
ZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTU3LDcgKzU3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQogICAgIHZvaWQgc2V0dXBDYXB0
dXJlUHJvY2Vzc2VzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIGJvb2wgc2hv
dWxkQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRlb0luVUlQ
cm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRD
YXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKTsKIAotICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShSZWY8V2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CiAgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgpAQCAtMTI4LDkg
KzEyOCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWls
ZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFN0cmluZyYmLCBTdHJp
bmcmJik7CiAKLSAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmVWaWRl
b1NvdXJjZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJik7CisgICAgUmVmPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lVmlkZW9Tb3VyY2UoV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSYpOwogCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+PiBtX3NvdXJjZXM7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgUmVmPFdlYlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+PiBtX3NvdXJjZXM7CiAgICAgV2ViUHJvY2VzcyYgbV9w
cm9jZXNzOwogICAgIE5vT3BDYXB0dXJlRGV2aWNlTWFuYWdlciBtX25vT3BDYXB0dXJlRGV2aWNl
TWFuYWdlcjsKICAgICBBdWRpb0ZhY3RvcnkgbV9hdWRpb0ZhY3Rvcnk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJmYzk3ZDRmNDhkOWNiN2VkYTcxODU3NzI0Nzdh
MjQ0NDNhOWZkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMCwwICsxLDMxMCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAi
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYUNvbnN0cmFpbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
V2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNw
YWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYg
Y29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQor
eworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBXZWJSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2Uu
dHlwZSgpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykpOworCisgICAgc291cmNlLT5jb25uZWN0aW9uKCktPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHNvdXJjZS0+aWRl
bnRpZmllcigpLCBkZXZpY2UsIHNvdXJjZS0+ZGV2aWNlSURIYXNoU2FsdCgpLCBjb25zdHJhaW50
cyksIFtzb3VyY2UgPSBzb3VyY2UuY29weVJlZigpXShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVy
cm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzKSB7CisgICAg
ICAgIGlmICghc3VjY2VlZGVkKSB7CisgICAgICAgICAgICBzb3VyY2UtPmRpZEZhaWwoV1RGTW92
ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBzb3VyY2UtPnNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsK
KyAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAgICAg
IHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CisgICAgICAg
IHNvdXJjZS0+c2V0QXNSZWFkeSgpOworICAgIH0pOworICAgIHJldHVybiBzb3VyY2U7Cit9CisK
K3N0YXRpYyBpbmxpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlRnJvbURl
dmljZVR5cGUoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKQoreworICAgIHN3
aXRjaCAoZGV2aWNlVHlwZSkgeworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZToKKyAgICAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgorICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6VmlkZW87CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpT
cGVha2VyOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybiBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpOb25lOworfQorCitXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBt
YW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCisgICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShkZXZpY2VUeXBlKSwgV1RGTW92ZShu
YW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZShoYXNo
U2FsdCkpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fbWFuYWdlciht
YW5hZ2VyKQorICAgICwgbV9kZXZpY2VUeXBlKGRldmljZVR5cGUpCisgICAgLCBtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK3sKKyAgICBzd2l0
Y2ggKG1fZGV2aWNlVHlwZSkgeworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0
aXZlU291cmNlKCp0aGlzKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1
cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyNlbmRpZgorICAgICAgICBicmVh
azsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgfQorfQorCitXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+V2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZSgpCit7CisgICAgc3dpdGNoIChtX2RldmljZVR5cGUpIHsKKyAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyNl
bmRpZgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkNhbWVyYToKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1cmVGYWN0b3J5KCkudW5zZXRBY3Rp
dmVTb3VyY2UoKnRoaXMpOworI2VuZGlmCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6V2luZG93OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpVbmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK3Zv
aWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAobV9pc1JlYWR5KQorICAg
ICAgICByZXR1cm4gY2FsbGJhY2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkpOworICAgIG1fY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBtX2lzUmVh
ZHkgPSB0cnVlOworICAgIG1fZXJyb3JNZXNzYWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwor
ICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICBtX2NhbGxiYWNrKG1fZXJyb3JNZXNzYWdlKTsK
K30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRBc1JlYWR5KCkKK3sK
KyAgICBtX2lzUmVhZHkgPSB0cnVlOworICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICBtX2Nh
bGxiYWNrKHsgfSk7Cit9CisKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjbG9uZSgpCit7CisgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICBj
YXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAgICByZXR1cm4gY2xv
bmVWaWRlb1NvdXJjZSgpOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW86CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybiAq
dGhpczsKK30KKworUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFdlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OmNsb25lVmlkZW9Tb3VyY2UoKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIGlmICghY29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDbG9u
ZSB7IG1faWRlbnRpZmllciwgaWRlbnRpZmllciB9LCAwKSkKKyAgICAgICAgcmV0dXJuICp0aGlz
OworCisgICAgYXV0byBjbG9uZVNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZShpZGVudGlmaWVyLCBkZXZpY2VUeXBlKCksIFN0cmluZyB7IG1fc2V0dGlu
Z3MubGFiZWwoKS5zdHJpbmcoKSB9LCBkZXZpY2VJREhhc2hTYWx0KCksIG1fbWFuYWdlciwgbV9z
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgY2xvbmVTb3VyY2UtPnNldFNldHRpbmdz
KFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7IG1fc2V0dGluZ3MgfSk7CisgICAgbV9tYW5h
Z2VyLmFkZFNvdXJjZShjbG9uZVNvdXJjZS5jb3B5UmVmKCkpOworICAgIHJldHVybiBjbG9uZVNv
dXJjZTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRDYXBhYmls
aXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKK3sK
KyAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKK30KKwordm9pZCBX
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKK3sKKyAgICBhdXRvIGNoYW5nZWQgPSBtX3NldHRpbmdz
LmRpZmZlcmVuY2Uoc2V0dGluZ3MpOworICAgIG1fc2V0dGluZ3MgPSBXVEZNb3ZlKHNldHRpbmdz
KTsKKyAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2VydmVycyhjaGFuZ2VkKTsKK30KKwor
dm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFp
bGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90
IHNpemUpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgYXVkaW9TYW1wbGVz
QXZhaWxhYmxlKHRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBzaXplKTsKK30KKwordm9pZCBXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShSZW1v
dGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBBU1NFUlQodHlwZSgpID09IFR5
cGU6OlZpZGVvKTsKKworICAgIHNldEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxlLnNpemUoKSk7
CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAg
ICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0
ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2Zl
clNlc3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24t
PmNyZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZSk7CisgICAgaWYgKCFzYW1wbGVSZWYpIHsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVm
KTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
b25uZWN0aW9uKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKyAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAgICAg
ICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpOworI2VuZGlmCisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBjb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0YXJ0UHJv
ZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgY29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVj
aW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKworYm9vbCBXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3Rh
dGlvbikKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRpb24geyBtX2lkZW50aWZpZXIsIHNo
b3VsZEFwcGx5Um90YXRpb24gfSwgMCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2NvbnN0IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFdlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpCit7CisgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVz
OworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWlu
dHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFwcGx5Q29u
c3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9wZW5kaW5nQXBw
bHlDb25zdHJhaW50c0NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIC8vIEZJWE1FOiBVc2Ugc2VuZEFzeW5jV2l0aFJlcGx5LgorICAgIGNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25z
dHJhaW50cyB7IG1faWRlbnRpZmllciwgY29uc3RyYWludHMgfSwgMCk7Cit9CisKK3ZvaWQgV2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQoreworICAg
IHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyhzZXR0aW5n
cykpOworCisgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxs
YmFja3MudGFrZUZpcnN0KCk7CisgICAgY2FsbGJhY2soeyB9KTsKK30KKwordm9pZCBXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZh
aWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBhdXRvIGNhbGxi
YWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKKyAg
ICBjYWxsYmFjayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFp
bnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkgfSk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6aGFzRW5kZWQoKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVyIH0s
IDApOworICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UobV9pZGVudGlmaWVyKTsKK30KKwordm9p
ZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCit7CisgICAg
c3RvcCgpOworICAgIGhhc0VuZGVkKCk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCit7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2Fw
dHVyZUZhaWxlZCgpOworICAgIGhhc0VuZGVkKCk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQoreworICAgIGNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6UmVxdWVzdFRvRW5k
IHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnJlcXVlc3RUb0VuZChPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgc3dpdGNoICh0
eXBlKCkpIHsKKyAgICBjYXNlIFR5cGU6OkF1ZGlvOgorICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlOjpyZXF1ZXN0VG9FbmQob2JzZXJ2ZXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5
cGU6OlZpZGVvOgorICAgICAgICBzdG9wQmVpbmdPYnNlcnZlZCgpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc5ZTY0NWM0MzQ0YTQwOWNhNjU5MjdhMzYxMmI2Yzg1ODFkMmVkOGUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
PFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBD
b25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb247CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOworc3RydWN0IE1lZGlh
Q29uc3RyYWludHM7CitjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOworCitjbGFzcyBXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzID0gZmFs
c2UpOworICAgIH5XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CisKKyAgICBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9CisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCk7CisK
KyAgICB2b2lkIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYmKTsKKworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25zdCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdl
KTsKKworICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKKyAgICB2b2lkIGNhcHR1cmVGYWlsZWQo
KSBmaW5hbDsKKworICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6
UmVtb3RlVmlkZW9TYW1wbGUmJik7CisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFi
bGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOworCitw
cml2YXRlOgorICAgIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisKKyAgICAvLyBSZWFsdGlt
ZU1lZGlhU291cmNlCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRp
b24oKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0K
KyAgICBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0
aW9uICovKSBmaW5hbDsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOworICAg
IHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJikgZmluYWw7CisgICAgdm9pZCBzdG9wQmVpbmdP
YnNlcnZlZCgpIGZpbmFsOworICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKKyAgICBjb25zdCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyBy
ZXR1cm4gbV9zZXR0aW5nczsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOworICAgIHZvaWQgd2hlblJlYWR5
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7CisgICAgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9kZXZpY2VUeXBlOyB9CisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkg
ZmluYWw7CisKKyAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKKyAgICB2
b2lkIHNldEFzUmVhZHkoKTsKKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiBjbG9uZVZpZGVvU291cmNlKCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIm
IG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
IG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyBtX3NldHRpbmdzOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CisgICAgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZSBtX2RldmljZVR5cGUgeyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpVbmtub3duIH07CisKKyAgICBEZXF1ZTxBcHBseUNvbnN0cmFpbnRzSGFu
ZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrczsKKyAgICBib29sIG1fc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUmVhZHkgeyBm
YWxzZSB9OworICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKKyAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCg==
</data>
<flag name="commit-queue"
          id="432644"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415428</attachid>
            <date>2020-12-04 10:36:08 -0800</date>
            <delta_ts>2020-12-04 12:09:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201204103607.patch</filename>
            <type>text/plain</type>
            <size>149810</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDMzZTNhZjVkNGY3MmUxNDlhYTYyNTBi
Y2M4YmNlODgxODhlNTM5OTEuLjA1MWY0Yjk2ODIwYTFiNmQ5ZjMxY2NiMjYxNTRiNmNkYWJhNzNk
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTItMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVj
aFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUdXJuIG9uIFdl
YlNwZWVjaCBvbiBpT1Mgc2ltdWxhdG9yIGJ5IGRlZmF1bHQgZm9yIHRlc3RpbmcuCisKKyAgICAg
ICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6
CisKIDIwMjAtMTItMDMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkb3B0IEZBTExCQUNLX1BMQVRGT1JNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzdhNGUxNWEzNTlkNTFmNWEz
NmFlYWVjMjk5Zjc1ZGQ2MDQzOTY3My4uYTE2M2MxYTgwYzhiNjA4MzY2MGJkNzU5ODQ2MGY1MTM3
NjQ2MzA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEyLTA0ICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0
dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1lZGlhU291cmNlIG1lbWJlciBvZiBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpm
aW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBEZWxldGVkLgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDQgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEZsb2F0IHBvc2l0
aW9uaW5nIG5lZWRzIHRvIGhhcHBlbiB3aGlsZSBidWlsZGluZyB0aGUgbGluZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAxOGQ5MDEzMTE1Y2M4NGZmMTI5MmNhYWE2YmVhYTQwNTdkM2EyZjFhLi42ZDEwMmIwMDRhZWIz
Y2Q2MGI1MGI3OTJhM2ZiYTAzZDAwOTRmZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NCBAQAor
MjAyMC0xMi0wNCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgYXVkaW8gY2FwdHVyZSBpcyBkb25lIGluIHdl
YiBwcm9jZXNzLiBGb3Igc3BlZWNoIHJlY29nbml0aW9uLCByZWNvZ25pemVyIGlzIGluIFVJIHBy
b2Nlc3MuIFRoZXJlZm9yZSwKKyAgICAgICAgVUkgcHJvY2VzcyBuZWVkcyB0byBhc2sgd2ViIHBy
b2Nlc3MgdG8gY2FwdHVyZSBhdWRpbyBhbmQgc2VuZCBiYWNrIGRhdGEuIFRvIGltcGxlbWVudCB0
aGlzLCB0aGlzIHBhdGNoIGFkZGVkOgorICAgICAgICAtIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6IHN1YmNsYXNzIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgYW5kIGNvbm5lY3QgdG8g
YSByZW1vdGUgCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgKG93bmVkIGJ5
IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlKSBpbiBhIGRp
ZmZlcmVudCBwcm9jZXNzLgorICAgICAgICAtIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOiBtYW5hZ2UgYWxsIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VzLgorICAgICAgICAtIFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlLgorICAgICAgICAtIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOiBvd24gYW5kIG1vbml0b3IgYSBsb2NhbCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlLgorCisgICAgICAgIE9yaWdpbmFsIFdlYktpdDo6
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSBpcyByZW5hbWVkIHRvIFdlYktpdDo6V2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS4gV2Ugc2hvdWxkCisgICAgICAgIHJlcGxhY2UgV2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZSwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIsIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkgd2l0aAorICAgICAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciwgUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIgbGF0ZXIgdG8gcmVkdWNlIAorICAgICAgICByZWR1bmRhbnQgY29kZS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6flJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnQp
OgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQpOgorICAgICAgICAoV2Vi
S2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBw
bHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXR0aW5ncyBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpjbG9u
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktp
dDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6On5SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cik6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNh
bmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpjbG9uZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2Vi
S2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAg
KiBTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAg
ICAgICogU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
OiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojpzb3VyY2VUeXBlRnJvbURldmljZVR5cGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291
cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OndoZW5SZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnNldEFzUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9u
ZVZpZGVvU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c2V0U2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNob3VsZEFw
cGx5Um90YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0Vu
ZCk6CisgICAgICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50
aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjYXB0dXJlRGV2aWNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y29uc3RyYWludHMgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZUZyb21DbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1v
dGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFw
cGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZCk6CisgICAgICAgICog
U2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgor
ICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291
cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxl
UmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZXRSZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVj
aFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpl
bnN1cmVSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OmVuc3VyZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRl
b0ZhY3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1
cmVTb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwLgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0Ojpzb3VyY2VU
eXBlRnJvbURldmljZVR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6fldlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp3
aGVuUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmNsb25lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3Rl
VmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJv
dGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6aGFzRW5k
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0
dXJlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNhcHR1cmVGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oLgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjppZGVudGlmaWVy
IGNvbnN0KToKKwogMjAyMC0xMi0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBPbmx5IHRoZSBmaXJzdCB3aGVlbCBldmVudCBpbiBhIGdlc3R1cmUg
c2hvdWxkIGJlIGNhbmNlbGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZDRk
YWEyYjI5MWRlNTYyMWQ4NzkzYmM2YWMzMmNjN2VjOGQxNDJmMi4uNTc5YWE1M2JjOWJkODEwOGRi
ZmZiZjQ3Nzc2ZGVkMTcwM2U0YTMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAg
LTc4OCw2ICs3ODgsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6CiAgICAgV2ViS2l0TGVn
YWN5OgogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBXZWJLaXQ6CisgICAgICAiUExBVEZPUk0o
SU9TX0ZBTUlMWV9TSU1VTEFUT1IpIjogdHJ1ZQogICAgICAgZGVmYXVsdDogZmFsc2UKICAgICBX
ZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGQ1NDQ4
Mzc4Yjk5NDFjNDcxOTg5MDY2NTBhMzU5NTY1ZTA2MWFiNzUuLmVkYzNjOGZkNzAzMTY4NzE4ZGJj
NzMxMDBmZmU3MjMxNjg0ZDc2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTMyNyw2ICsxMzI3
LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaAogICAgIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAogICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKKyAgICBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgKICAgICBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaAogICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGM5M2I2ZjM4YmM2MjM4ZGExZGJhODY4ZTI5
ZTFlNWIxZTZmNjZiNmIuLjJlNTZhOTE4ZTM5OWZkNzAzZmUyZmNkNDNkNzMxMDk3MmYzOGFkZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMzQsOSArMzQsMTAgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxs
YmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2spCi17CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpCit7CiAgICAgT3B0aW9u
YWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAgICBhdXRvIGRldmljZXMgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CiAgICAgZm9yIChh
dXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1MiwxOSBAQCBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hS
ZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0
dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNhcHR1cmVEZXZpY2UpIHsKLSAgICAg
ICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2Fw
dHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBj
YXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAgIGF1dG8gcmVzdWx0ID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOwotICAgIGlm
ICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgcmVzdWx0LmVycm9y
TWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0
YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFD
YWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIFdURk1vdmUoc291cmNlKSk7
Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92
ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgpKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVOVVNFRF9QQVJBTShkYXRhQ2FsbGJh
Y2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNhbGxiYWNrKTsKICNlbmRpZgotfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCmluZGV4
IDczODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5ZjRlMGEuLjY5ZjlhODhiMjYxZTcx
ZjY2ZWMwMGJiOWU3MWRhMGYzYWM4MTk0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5o
CkBAIC00MiwxMCArNDIsMTYgQEAgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CiBjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0g
ZGVmYXVsdDsKICAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0
OwogICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpPjsKICAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rp
b248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKLSAgICBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJik7CisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2sm
JiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+
IGZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYpOworI2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggYmZjNWJlMTAzNGJlM2MxMmQy
Y2FkZWMzZTEyMTk0M2VhYjg5OTMyMy4uMTc2MzFiNmExN2JjYTgzNWEzZDIyNDdlYzMxMTI3NGFi
YjZmZTM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTgw
LDYgKzgwLDcgQEAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6flNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoKQogICAgIG1fc291cmNlLT5zdG9wKCk7CiB9CiAK
Ky8vIE1heSBiZSBjYWxsZWQgb24gbWFpbiB0aHJlYWQgb3IgYmFja2dyb3VuZCB0aHJlYWQuCiB2
b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWls
YWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBs
ZUNvdW50KQogewogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMyOWUy
NjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li5mNjQ5YTc4NjU5ZmUzOWJjZDdlNDIyNTMyYjU1MzJk
OTEwYjkyYjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcApAQCAtNTQsMTUgKzU0LDIyIEBAIHZvaWQgU3BlZWNoUmVjb2duaXpl
cjo6cmVzZXQoKQogCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICByZXNldCgp
OworICAgIC8vIE1ha2Ugc3VyZSBubyBvbmdvaW5nIHJlcXVlc3QuCisgICAgQVNTRVJUKCFtX3Nv
dXJjZSk7CiAKICAgICBtX2NsaWVudElkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIG1fZGVs
ZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpKTsKK30KKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSAgICBzdGFydEludGVybmFsKCk7Cit2b2lkIFNwZWVj
aFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgaWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorewor
ICAgIHN0YXJ0KGlkZW50aWZpZXIpOworICAgIHNldFNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpOwog
fQogCi12b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQordm9pZCBTcGVlY2hS
ZWNvZ25pemVyOjpzZXRTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQog
ewogICAgIGF1dG8gZGF0YUNhbGxiYWNrID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyld
KGNvbnN0IGF1dG8mIHRpbWUsIGNvbnN0IGF1dG8mIGRhdGEsIGNvbnN0IGF1dG8mIGRlc2NyaXB0
aW9uLCBhdXRvIHNhbXBsZUNvdW50KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCkBAIC05MCw5
ICs5NywxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQogICAgICAg
ICAgICAgbV9zb3VyY2UgPSBudWxscHRyOwogICAgIH07CiAKLSAgICBtX3NvdXJjZSA9IG1ha2VV
bmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVy
LCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjaykpOwor
ICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+
KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0
ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShzb3VyY2UpKTsKIH0KIAorI2VuZGlmCisKIHZvaWQg
U3BlZWNoUmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdl
bmVyYXRlRmluYWxSZXN1bHQpCiB7CiAgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKaW5kZXgg
ZTZmMTNmZWU4NGE1MzNhZjBmMDRlMDc2OWMxYWUwOTViZTViZmYzZi4uMzVlYmZlZTQ1NTNmNjI2
OTYwNjgzMWQyYTkyYTBkZTY1Y2ZiYzgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtMzksMTcgKzM5LDIzIEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2Fs
bGJhY2smJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflNwZWVjaFJlY29nbml6ZXIoKSA9IGRlZmF1
bHQ7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
KTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Rh
cnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgUmVmPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYpOworI2VuZGlmCiAgICAgZW51bSBjbGFzcyBTaG91bGRHZW5lcmF0
ZUZpbmFsUmVzdWx0IHsgTm8sIFllcyB9OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcChT
aG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVz
KTsKIAogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJ
ZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCByZXNldCgpOwotICAgIHZvaWQgc3Rh
cnRJbnRlcm5hbCgpOwogICAgIHZvaWQgc3RvcEludGVybmFsKCk7CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorICAgIHZvaWQgc2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYm
KTsKKyNlbmRpZgorCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOwogICAgIERlbGVnYXRlQ2FsbGJhY2sg
bV9kZWxlZ2F0ZUNhbGxiYWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY3MmExNjYwYTVkOWZmODAxM2I2OWFiYmI2
YTNhYWE3OGI5YmUxZjEuLjcxYmJlYzFmODYwYTRiODBmMTUwM2MwMGMzZTZmYTcwZmU5ODg5OGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTIzNjI3LDEzICsyMzYyNyw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OwotCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29j
b2EgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJKTsKLQkJ
CXBhdGggPSBjb2NvYTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTk0NkQz
NzI3MUQ2Q0IyMjUwMDc3MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKApAQCAtMjU2NjQsNyArMjU2NTcsNiBAQAogCQlBQTJBNUFCNzE2QTQ4
NUE0MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKLQkJCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8sCiAJCQkJ
QUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRs
ICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dT
cGVlY2hTeW50aGVzaXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDg4ZTE1MWIxMjIyNGZl
YmNjODkzYjUzZDY4NWUzZWMxYjAxMGNkNDUuLjgwMmI3Y2YxZWU0M2QyNzlkODE0NzdmYzQ3MjAw
MDhlMTA1NjQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtNTAsNiArNTAsNyBAQCBzZXQoV2Vi
S2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lu
cy9OZXRzY2FwZS94MTEiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvV2Vic2l0ZURhdGEiCisgICAgIiR7V0VCS0lU
X0RJUn0vU2hhcmVkL21lZGlhIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2VzcyIKICAgICAi
JHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQyIKQEAgLTEwMyw2ICsxMDQsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1Nw
ZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTg1LDYgKzE4Nyw5IEBAIHNldChXZWJLaXRfTUVT
U0FHRVNfSU5fRklMRVMKIAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2Vp
dmVyCiAKKyAgICBTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAgICBT
aGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwogICAgIFVJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5CiAgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBlNTFjYWVkMjFlMTg2Y2YyYTE3M2Ni
OGEzMzMxMmJlMGIzMDRiYjAwLi43MjYwNTczMGYxY2NjZDk4M2U0NDExNGEwNzkzNzQwODkwMDcw
MGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC05MSw2ICs5MSw4IEBAICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNz
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvSFRUUFNVcGdyYWRlL0hUVFBTVXBn
cmFkZUxpc3QudHh0CiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL1dlYkNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvU2hhcmVkL21lZGlhL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KICQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBlODhiMmMyMWZhNzE3Yzc3ZDIzMDJjYjUxOGJhNGFkM2VkZTI1NzRhLi4wNWZi
M2VmNjVlYmNlMzg1YTI5ODYyZjE2NDBhOTQzMGQzZjFhNDBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEzMSw2ICsxMzEsOSBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
UHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVz
c2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2Fn
ZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmgKQEAgLTIyNCw2ICsyMjcsOSBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVNv
dXJjZVByb3h5TWVzc2FnZXNSZXBsaQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdp
c3RyeU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1Jl
cGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDY4MTQ4NTVmZjlkMjNhZjBh
NzdlNWZkYTZkZmQyZmQ1NTA5NzZmNjkuLmY5YzZmZGQyM2FlNjhiZGJlY2M1MDJlNTEwYmM4NzEw
NDU4ZGE0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzOCw2ICsxMzgsOCBA
QCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlTaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkgXAogCVNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIgXAogCVNoYXJlZC9XZWJDb25uZWN0aW9uIFwKKwlTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIgXAorCVNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciBcCiAJVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgXAogCVVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCiAJ
VUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ3ZGJiNjYzNGE0NWZiZTMwMTI5ZWZlYjI1MzlmMzE1YmZmZDk4ODEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHAKQEAgLTAsMCArMSwzMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNs
dWRlIDxXZWJDb3JlL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtQXVkaW9EYXRhLmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlh
U291cmNlCisgICAgOiBwcml2YXRlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2Vy
dmVyCisgICAgLCBwcml2YXRlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIHB1YmxpYyBTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZTo6Q2xpZW50CisjZW5kaWYKK3sKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlPiYmIHNvdXJjZSwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQor
ICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICAgICAsIG1fc291cmNlKFdU
Rk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9u
KSkKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1
ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZT4odGhpcykpKQorI2VuZGlmCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRk
T2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZl
cigqdGhpcyk7CisgICAgfQorCisgICAgflJlYWx0aW1lTWVkaWFTb3VyY2UoKQorICAgIHsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyNlbmRp
ZgorICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7Cisg
ICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCisgICAgdm9p
ZCBzdGFydCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+c3RhcnQoKTsKKyAgICB9CisKKyAg
ICB2b2lkIHN0b3AoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0b3AoKTsKKyAgICB9CisK
KyAgICB2b2lkIHJlcXVlc3RUb0VuZCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+cmVxdWVz
dFRvRW5kKCp0aGlzKTsKKyAgICB9CisKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzRXJyb3I+IGFwcGx5Q29uc3RyYWludHMoY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCisgICAgeworICAgICAgICBy
ZXR1cm4gbV9zb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMpOworICAgIH0KKwor
ICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc291cmNlLT5zZXR0aW5ncygpOworICAg
IH0KKworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpCisgICAg
eworICAgICAgICByZXR1cm4gbV9zb3VyY2UtPmNsb25lKCk7CisgICAgfQorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9y
aW5nQnVmZmVyLnN0b3JhZ2UoKSk7CisgICAgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9p
ZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2Fw
dHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZCht
X2lkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZW1vdGVTb3VyY2VTdG9wcGVkKG1faWRlbnRpZmllciksIDApOworICAgIH0KKwor
ICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29u
c3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgV2ViQ29yZTo6
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1l
cykgZmluYWwKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChtX2Rlc2Ny
aXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24u
cGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1EZXNjcmlwdGlv
bjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0g
KldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9u
LnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAgICAgICAgIG1fbnVt
YmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAg
ICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigp
LCBtX251bWJlck9mRnJhbWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChpczxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOworICAgICAgICBtX3JpbmdCdWZm
ZXIuc3RvcmUoZG93bmNhc3Q8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEp
Lmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgICAgICB1aW50
NjRfdCBzdGFydEZyYW1lOworICAgICAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICAgICAgbV9y
aW5nQnVmZmVyLmdldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cisg
ICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRp
bWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAg
ICAgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRh
KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BB
UkFNKG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09B
KQorCisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFs
CisgICAgeworICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlm
IChzdG9yYWdlKQorICAgICAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhX
SU5ET1dTKQorICAgICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxz
ZQorICAgICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7CisjZW5kaWYKKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
U2V0U3RvcmFnZShtX2lkZW50aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92
ZShoYW5kbGUpLCAgZGF0YVNpemUgfSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyks
IDApOworICAgIH0KKworI2VuZGlmCisKKyAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpIGZp
bmFsCisgICAgeworI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgICAgICBhdXRvIGJ1ZmZlclNp
emUgPSBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkg
LyA1MDsKKyAgICAgICAgaWYgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigp
LnByZWZlcnJlZEJ1ZmZlclNpemUoKSA+IGJ1ZmZlclNpemUpCisgICAgICAgICAgICBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1
ZmZlclNpemUpOworICAgICAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24o
KS5zZXRDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQsIFdlYkNv
cmU6OlJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAg
UmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIFJlZjxJUEM6
OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMg
eyAwIH07CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQVJpbmdCdWZmZXIg
bV9yaW5nQnVmZmVyOworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rl
c2NyaXB0aW9uIHsgfTsKKyNlbmRpZgorfTsKKworUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikK
KyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQoreworfQorCitSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6flJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKK30KKworI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OmdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2Fu
ZGJveEhhbmRsZUZvclRDQ0QsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5k
bGVGb3JNaWNyb3Bob25lKQoreworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yVENDRCkpOworICAg
IGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWls
ZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciB0Y2NkIik7CisgICAgZWxzZQorICAg
ICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NELT5jb25zdW1lKCk7CisKKyAgICBtX3NhbmRi
b3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1v
dmUoc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVu
c2lvbkZvck1pY3JvcGhvbmUpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBz
YW5kYm94IGV4dGVuc2lvbiBmb3IgbWljcm9waG9uZSIpOworICAgIGVsc2UKKyAgICAgICAgbV9z
YW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+Y29uc3VtZSgpOworfQorCit2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCit7CisgICAg
aWYgKG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uRm9yVENDRC0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Qg
PSBudWxscHRyOworICAgIH0KKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bo
b25lKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPnJldm9rZSgp
OworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gbnVsbHB0cjsKKyAg
ICB9Cit9CisKKyNlbmRpZgorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRT
b3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOworICAgIHN3
aXRjaCAoY2FwdHVyZURldmljZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIFdURk1v
dmUoaGFzaFNhbHQpLCAmY29uc3RyYWludHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICAgICAgc291cmNl
T3JFcnJvciA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURl
dmljZSwgV1RGTW92ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7CisgICAgICAgIGlmIChzb3Vy
Y2VPckVycm9yKQorICAgICAgICAgICAgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5tb25p
dG9yT3JpZW50YXRpb24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAg
IHNvdXJjZU9yRXJyb3IgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5kaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJj
ZShjYXB0dXJlRGV2aWNlLCAmY29uc3RyYWludHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgYm9vbCBzdWNj
ZWVkZWQgPSAhIXNvdXJjZU9yRXJyb3I7CisgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50czsK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Cisg
ICAgaWYgKHN1Y2NlZWRlZCkgeworICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iu
c291cmNlKCk7CisgICAgICAgIHNldHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOworICAgICAg
ICBjYXBhYmlsaXRpZXMgPSBzb3VyY2UtPmNhcGFiaWxpdGllcygpOworICAgICAgICBBU1NFUlQo
IW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgICAgIG1fc291cmNlcy5hZGQo
aWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlPihpZGVudGlmaWVyLCBX
VEZNb3ZlKHNvdXJjZSksIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpKTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVz
c2FnZSk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZWVkZWQsIGludmFsaWRDb25zdHJh
aW50cywgV1RGTW92ZShzZXR0aW5ncyksIFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7Cit9CisKK3Zv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc291cmNlcy5y
ZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OnN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAg
ICAgICAgc291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit1aW50NjRfdCBSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjbG9uZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZp
ZXIpCit7CisgICAgYXV0byBvcmlnaW5hbFNvdXJjZSA9IG1fc291cmNlcy5nZXQob3JpZ2luYWxJ
ZGVudGlmaWVyKTsKKyAgICBpZiAoIW9yaWdpbmFsU291cmNlKQorICAgICAgICByZXR1cm47CisK
KyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhuZXdJZGVudGlmaWVyKSk7CisgICAgbV9z
b3VyY2VzLmFkZChuZXdJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2U+
KG5ld0lkZW50aWZpZXIsIG9yaWdpbmFsU291cmNlLT5jbG9uZSgpLCBtX2Nvbm5lY3Rpb24uY29w
eVJlZigpKSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNldFNob3Vs
ZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQoreworICAgIGlmIChhdXRvIHNvdXJj
ZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RvcCgpOwor
fQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIGF1dG8gc291cmNl
ID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoY29u
c3RyYWludHMpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6QXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChp
ZGVudGlmaWVyLCBzb3VyY2UtPnNldHRpbmdzKCkpKTsKKyAgICBlbHNlCisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNvbnN0cmFp
bnRzRmFpbGVkKGlkZW50aWZpZXIsIHJlc3VsdC0+YmFkQ29uc3RyYWludCwgcmVzdWx0LT5tZXNz
YWdlKSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlcXVlc3RUb0Vu
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+cmVxdWVzdFRvRW5kKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUyY2IzM2FhMTI0NzVhNmEwYTA5MTgy
MTFkNTAxZTFhYmQzZmYwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9PcmllbnRhdGlv
bk5vdGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczsKK3N0cnVj
dCBNZWRpYUNvbnN0cmFpbnRzOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJUEM6OkNvbm5lY3Rpb24mKTsKKyAg
ICB+UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKworcHJpdmF0ZToKKyAgICAvLyBNZXNz
YWdlcworICAgIHZvaWQgYWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYmKT4mJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBjbG9uZVNvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZpZXIpOworICAgIHZvaWQg
c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWlu
dHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMmKTsKKyAgICB2b2lkIHJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9O
UykKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJiYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKKyAgICB2b2lkIHJldm9rZVNhbmRi
b3hFeHRlbnNpb25zKCk7CisjZW5kaWYKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgor
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIuCisgICAgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2
NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CisKKyAgICBjbGFz
cyBSZWFsdGltZU1lZGlhU291cmNlOworICAgIGZyaWVuZCBjbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hN
YXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworICAgIFdlYkNvcmU6Ok9yaWVudGF0
aW9uTm90aWZpZXIgbV9vcmllbnRhdGlvbk5vdGlmaWVyIHsgMCB9OworCisjaWYgRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94
RXh0ZW5zaW9uRm9yVENDRDsKKyAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94
RXh0ZW5zaW9uRm9yTWljcm9waG9uZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wOWVkYmI5MGRlYzNmYzc5MmU5ZTJhNTJhMGZjM2M0MDU3ZjQxMjY0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0NCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEFkZFNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGlu
dmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNl
dHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxp
dGllcykgQXN5bmMKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworCisgICAgQ2xvbmVTb3VyY2UoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgb3JpZ2luYWxJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBuZXdJZGVudGlmaWVyKQorICAg
IFNldFNob3VsZEFwcGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQorICAgIEFwcGx5Q29u
c3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpCisgICAgUmVx
dWVzdFRvRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIEdyYW50U2FuZGJveEV4
dGVuc2lvbnMoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZUZvclRDQ0QsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hF
eHRlbnNpb25IYW5kbGVGb3JNaWNyb3Bob25lKQorICAgIFJldm9rZVNhbmRib3hFeHRlbnNpb25z
KCkKKyNlbmRpZgorfQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTQ0
NmU5MzA4ZDBiODgwMzhhNjVlYzUwNWY3MGIyZWEzZjRmYjk2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
QEAgLTAsMCArMSwzMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RhdGljIGlubGluZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlIGRldmljZVR5cGUpCit7CisgICAgc3dpdGNoIChkZXZpY2VUeXBlKSB7CisgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87CisgICAg
Y2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6Ok5vbmU7Cit9CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
PiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1
cmVEZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBjb25zdHJh
aW50cywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKK30KKworUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2Fw
dHVyZURldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBPcHRpb25hbDxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcj4gb3JpZ2luYWxJZGVudGlmaWVyKQorICAgIDogV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShzb3VyY2VUeXBlRnJvbURldmljZVR5cGUoY2FwdHVy
ZURldmljZS50eXBlKCkpLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVy
LnRvVUludDY0KCkpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQorICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQorICAgICwgbV9j
YXB0dXJlRGV2aWNlKGNhcHR1cmVEZXZpY2UpCisgICAgLCBtX2NvbnN0cmFpbnRzKGNvbnN0cmFp
bnRzKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8
V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlPihudWxscHRyKSkpCisjZW5kaWYKK3sKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgc3dpdGNoIChtX2NhcHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5
KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3Rv
cnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAg
IGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoIW9yaWdp
bmFsSWRlbnRpZmllcikgeworICAgICAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgqdGhpcyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX21hbmFnZXItPmFkZFNvdXJjZUZyb21DbG9u
ZSgqdGhpcywgKm9yaWdpbmFsSWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKK3sKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIHN3aXRjaCAobV9jYXB0dXJlRGV2aWNlLnR5cGUoKSkgeworICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKKyAgICAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0
dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAg
ICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVv
Q2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgor
ICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNwZWFrZXI6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpV
bmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisjZW5kaWYKKwor
ICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlz
KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0Rh
dGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNz
YWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0IHsgbV9pZGVudGlmaWVyIH0p
OworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRh
KCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2Fn
ZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVudGlmaWVyIH0pOwor
fQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBu
dW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisKKyAg
ICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkp
IHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8g
Y3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2UiKTsKKyAgICB9CisKKyAgICBh
dXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3Jp
bmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5n
QnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2Up
OworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkp
OworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxv
Y2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVu
aXF1ZTxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZy
YW1lcyk7Cit9CisKKyNlbmRpZgorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJl
bW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVkKCkKK3sKKyAgICBz
dG9wKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAobV9p
c1JlYWR5KQorICAgICAgICByZXR1cm4gY2FsbGJhY2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkp
OworICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpzZXRBc1JlYWR5KCkKK3sKKyAgICBtX2lzUmVhZHkgPSB0cnVl
OworICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICBtX2NhbGxiYWNrKHsgfSk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3Nh
Z2UpCit7CisgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1v
dmUoZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFj
ayhtX2Vycm9yTWVzc2FnZSk7Cit9CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
PiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZSgpCit7CisgICAgc3dpdGNoICh0eXBl
KCkpIHsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAg
ICByZXR1cm4gY2xvbmVWaWRlb1NvdXJjZSgpOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6QXVkaW86CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICBjYXNlIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorfQorCitSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSgp
Cit7CisgICAgaWYgKCFtX21hbmFnZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjbG9uZVZpZGVvU291cmNlIG1hbmFnZXIgZG9lcyBub3QgZXhpc3Qi
KTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIGF1dG8gaWRlbnRpZmllciA9
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAg
IGF1dG8gbGFiZWwgPSBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCk7CisgICAgYXV0byBjbG9u
ZVNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShpZGVudGlm
aWVyLCAqbV9tYW5hZ2VyLCBtX2NhcHR1cmVEZXZpY2UsIG1fY29uc3RyYWludHMsIFN0cmluZyB7
IGxhYmVsIH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9pZGVudGlmaWVyKSk7CisgICAgY2xvbmVT
b3VyY2UtPnNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7
IG1fc2V0dGluZ3MgfSk7CisgICAgcmV0dXJuIGNsb25lU291cmNlOworfQorCit2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQoreworICAgIG1fY2FwYWJpbGl0
aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYmIHNldHRpbmdzKQoreworICAgIGF1dG8gY2hhbmdlZCA9IG1fc2V0dGluZ3MuZGlmZmVyZW5j
ZShzZXR0aW5ncyk7CisgICAgbV9zZXR0aW5ncyA9IFdURk1vdmUoc2V0dGluZ3MpOworICAgIG5v
dGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOworfQorCit2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRp
bWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVp
bnQ2NF90IGVuZEZyYW1lKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9idWZm
ZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJCdWZmZXIgZm9yIHJlbW90ZSBzb3VyY2UgaXMgbnVs
bCIpOworICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmlu
Z0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAg
ICBtX3JpbmdCdWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0
aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1fYnVm
ZmVyLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTSh0aW1lKTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworICAgIFVOVVNF
RF9QQVJBTShzdGFydEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZW5kRnJhbWUpOworI2VuZGlm
Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBs
ZSYmIHJlbW90ZVNhbXBsZSkKK3sKKyAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsK
KworICAgIHNldEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxlLnNpemUoKSk7CisKKyAgICBpZiAo
IW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxG
b3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbiA9IFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShy
ZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNl
c3Npb24pIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNy
ZWF0ZU1lZGlhU2FtcGxlKHJlbW90ZVNhbXBsZSk7CisgICAgaWYgKCFzYW1wbGVSZWYpIHsKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVmKTsK
K30KKworI2VuZGlmCisKK2Jvb2wgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2hvdWxk
QXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgaWYgKG1fbWFu
YWdlcikgeworICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpTZXRTaG91bGRBcHBseVJvdGF0aW9uIHsgbV9pZGVudGlmaWVyLCBzaG91
bGRBcHBseVJvdGF0aW9uIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29u
c3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFw
cGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFt
X21hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWlu
dHNDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX21h
bmFnZXItPnNlbmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNv
bnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9KTsKK30KKwordm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGNvbnN0IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit7CisgICAgc2V0
U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzKHNldHRpbmdzKSk7
CisgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3Mu
dGFrZUZpcnN0KCk7CisgICAgY2FsbGJhY2soeyB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0
cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9w
ZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKKyAgICBjYWxsYmFj
ayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZN
b3ZlKGVycm9yTWVzc2FnZSkgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c3RvcEJlaW5nT2JzZXJ2ZWQoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1f
bWFuYWdlci0+c2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlcXVl
c3RUb0VuZCB7IG1faWRlbnRpZmllciB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpyZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIHN3aXRjaCAo
dHlwZSgpKSB7CisgICAgY2FzZSBUeXBlOjpBdWRpbzoKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6cmVxdWVzdFRvRW5kKG9ic2VydmVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBU
eXBlOjpWaWRlbzoKKyAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRmNTljODA1MzAyOTFiNjQwMDExYjg1NTcxYWQ5NWEyZWQwMWY2YmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmgKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKK2NsYXNzIENBUmluZ0J1ZmZlcjsKK2NsYXNzIEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ7CitjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7CisjZW5kaWYKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworCitj
bGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gY3JlYXRlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMmLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgflJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKCkgY29uc3QgeyByZXR1
cm4gbV9jYXB0dXJlRGV2aWNlOyB9OworICAgIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJhaW50czsgfTsKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6
OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVz
QXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0
YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90ZUNhcHR1cmVGYWls
ZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6OlJlbW90ZVZp
ZGVvU2FtcGxlJiYpOworI2VuZGlmCisKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVk
ZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9p
ZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmlu
ZyYmIGVycm9yTWVzc2FnZSk7CisgICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2Fn
ZSk7CisgICAgdm9pZCBzZXRBc1JlYWR5KCk7CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKTsKKyAgICB2b2lkIHNldFNl
dHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKKworcHJpdmF0
ZToKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
JiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIE9wdGlvbmFsPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyPiBvcmlnaW5hbElkZW50aWZpZXIgPSBXVEY6Om51
bGxvcHQpOworICAgIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVv
U291cmNlKCk7CisgICAgCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAg
IHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5n
RGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9
CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAgICBib29sIGlzQ2FwdHVyZVNvdXJj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHNldFNob3VsZEFwcGx5
Um90YXRpb24oYm9vbCkgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImKSBm
aW5hbDsKKyAgICB2b2lkIHN0b3BCZWluZ09ic2VydmVkKCkgZmluYWw7CisgICAgdm9pZCBhcHBs
eUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0
cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOworICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiBjbG9uZSgpIGZpbmFsOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI+IG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBtX3NldHRpbmdzOworICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgbV9jYXB0
dXJlRGV2aWNlOworICAgIFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsK
KworICAgIERlcXVlPEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0
cmFpbnRzQ2FsbGJhY2tzOworICAgIGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsKKyAgICBTdHJp
bmcgbV9lcnJvck1lc3NhZ2U7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBt
X2NhbGxiYWNrOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwor
I2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWU1YjY4YjYzNTk5NTFmY2FiZmI0OTk2
MjExZmVkYjU0NWFkM2JjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTU2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIFNob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zIHNob3VsZEhh
bmRsZVNhbmRib3hFeHRlbnNpb25zKQorICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCisg
ICAgLCBtX3Nob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zKHNob3VsZEhhbmRsZVNhbmRib3hF
eHRlbnNpb25zKQoreworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjphZGRTb3VyY2UoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1
dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKCFtX3NvdXJj
ZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwg
bWFrZVdlYWtQdHIoc291cmNlKSk7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKSAm
JiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIGlmICghbV9oYXNHcmFudGVkU2FuZGJveEV4
dGVuc2lvbnMgJiYgbV9zaG91bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyA9PSBTaG91bGRIYW5k
bGVTYW5kYm94RXh0ZW5zaW9uczo6WWVzKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBoYW5kbGVGb3JUQ0NEOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRBdWRp
dFRva2VuKCksIGhhbmRsZUZvclRDQ0QpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgaGFuZGxlRm9yTWljcm9waG9uZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9z
LCBoYW5kbGVGb3JNaWNyb3Bob25lKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OkdyYW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9yVENDRCwg
aGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5z
aW9ucyA9IHRydWU7CisgICAgfQorI2VuZGlmCisKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UgeyBpZGVudGlmaWVy
LCBzb3VyY2UuY2FwdHVyZURldmljZSgpLCBzb3VyY2UuZGV2aWNlSURIYXNoU2FsdCgpLCBzb3Vy
Y2UuY29uc3RyYWludHMoKSB9LCAgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyks
IGlkZW50aWZpZXJdKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYg
c2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgYXV0byBzb3VyY2UgPSBt
X3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpOworICAgICAgICBpZiAoIXNvdXJjZSkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgeworICAgICAgICAgICAgc291
cmNlLT5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBzb3VyY2UtPnNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3Mu
bGFiZWwoKS5zdHJpbmcoKSB9KTsKKyAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3Zl
KHNldHRpbmdzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2Fw
YWJpbGl0aWVzKSk7CisgICAgICAgIHNvdXJjZS0+c2V0QXNSZWFkeSgpOworICAgIH0pOworfQor
Cit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2VGcm9tQ2xv
bmUoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKG1f
c291cmNlcy5jb250YWlucyhvcmlnaW5hbElkZW50aWZpZXIpKTsKKyAgICBhdXRvIGlkZW50aWZp
ZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRy
KHNvdXJjZSkpOworCisgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OkNsb25lU291cmNlIHsgb3JpZ2luYWxJZGVudGlmaWVyLCBpZGVudGlmaWVyIH0pOworfQor
Cit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9
IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fc291cmNlcy5nZXQoaWRlbnRpZmll
cikgPT0gJnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisg
ICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkgJiYgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lv
bnMpIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94
RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0KKyNlbmRpZgorCisgICAgc2VuZChNZXNzYWdlczo6
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW92ZVNvdXJjZSB7IGlkZW50aWZpZXIgfSk7
Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaXBjSGFuZGxl
LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJj
ZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnNldFN0b3JhZ2UoaXBjSGFuZGxl
LmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVp
bnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIGlmIChhdXRvIHNv
dXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVtb3Rl
QXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBl
bmRGcmFtZSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJl
bW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50
aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9p
ZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291cmNlU3RvcHBlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKK30KKwordWludDY0X3QgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklE
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9
IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJh
aW50c1N1Y2NlZWRlZChzZXR0aW5ncyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwg
U3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0
KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RG
TW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShtZXNzYWdlKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGNkZGNlNmU5MTdlYTAyNzM5YmJmMTYwZTk1MTFlNmJiY2QyZTJhNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllczsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKK3N0cnVjdCBNZWRp
YUNvbnN0cmFpbnRzOworCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CisKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgSVBDOjpNZXNz
YWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBl
bnVtIGNsYXNzIFNob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zIDogYm9vbCB7IE5vLCBZZXMg
fTsKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJUEM6OkNvbm5lY3Rpb24m
LCBTaG91bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyA9IFNob3VsZEhhbmRsZVNhbmRib3hFeHRl
bnNpb25zOjpZZXMpOworICAgIHZvaWQgYWRkU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UmKTsKKyAgICB2b2lkIGFkZFNvdXJjZUZyb21DbG9uZShSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
cmVtb3ZlU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAgICB2b2lk
IHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVt
b3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7
CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3RyaW5nJiYsIFN0cmluZyYm
KTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxl
JiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVj
dGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRf
dCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZT4+IG1fc291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zIHsg
ZmFsc2UgfTsKKyAgICBTaG91bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyBtX3Nob3VsZEhhbmRs
ZVNhbmRib3hFeHRlbnNpb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21l
ZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJiYjA1MjFhZDk5MTU0OGU3ZDVmMGM5Njc4ODdiZTU1MDhkOGNlOTEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDQwIEBACisjIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2Fn
ZXMgLT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFu
ZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNj
cmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYKKworICAgIFJlbW90ZUF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVp
bnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNhcHR1cmVG
YWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICBSZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCisKKyAgICBBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKKyAgICBBcHBseUNvbnN0cmFpbnRz
RmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFN0cmluZyBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcgbWVzc2FnZSkKK30KKworI2VuZGlmCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IDRlYTRhZmJkNjlmMTgwZDc4ZTU5YmZhZTMyNWM0ZWY2NGY0NDkyMDYu
LjI0MjllNDRlZWJkNDljMWYyNDhkMDBjZDE1MTEwYjMzM2M3ODY4MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtMjc3LDYgKzI3NywxMCBAQCBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1h
dGlvbi5jcHAgQG5vLXVuaWZ5CiAKIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAK
IAorU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorU2hhcmVkL21l
ZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCitTaGFyZWQvbWVkaWEvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFVJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNz
UHJveHkuY3BwCiBVSVByb2Nlc3MvQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVy
LmNwcAogVUlQcm9jZXNzL0RldmljZUlkSGFzaFNhbHRTdG9yYWdlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IDUwODczOGJjMjFhZjg2NjM3NmNmZWViNTlmZjg0Y2U0NmNlMjYxNmIuLjRm
MDdmMDBiYjljMTIzNWY3OTAzNjdiOWQ5ZDA5ZjFmODkzNGUxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKQEAgLTU2NywxMCArNTY3LDEwIEBAIFdlYlByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2Vi
UGF5bWVudENvb3JkaW5hdG9yQ29jb2EubW0KIAogV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nl
c3Npb25NYW5hZ2VyLm1tCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmNwcAotV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAog
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKIFdlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KK1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVu
dFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2YzMyYzU0OGEw
YTA5YWIwMmJjMTQ1MzQ1MjQ0Li5iOTcwZjExMTI4NGMxN2Y0YTZhNDE4YmMxZjM3ZTIwZjU5MzJk
Mjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuY3BwCkBAIC05Myw2ICs5MywxOSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgog
ICAgICAgICB9KTsKICAgICB9CiAKKyAgICBtX3JlY29nbml6ZXItPnJlc2V0KCk7CisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gc291cmNlT3JFcnJvciA9IG1fcmVhbHRpbWVN
ZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKCk7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKSB7Cisg
ICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICBzZW5k
VXBkYXRlKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
OkF1ZGlvQ2FwdHVyZSwgc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllciwg
c291cmNlT3JFcnJvci5zb3VyY2UoKSk7CisgICAgcmV0dXJuOworI2VuZGlmCisKICAgICBtX3Jl
Y29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAppbmRleCBhN2Y3NmQzOGVl
NTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li4xYTQ2YzE1OGM3Y2YyZjg0M2ZmMTFmNmZm
MjEzYmZhZDQ5OThmOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTU3LDYgKzU3LDExIEBAIHB1YmxpYzoKICAgICB2b2lk
IGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIpOwogICAgIHZvaWQgaW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
dXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uID0gRnVuY3Rpb248V2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoKT47CisgICAgdm9pZCBzZXRSZWFsdGltZU1lZGlhU291
cmNlQ3JlYXRlRnVuY3Rpb24oUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYgZnVu
Y3Rpb24pIHsgbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBXVEZNb3ZlKGZ1
bmN0aW9uKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lv
bkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CiAgICAgdm9p
ZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIpOwpAQCAtNzUsNiArODAsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3JlcXVlc3Rz
OwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9wZXJtaXNzaW9uQ2hl
Y2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcj4gbV9y
ZWNvZ25pemVyOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247
CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTdkOWNkZmU1NTM1YzI3YzQ1MDRmMDEw
YTZlZGY4ZTRjNWUzY2E2YS4uMmQ1OGQyNmFmMDRiNzdjMmRhNmMzOWM1NGFhYzY0N2JmYTcwNzJi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0z
Nyw2ICszNyw5IEBACiAjaW5jbHVkZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgor
I2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCkBAIC0xNzAyLDggKzE3MDUsOCBAQCBQ
QUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgpIGNvbnN0CiAKIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNwZWVjaFJl
Y29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRp
ZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0aW9uU2VydmVyLmlzTmV3
RW50cnkpOworICAgIEFTU0VSVCghbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlu
cyhpZGVudGlmaWVyKSk7CisgICAgYXV0byYgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKS5pdGVyYXRv
ci0+dmFsdWU7CiAgICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdlID0gbnVsbHB0cjsKICAgICBm
b3IgKGF1dG8qIHBhZ2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlmIChwYWdlICYmIHBhZ2UtPndl
YlBhZ2VJRCgpID09IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsNyArMTcxOCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBtYWtlVW5pcXVl
PFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlm
aWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBh
dXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNwZWVjaFJlY29nbml0aW9u
U2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29u
bmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFn
ZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMTcyMyw3ICsxNzI2LDMwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAKICAg
ICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24ob3JpZ2lu
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7Ci0gICAgYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZh
bHVlKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25p
dGlvblNlcnZlcik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHNwZWVjaFJlY29n
bml0aW9uU2VydmVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHdlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFn
ZSldKCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1
cmVTb3VyY2VPckVycm9yIHsgIldlYlByb2Nlc3NQcm94eSBpcyBpbnZhbGlkIiB9OworCisgICAg
ICAgIGlmICghd2Vha1BhZ2UgfHwgd2Vha1BhZ2UtPnByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlv
SW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VP
ckVycm9yIHsgIlBhZ2UgaXMgaW52YWxpZCBvciB1c2luZyBHUFUgcHJvY2VzcyBmb3IgY2FwdHVy
ZSIgfTsKKworICAgICAgICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgICAgIGlmICghY2FwdHVyZURl
dmljZSkKKyAgICAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZp
Y2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgYXV0byYgc291cmNlTWFuYWdlciA9IHdlYWtUaGlzLT5lbnN1cmVSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworICAgICAgICBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzIGNvbnN0cmFpbnRzOworICAgICAgICBjb25zdHJhaW50cy5pc1ZhbGlkID0gdHJ1ZTsK
KyAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y3JlYXRlKHNvdXJjZU1hbmFnZXIsICpjYXB0dXJlRGV2aWNlLCBjb25zdHJhaW50
cywgU3RyaW5nIHsgY2FwdHVyZURldmljZS0+bGFiZWwoKSB9LCAiU3BlZWNoUmVjb2duaXRpb24i
KSB9OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7CisjZW5kaWYKKyAg
ICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJl
Y29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlm
aWVyKQpAQCAtMTczMyw2ICsxNzU5LDIwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVuCiAgICAg
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYgV2ViUHJvY2Vzc1Byb3h5OjplbnN1cmVSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpCit7CisgICAgaWYgKCFtX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKSB7Cisg
ICAgICAgIG1fcmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPigqY29ubmVjdGlvbigpKTsKKyAgICAgICAg
YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqbV9yZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcik7CisgICAgfQorCisgICAgcmV0dXJuICptX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGMxMGIz
OTQ4ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLmUxMWM3YjE4YjhlODg2ZWQzMjk3
MjBkZDBmNzU0ZDg4NWY0Yjg2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7
CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI7CisjZW5kaWYKKwogZW51bSBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJU
eXBlIHsgfTsKIHR5cGVkZWYgUmVmQ291bnRlcjxGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJU
eXBlPiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI7CiB0eXBlZGVmIEZvcmVncm91bmRXZWJQ
cm9jZXNzQ291bnRlcjo6VG9rZW4gRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbjsKQEAgLTUwNSw2
ICs1MDksOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGVzdHJv
eVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmll
cik7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlciYgZW5zdXJlUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNl
bmRpZgogCiAgICAgdm9pZCBzeXN0ZW1CZWVwKCk7CiAgICAgCkBAIC02NDMsNiArNjUwLDkgQEAg
cHJpdmF0ZToKIAogICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1h
cDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1f
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fcmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggOGUwZGJjYjg4NTliMjY0YzU2MjNiOTQxMjc2YjI4M2NlZDFjZjM1YS4uY2M4
YTZkZmY4MGMzNTEyODU4ZmZhZWUwZjJiNTc4YmE2ODBlMGUxNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA0LDYgKzE0MDQsMTYg
QEAKIAkJOTE5Nzk0MDgyM0RCQzRDQjAwMjU3ODkyIC8qIFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJh
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5
NDA3MjNEQkM0Q0EwMDI1Nzg5MiAvKiBXZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmggKi87IH07
CiAJCTkxOTc5NDBBMjNEQkM0RTAwMDI1Nzg5MiAvKiBBUElJbnNwZWN0b3JDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5NDA5MjNEQkM0
RTAwMDI1Nzg5MiAvKiBBUElJbnNwZWN0b3JDbGllbnQuaCAqLzsgfTsKIAkJOTE5Nzk0MEMyM0RC
QzUwMzAwMjU3ODkyIC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTk3OTQwQjIzREJDNTAzMDAyNTc4OTIgLyog
X1dLSW5zcGVjdG9yRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5MzAwM0VGRjI1NzhDRDYxMDBGMkEzREEgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMwMDNFRjgyNTc4QzRFMzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaCAqLzsgfTsKKwkJOTMwMDNGMDAyNTc4Q0Q2NTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzAwM0VGQTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaCAqLzsgfTsKKwkJOTMwMDNGMDEyNTc4Q0Q2NzAwRjJBM0RBIC8qIFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0VGQzI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaCAqLzsgfTsKKwkJOTMwMDNGMEUyNTc4REEzODAwRjJBM0RBIC8qIFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRjBDMjU3OEQ5RUQwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkz
MDAzRjBGMjU3OERCMDYwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzAwM0YwNzI1NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk5MzAwM0YxMDI1NzhEQjA4MDBGMkEzREEg
LyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNGMDkyNTc4RDk4QzAwRjJBM0RBIC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJOTMwMDNGMTEy
NTc4REIwQTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAw
M0YwNjI1NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaCAqLzsgfTsKKwkJOTMwMDNGMTIyNTc4REIwQzAwRjJBM0RBIC8qIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRjBCMjU3OEQ5RUQwMEYyQTNE
QSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CisJCTkzMDAzRjEzMjU3OERCMTIwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNGMEQyNTc4RDlFRTAwRjJBM0RBIC8qIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CisJCTkzMTkz
NTUzMjU3QTk4RUMwMDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE5MzU1MTI1N0E5
OEU4MDAzRjY2RDQgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OwogCQk5
MzIxRDU4NjFBMzhFRTNDMDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIxRDU4NTFB
MzhFRTNDMDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmggKi87IH07CiAJ
CTkzMjFENThBMUEzOEYxOTYwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIxRDU4OTFBMzhG
MTk2MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMjM2MTFFMUIwMTVEQTgwMEZBOTIz
MiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMjM2MTFEMUIwMTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVy
bGF5U2Nyb2xsYmFyU3R5bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMzU2OCw4ICszNTc4LDYgQEAKIAkJNDE2ODRDNEQyNDY0M0JGQTAwMUNF
OEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTY4NEM0RTI0NjQzQzgxMDAxQ0U4RUQgLyogUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE2ODRDNEYyNDY0M0QzRjAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE2ODRD
NTAyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxNjg0QzUxMjQ2NDUwRkQwMDFD
RThFRCAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE2Q0Q3NDUyM0ZCMTc4QjAwNjYxRDk5IC8qIE1ETlNSZWdpc3Rlcklk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTUROU1JlZ2lzdGVy
SWRlbnRpZmllci5oOyBwYXRoID0gTmV0d29yay93ZWJydGMvTUROU1JlZ2lzdGVySWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTZGODA4NjI0NUIzOTc0MDBCNjhG
MDIgLyogTGliV2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBMaWJXZWJSVENOZXR3b3JrLm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGli
V2ViUlRDTmV0d29yay5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDE2RjgwODkyNDVDN0ZGNTAwQjY4RjAyIC8qIExpYldlYlJUQ05ldHdvcmsuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGliV2ViUlRDTmV0d29yay5jcHA7IHBhdGgg
PSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQ1NjMsNiArNDU3MSwyMiBAQAogCQk5MTk3OTQwNzIzREJDNENBMDAyNTc4
OTIgLyogV2ViUGFnZUluc3BlY3RvckFnZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkxOTc5NDA5MjNEQkM0RTAwMDI1Nzg5MiAvKiBBUElJbnNwZWN0b3JDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSW5zcGVjdG9yQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxOTc5NDBCMjNEQkM1MDMwMDI1Nzg5
MiAvKiBfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzAwM0VGNzI1NzhDNEUzMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzAwM0VGODI1NzhDNEUzMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUY5MjU3OEM0RTQwMEYy
QTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0VGQTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRkIyNTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzAwM0VGQzI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMw
MDNFRkQyNTc4Q0M0OTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0VGRTI1NzhD
QzRBMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwNjI1NzhEOThCMDBGMkEzREEg
LyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMDcyNTc4RDk4
QjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTMwMDNGMDkyNTc4RDk4QzAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzAwM0YwQjI1NzhEOUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwQzI1NzhEOUVEMDBGMkEzREEgLyog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjBEMjU3OEQ5RUUwMEYy
QTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzE5MzU1MTI1N0E5OEU4MDAzRjY2RDQgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMTkzNTUyMjU3QTk4RTkwMDNGNjZENCAvKiBXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzIxRDU4NTFBMzhFRTNDMDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzIxRDU4NzFBMzhFRTc0MDA4
MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzIxRDU4OTFBMzhGMTk2MDA4MDUyQkUgLyog
V0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02MjYwLDYgKzYyODQsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQwMEREN0M2OCAvKiBHYW1l
cGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBpb3MgKi8sCiAJCQkJQkMx
MTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQk5MzAwM0VGNjI1NzhDNDUwMDBG
MkEzREEgLyogbWVkaWEgKi8sCiAJCQkJMUFBRTA1OEMxMjc5RENENDAwODUyNDE4IC8qIFBsdWdp
bnMgKi8sCiAJCQkJMkQyRTA0NzYxRjVCRUM0RjAwQkIyNUVEIC8qIFJlbW90ZUxheWVyVHJlZSAq
LywKIAkJCQkxQUJGNDM3ODFBMzY4MDM1MDAzRkIwRTYgLyogV2Vic2l0ZURhdGEgKi8sCkBAIC04
ODA1LDggKzg4MzAsNiBAQAogCQkJCTQxNjg0QzRGMjQ2NDNEM0YwMDFDRThFRCAvKiBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgKi8sCiAJCQkJNDE2ODRDNEUyNDY0M0M4MTAwMUNFOEVE
IC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggKi8sCiAJCQkJNDE2ODRDNEQyNDY0M0JG
QTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAot
CQkJCTQxNjg0QzUwMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmNwcCAqLywKLQkJCQk0MTY4NEM1MTI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oICovLAogCQkJCUNENDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8q
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi8sCiAJCQkJQ0Q0OTFCMEExRTczMkQxMjAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLApAQCAtODgxNCw2
ICs4ODM3LDggQEAKIAkJCQk1MkQ1QTFCMzFDNTc0OUYyMDBERTM0QTMgLyogVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk1MkQ1QTFCNDFDNTc0OUYyMDBERTM0QTMg
LyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSAqLywKIAkJCQk3QzZFNzBGOTE4QjJENEEwMDBG
MjRFMkUgLyogV2ViUHJvY2Vzc0NvY29hLm1tICovLAorCQkJCTkzMTkzNTUyMjU3QTk4RTkwMDNG
NjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5MzE5MzU1
MTI1N0E5OEU4MDAzRjY2RDQgLyogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC04
OTcxLDYgKzg5OTYsMjEgQEAKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OworCQk5MzAwM0VGNjI1NzhDNDUwMDBGMkEzREEgLyogbWVkaWEgKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzMDAzRUZFMjU3OENDNEEw
MEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJOTMwMDNF
RkMyNTc4Q0M0OTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJ
CQkJOTMwMDNFRkQyNTc4Q0M0OTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluICovLAorCQkJCTkzMDAzRUY5MjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5MzAwM0VGODI1NzhDNEUzMDBGMkEzREEg
LyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovLAorCQkJCTkzMDAzRUY3MjU3OEM0RTMw
MEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJ
OTMwMDNFRkEyNTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmggKi8sCisJCQkJOTMwMDNFRkIyNTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBtZWRp
YTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTkzOTI4OEUwMjE0MDRERjAw
MEVCQkEzMyAvKiBJbmRleGVkREIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKApAQCAtMTA0OTIsNiArMTA1MzIsOSBAQAogCQkJCTFBMDQzQjVDMTI0RDVFOUQwMEZG
QkZCNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFBOEVGQTZFMTI1
MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
MUE4RUZBNkYxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZXMuaCAqLywKKwkJ
CQk5MzAwM0YwNzI1NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzMDAzRjA5MjU3OEQ5OEMwMEYyQTNEQSAvKiBS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTMwMDNGMDYyNTc4
RDk4QjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggKi8sCiAJCQkJQ0RENTM1NzYyNDBEREUwNzAwRjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lv
bk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RENTM1NzUyNDBEREUwNzAwRjdCOEM0IC8q
IFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RENTM1NzQyNDBEREUwNzAw
RjdCOEM0IC8qIFJlbW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTA1
NDUsNiArMTA1ODgsOSBAQAogCQkJCTFERDJBNjYxMjU2MTIyRjEwMEZGN0I2RiAvKiBSZW1vdGVN
ZWRpYVNvdXJjZVByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUFDMTMzODMxODU5MEM0
NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQkxQUMxMzM4NDE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNz
YWdlcy5oICovLAorCQkJCTkzMDAzRjBCMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTMwMDNGMEMy
NTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaCAqLywKKwkJCQk5MzAwM0YwRDI1NzhEOUVFMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkwRjU5NDdBNTE4N0I1
MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTBGNTk0N0E2MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvck1lc3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NkIyNTYyMDIxRTAwRkY3QjZGIC8q
IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTExNTQw
LDYgKzExNTg2LDkgQEAKIAkJCQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2QTYgLyogUXVhcmFudGlu
ZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2MTREIC8qIFF1
aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVFNTcy
NTI0MDlGMTQyMDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5MzAwM0YwMTI1NzhDRDY3MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRjEwMjU3OERCMDgwMEYyQTNEQSAv
KiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5MzAwM0YxMTI1NzhEQjBBMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQzMTgyMjJCMzUxNUUwMDhE
MEU4QiAvKiBSZWRpcmVjdFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTlCMTIyOUQyMjNGRjJCQ0MwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUIxMjI5Q0QyM0ZGMjVGMjAwOENBNzUxIC8q
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTExNTgw
LDYgKzExNjI5LDEwIEBACiAJCQkJMUE1NzA0RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9i
amVjdEludm9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEzMzgwMTg1OTBBRTQwMEYz
RUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMz
ODYxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzMDAzRUZGMjU3OENENjEwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0YwMDI1NzhDRDY1MDBGMkEz
REEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzMDAzRjBFMjU3OERBMzgwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzAwM0YxMzI1NzhEQjEyMDBG
MkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0NzkwMTg3QjNCM0EwMDQzNzg1NyAvKiBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3
NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNTk0NzlCMTg3QjNCNjAwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTExODg1LDYgKzExOTM4LDcgQEAK
IAkJCQkxQTFFMDkzNDE4ODYxRDM4MDBEMkRDNDkgLyogV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViUHJv
dGVjdGlvblNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjFDQ0NBNjIzMTQ4NUFBMDBCNjU5
QjkgLyogV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMTkz
NTUzMjU3QTk4RUMwMDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNTg2MEU3MTIzMEY2N0ZDMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJ
bnRlcmNlcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBRkZCQTE2NTQyMDQ4
MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjA2
MEUwMTY1NDMxN0YwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEzMzczLDYgKzEzNDI3LDcgQEAKIAkJCQkyRDU0QzMxQjIxMkY0REE2MDA0
OUMxNzQgLyogUHJvY2Vzc0xhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMEMyMjdG
MjQ1MTEzMEEwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBMEMyMjVFMjQzNTc1Q0QwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVt
Ym5haWxMb2FkZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk5MzAwM0YwRjI1NzhEQjA2MDBGMkEz
REEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFEMDM2OUFFMjU2Nzk2Qjkw
MDQ0MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZGMjRBMkQxODc5RTRCQzAwM0FCRjBEIC8qIFJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTMzOTQs
NiArMTM0NDksNyBAQAogCQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
REQyQTY2MzI1NjEyNDZGMDBGRjdCNkYgLyogUmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUMxMzM4NTE4NTkwQzQ2MDBGM0VDMDUg
LyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJOTMwMDNGMTIyNTc4REIwQzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTk0N0E3
MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxREQyQTY2RTI1NjIwMjFFMDBGRjdCNkYgLyog
UmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUQwMzY5QUMyNTY3OTY5OTAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFja1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAppbmRleCAzZjM1MzE5NGEzMmMzZTY3OWJjYTI5ZmJl
YTg1MDMxYzkyMWU0ZmM0Li5jZjI4M2VkMzViNWYwMTNhNzZiY2U5OWZjNzljMjVjNTAyY2RlZDNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApA
QCAtNDYsNiArNDYsMTAgQEAgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIs
ICp0aGlzKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNwZWVj
aFJlY29nbml0aW9uU2VydmVyKG1faWRlbnRpZmllciksIDApOworCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcigpOworI2VuZGlmCiB9CiAKIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZjJmMjI4MjJjN2IyMjNmY2E1OWY5NTU3M2QxMWRj
OTliMTAzNDgxMS4uZWUzYjQyYzhiZTM2MDc1ZGQ1NDk3MmE4NmViNGUzNjc0NjE1NGY1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDMsNiArNDMsOCBAQAog
I2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0Fzc2Vy
dGlvbi5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVk
ZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90
ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNp
bmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgpAQCAtMTk2OSw2ICsxOTcxLDE4IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6ZW5hYmxlVlA5U1dEZWNvZGVyKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKK1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzOjplbnN1
cmVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3JlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKSB7CisgICAgICAgIG1fcmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIg
PSBtYWtlVW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPigqcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKSk7CisgICAgICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKm1fcmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIpOworICAgIH0KKworICAgIHJldHVybiAqbV9yZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3Vu
ZGVmIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCmluZGV4IGU5YzQ3ZGI0YzQ0N2MwZjRhYjYyN2MwOTRiNWY2OGRiNTY1YTlhNmMuLmEwNDE1
NTJkMTE5OTE0YzljZjI0ZmY0YzkxMzliODQ4NjA4NjU4NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaApAQCAtMTQyLDYgKzE0MiwxMCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7
CisjZW5kaWYKKwogY2xhc3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzCiB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNjAsNiArMzY0LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRpZFdyaXRlVG9QYXN0ZWJvYXJkQXN5bmNocm9ub3VzbHkoY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7CiAgICAg
fldlYlByb2Nlc3MoKTsKQEAgLTY5Myw2ICs3MDEsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
dnA5RGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV92cDlTV0RlY29kZXJFbmFi
bGVkIHsgZmFsc2UgfTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fcmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlci5jcHAKaW5kZXggNWIzZTcwMGUwOTU4ZTJmYmQ1NjkxNzgwNDI3MWRl
ZGM5NGZjNWU0OS4uNjUwNTY4NmJlMWZhNGRmMjU2Y2JhODY0MjA0MGEyYmRmMWZmZDMxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXI6OnNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
dGhpcyk7CiB9CiAKLXZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmFkZFNvdXJjZShS
ZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit2b2lkIFJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYgc291cmNlKQogewogICAgIEFTU0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CiAgICAg
c2V0Q29ubmVjdGlvbihzb3VyY2UtPmNvbm5lY3Rpb24oKSk7CkBAIC0xMTEsNyArMTExLDcgQEAg
dm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3UKICAgICBpdGVyYXRvci0+dmFsdWUtPmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwog
fQogCi1SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OlJlbW90ZUF1ZGlv
KFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKK1JlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFdlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogICAgIDogbV9zb3VyY2UoV1RGTW92ZShzb3VyY2Up
KQogICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVl
UmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5oCmluZGV4IDZmYjRiYzM3YjkzODAxNmZjZTVjNWM1YWM1YTQzNzAyN2YxODZiZTQuLmFl
MGE2ZTBmYzg5YTkyYWVkMWY4NzdjODYwYWE2YWNiZmVjMDdmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5oCkBAIC0yOSw4ICsyOSw4IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgIldlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgog
ICAgIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCk7CiAgICAgflJlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyKCk7CiAKLSAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZT4mJik7CisgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CkBAIC02MywxMyArNjMsMTMgQEAgcHJpdmF0ZToK
ICAgICBjbGFzcyBSZW1vdGVBdWRpbyB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIHB1YmxpYzoKLSAgICAgICAgZXhwbGljaXQgUmVtb3RlQXVkaW8oUmVmPFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgICAgICBleHBsaWNpdCBSZW1vdGVBdWRpbyhSZWY8
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CiAKICAgICAgICAgdm9pZCBzZXRTdG9y
YWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOwogICAgICAgICB2b2lk
IGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
LCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAg
ICAgIFJlZjxXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKICAgICAgICAg
V2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CiAgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKICAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4gbV9idWZm
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVmOWMyYWFkMDkxOTYyZTM1OTZlZjg5M2IzNTljMWQxZDY4NGFlMzQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MzEwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgotCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgot
I2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgi
Ci0jaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVz
aW5nIG5hbWVzcGFjZSBQQUw7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotUmVmPFJlYWx0
aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShjb25zdCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMmIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcykKLXsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2
aWNlLnR5cGUoKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKLSAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2Uu
Y29weVJlZigpKTsKLSAgICBzb3VyY2UtPmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoc291cmNlLT5pZGVudGlmaWVyKCksIGRl
dmljZSwgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCksIGNvbnN0cmFpbnRzKSwgW3NvdXJjZSA9
IHNvdXJjZS5jb3B5UmVmKCldKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBh
dXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgaWYgKCFzdWNj
ZWVkZWQpIHsKLSAgICAgICAgICAgIHNvdXJjZS0+ZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2Fn
ZSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHNvdXJjZS0+c2V0
TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwotICAgICAgICBzb3Vy
Y2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKLSAgICAgICAgc291cmNlLT5zZXRD
YXBhYmlsaXRpZXMoV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKLSAgICAgICAgc291cmNlLT5zZXRB
c1JlYWR5KCk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIHNvdXJjZTsKLX0KLQotc3RhdGljIGlubGlu
ZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZShDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUpCi17Ci0gICAgc3dpdGNoIChkZXZpY2VU
eXBlKSB7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgot
ICAgICAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87Ci0gICAgY2Fz
ZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6Ci0gICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpXaW5kb3c6Ci0gICAgICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbzsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6Ci0gICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0gICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6Ok5vbmU7Ci19Ci0KLVJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlw
ZUZyb21EZXZpY2VUeXBlKGRldmljZVR5cGUpLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmc6Om51bWJl
cihpZGVudGlmaWVyLnRvVUludDY0KCkpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKLSAgICAsIG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQotICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCi0gICAgLCBtX2Rl
dmljZVR5cGUoZGV2aWNlVHlwZSkKLSAgICAsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyhz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotewotICAgIHN3aXRjaCAobV9kZXZpY2VUeXBlKSB7
Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwot
I2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6Q2FtZXJhOgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3Rp
dmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6V2luZG93OgotICAgICAgICBicmVhazsKLSAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlNwZWFrZXI6Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpVbmtub3duOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci19Ci0KLVJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKLXsK
LSAgICBzd2l0Y2ggKG1fZGV2aWNlVHlwZSkgewotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6TWljcm9waG9uZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5
KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwotI2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7Ci0jZW5kaWYK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3Jl
ZW46Ci0gICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKLSAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246Ci0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjp3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNr
KQotewotICAgIGlmIChtX2lzUmVhZHkpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhXVEZNb3Zl
KG1fZXJyb3JNZXNzYWdlKSk7Ci0gICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwot
fQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmRpZEZhaWwoU3RyaW5nJiYgZXJy
b3JNZXNzYWdlKQotewotICAgIG1faXNSZWFkeSA9IHRydWU7Ci0gICAgbV9lcnJvck1lc3NhZ2Ug
PSBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7Ci0gICAgaWYgKG1fY2FsbGJhY2spCi0gICAgICAgIG1f
Y2FsbGJhY2sobV9lcnJvck1lc3NhZ2UpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNldEFzUmVhZHkoKQotewotICAgIG1faXNSZWFkeSA9IHRydWU7Ci0gICAgaWYgKG1f
Y2FsbGJhY2spCi0gICAgICAgIG1fY2FsbGJhY2soeyB9KTsKLX0KLQotUmVmPFJlYWx0aW1lTWVk
aWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25lKCkKLXsKLSAgICBzd2l0
Y2ggKHR5cGUoKSkgewotICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86
Ci0gICAgICAgIHJldHVybiBjbG9uZVZpZGVvU291cmNlKCk7Ci0gICAgY2FzZSBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICB9Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1SZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4g
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSgpCi17Ci0gICAgYXV0
byBpZGVudGlmaWVyID0gUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7
Ci0gICAgaWYgKCFjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OkNsb25lIHsgbV9pZGVudGlmaWVyLCBpZGVudGlmaWVyIH0sIDApKQotICAg
ICAgICByZXR1cm4gKnRoaXM7Ci0KLSAgICBhdXRvIGNsb25lU291cmNlID0gYWRvcHRSZWYoKm5l
dyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKGlkZW50aWZpZXIsIGRldmljZVR5cGUoKSwgU3Ry
aW5nIHsgbV9zZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0sIGRldmljZUlESGFzaFNhbHQoKSwg
bV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKLSAgICBjbG9uZVNvdXJj
ZS0+c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgbV9zZXR0aW5ncyB9
KTsKLSAgICBtX21hbmFnZXIuYWRkU291cmNlKGNsb25lU291cmNlLmNvcHlSZWYoKSk7Ci0gICAg
cmV0dXJuIGNsb25lU291cmNlOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnNldENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJp
bGl0aWVzKQotewotICAgIG1fY2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOwot
fQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNldHRpbmdzKFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdzKQotewotICAgIGF1dG8gY2hhbmdlZCA9IG1f
c2V0dGluZ3MuZGlmZmVyZW5jZShzZXR0aW5ncyk7Ci0gICAgbV9zZXR0aW5ncyA9IFdURk1vdmUo
c2V0dGluZ3MpOwotICAgIG5vdGlmeVNldHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKGNoYW5nZWQp
OwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBz
aXplX3Qgc2l6ZSkKLXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBhdWRpb1Nh
bXBsZXNBdmFpbGFibGUodGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNpemUpOwotfQotCi12b2lk
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFJl
bW90ZVZpZGVvU2FtcGxlJiYgcmVtb3RlU2FtcGxlKQotewotICAgIEFTU0VSVCh0eXBlKCkgPT0g
VHlwZTo6VmlkZW8pOwotCi0gICAgc2V0SW50cmluc2ljU2l6ZShyZW1vdGVTYW1wbGUuc2l6ZSgp
KTsKLQotICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQotICAg
ICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3Jl
YXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKLQotICAgIGlmICghbV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbikgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGF1dG8gc2FtcGxlUmVmID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
bi0+Y3JlYXRlTWVkaWFTYW1wbGUocmVtb3RlU2FtcGxlKTsKLSAgICBpZiAoIXNhbXBsZVJlZikg
ewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1wbGVS
ZWYpOwotfQotCi1JUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNv
bm5lY3Rpb24oKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0jaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQotICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgICAg
IHJldHVybiAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQotewotICAgIGNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9kdWNp
bmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKLXsKLSAgICBjb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRh
IHsgbV9pZGVudGlmaWVyIH0sIDApOwotfQotCi1ib29sIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKQotewot
ICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6U2V0U2hvdWxkQXBwbHlSb3RhdGlvbiB7IG1faWRlbnRpZmllciwgc2hvdWxkQXBwbHlS
b3RhdGlvbiB9LCAwKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotY29uc3QgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkKLXsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7Ci19Ci0KLXZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXIm
JiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2Fs
bGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgLy8gRklYTUU6
IFVzZSBzZW5kQXN5bmNXaXRoUmVwbHkuCi0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpBcHBseUNvbnN0cmFpbnRzIHsgbV9pZGVu
dGlmaWVyLCBjb25zdHJhaW50cyB9LCAwKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCi17Ci0gICAgc2V0U2V0dGluZ3MoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzKHNldHRpbmdzKSk7Ci0KLSAgICBhdXRvIGNh
bGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsK
LSAgICBjYWxsYmFjayh7IH0pOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5n
JiYgZXJyb3JNZXNzYWdlKQotewotICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNv
bnN0cmFpbnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOwotICAgIGNhbGxiYWNrKEFwcGx5Q29uc3Ry
YWludHNFcnJvciB7IFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNz
YWdlKSB9KTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpoYXNFbmRlZCgp
Ci17Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpFbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92
ZVNvdXJjZShtX2lkZW50aWZpZXIpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmNhcHR1cmVTdG9wcGVkKCkKLXsKLSAgICBzdG9wKCk7Ci0gICAgaGFzRW5kZWQoKTsKLX0K
LQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKLXsKLSAg
ICBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCk7Ci0gICAgaGFzRW5kZWQoKTsK
LX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCgp
Ci17Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpSZXF1ZXN0VG9FbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7Ci19Ci0KLXZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKE9ic2VydmVyJiBvYnNlcnZl
cikKLXsKLSAgICBzd2l0Y2ggKHR5cGUoKSkgewotICAgIGNhc2UgVHlwZTo6QXVkaW86Ci0gICAg
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChvYnNlcnZlcik7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgVHlwZTo6VmlkZW86Ci0gICAgICAgIHN0b3BCZWluZ09ic2VydmVk
KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6Tm9uZToKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgfQotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjODkwYmViMWIwMzEzZDRlMjMwMjk1
MjlmNTFkMTExNzBlOWI1YjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDExMSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQotI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KLQotbmFtZXNwYWNl
IElQQyB7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFz
cyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247Ci1jbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
Owotc3RydWN0IE1lZGlhQ29uc3RyYWludHM7Ci1jbGFzcyBSZW1vdGVWaWRlb1NhbXBsZTsKLX0K
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOwot
Ci1jbGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2UgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzID0gZmFsc2UpOwotICAgIH5SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7Ci0KLSAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKCk7Ci0KLSAgICB2b2lkIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYmKTsKLQotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKLSAgICB2b2lkIGFwcGx5
Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJy
b3JNZXNzYWdlKTsKLQotICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKLSAgICB2b2lkIGNhcHR1
cmVGYWlsZWQoKSBmaW5hbDsKLQotICAgIHZvaWQgcmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUo
V2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7Ci0gICAgdm9pZCByZW1vdGVBdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXpl
X3QpOwotCi1wcml2YXRlOgotICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7Ci0KLSAgICAvLyBS
ZWFsdGltZU1lZGlhU291cmNlCi0gICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsK
LSAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7Ci0gICAgYm9vbCBpc0NhcHR1cmVT
b3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBiZWdpbkNvbmZp
Z3VyYXRpb24oKSBmaW5hbCB7IH0KLSAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5h
bCB7IH0KLSAgICBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBs
eVJvdGF0aW9uICovKSBmaW5hbDsKLSAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFs
OwotICAgIHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJikgZmluYWw7Ci0gICAgdm9pZCBzdG9w
QmVpbmdPYnNlcnZlZCgpIGZpbmFsOwotICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKLSAgICBj
b25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmlu
YWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQotICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOwotICAgIHZvaWQgd2hl
blJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7Ci0gICAgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9kZXZpY2VUeXBlOyB9Ci0gICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNs
b25lKCkgZmluYWw7Ci0KLSAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsK
LSAgICB2b2lkIHNldEFzUmVhZHkoKTsKLSAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOwotICAgIFJlZjxSZWFsdGltZU1l
ZGlhU291cmNlPiBjbG9uZVZpZGVvU291cmNlKCk7Ci0KLSAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImIG1fbWFuYWdlcjsKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzIG1fY2FwYWJpbGl0aWVzOwotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyBtX3NldHRpbmdzOwotCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247Ci0gICAgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBtX2RldmljZVR5cGUgeyBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duIH07Ci0KLSAgICBEZXF1ZTxBcHBseUNvbnN0cmFp
bnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrczsKLSAgICBib29s
IG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzUmVh
ZHkgeyBmYWxzZSB9OwotICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKLSAgICBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCAwODNmODI5YWY3NWFlOTlm
NmMyOGNkNjcwYjkwYTY2Nzc4OWYzN2UzLi41OGM4MDZiNWZhZGY1MjRkMGU4Yjk0YzIxOWI3MGRk
YTA2N2QwZDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTMwLDEwICszMCwxMCBAQAogCiAj
aW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIKICNpbmNsdWRlICJHUFVQ
cm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
aCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgIldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaD4KQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6c2V0dXBDYXB0dXJlUHJvY2Vzc2VzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVAK
ICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGlzcGxh
eUNhcHR1cmVGYWN0b3J5KG1fZGlzcGxheUZhY3RvcnkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYg
c291cmNlKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKIHsKICAgICBpZiAoc291cmNlLT50
eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCiAgICAgICAgIG1fcmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwpAQCAt
MTU4LDcgKzE1OCw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvCiAgICAgICAgIERlcHJlY2F0
ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1
ZSk7CiAjZW5kaWYKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVh
dGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdl
cik7CisgICAgcmV0dXJuIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZp
Y2UsICpjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsKIH0K
IAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpzZXRTaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUpCkBAIC0xNzYsNyArMTc2LDcgQEAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3Jl
YXRlVmlkZW9DYXB0dXJlU28KICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsg
IlZpZGVvIGNhcHR1cmUgaW4gR1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKICNl
bmRpZgogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZp
Y2UsICpjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsKKyAg
ICByZXR1cm4gV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNv
bnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIpOwogfQogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE5MSw3ICsxOTEsNyBAQCBDYXB0dXJlU291cmNlT3JF
cnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3Bs
YXlDYXB0dQogICAgIGlmICghY29uc3RyYWludHMpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAg
ICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0
cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyKTsKKyAgICByZXR1cm4gV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9t
YW5hZ2VyKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCBiMGIxOTgyOTA1NDIyZGU3Mjk1
NDJhYmIzZWUwOWJjN2UzMzBkMDJkLi41ZTQ0YTU4YjQ0Zjg0OWIyOGY4M2YwYmQ2ZjlkOTViMDFl
ZWE2MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBSZW1vdGVW
aWRlb1NhbXBsZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U7CitjbGFzcyBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOwogY2xhc3Mg
V2ViUHJvY2VzczsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgOiBwdWJsaWMgV2Vi
UHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBAIC01Nyw3
ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nl
c3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsg
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KICAgICB2b2lkIHNldHVw
Q2FwdHVyZVByb2Nlc3Nlcyhib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBib29s
IHNob3VsZENhcHR1cmVBdWRpb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9J
blVJUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIGJvb2wgc2hv
dWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2Vzcyk7CiAKLSAgICB2b2lkIGFkZFNvdXJjZShSZWY8
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFdl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKQEAgLTEy
OCw5ICsxMjgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRl
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRz
RmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTdHJpbmcmJiwg
U3RyaW5nJiYpOwogCi0gICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25l
VmlkZW9Tb3VyY2UoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOworICAgIFJlZjxXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVvU291cmNlKFdlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UmKTsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIsIFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOwor
ICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlZjxX
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOwogICAgIFdlYlByb2Nlc3Mm
IG1fcHJvY2VzczsKICAgICBOb09wQ2FwdHVyZURldmljZU1hbmFnZXIgbV9ub09wQ2FwdHVyZURl
dmljZU1hbmFnZXI7CiAgICAgQXVkaW9GYWN0b3J5IG1fYXVkaW9GYWN0b3J5OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZmM5N2Q0ZjQ4ZDljYjdlZGE3MTg1Nzcy
NDc3YTI0NDQzYTlmZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwzMTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5h
bWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFJlYWx0aW1lTWVk
aWFTb3VyY2U+IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cykKK3sKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgV2ViUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2
aWNlLnR5cGUoKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNo
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKKworICAgIHNvdXJjZS0+Y29ubmVjdGlvbigpLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhzb3VyY2Ut
PmlkZW50aWZpZXIoKSwgZGV2aWNlLCBzb3VyY2UtPmRldmljZUlESGFzaFNhbHQoKSwgY29uc3Ry
YWludHMpLCBbc291cmNlID0gc291cmNlLmNvcHlSZWYoKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8m
JiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgewor
ICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgeworICAgICAgICAgICAgc291cmNlLT5kaWRGYWlsKFdU
Rk1vdmUoZXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgc291cmNlLT5zZXROYW1lKFN0cmluZyB7IHNldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkg
fSk7CisgICAgICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOworICAg
ICAgICBzb3VyY2UtPnNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykpOworICAg
ICAgICBzb3VyY2UtPnNldEFzUmVhZHkoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gc291cmNlOwor
fQorCitzdGF0aWMgaW5saW5lIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZUZy
b21EZXZpY2VUeXBlKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSkKK3sKKyAg
ICBzd2l0Y2ggKGRldmljZVR5cGUpIHsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbzsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgcmV0dXJuIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OlZpZGVvOworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U3BlYWtlcjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKK30KKworV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShzb3VyY2VUeXBlRnJvbURldmljZVR5cGUoZGV2aWNlVHlwZSksIFdURk1v
dmUobmFtZSksIFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9VSW50NjQoKSksIFdURk1vdmUo
aGFzaFNhbHQpKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFn
ZXIobWFuYWdlcikKKyAgICAsIG1fZGV2aWNlVHlwZShkZXZpY2VUeXBlKQorICAgICwgbV9zaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCit7CisgICAg
c3dpdGNoIChtX2RldmljZVR5cGUpIHsKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6Ok1pY3JvcGhvbmU6CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLnNl
dEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9D
YXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisjZW5kaWYKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U3BlYWtlcjoKKyAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KK30KKworV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6fldlYlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQoreworICAgIHN3aXRjaCAobV9kZXZpY2VUeXBlKSB7
CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7
CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpDYW1lcmE6CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0
QWN0aXZlU291cmNlKCp0aGlzKTsKKyNlbmRpZgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6VW5rbm93bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQor
Cit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OndoZW5SZWFkeShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKG1faXNSZWFkeSkK
KyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKFdURk1vdmUobV9lcnJvck1lc3NhZ2UpKTsKKyAgICBt
X2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCit7CisgICAgbV9p
c1JlYWR5ID0gdHJ1ZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdl
KTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjayhtX2Vycm9yTWVzc2Fn
ZSk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0QXNSZWFkeSgp
Cit7CisgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAg
bV9jYWxsYmFjayh7IH0pOworfQorCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gV2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmUoKQoreworICAgIHN3aXRjaCAodHlwZSgpKSB7Cisg
ICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKKyAgICAgICAgcmV0dXJu
IGNsb25lVmlkZW9Tb3VyY2UoKTsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OkF1ZGlvOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1
cm4gKnRoaXM7Cit9CisKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBXZWJSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjbG9uZVZpZGVvU291cmNlKCkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIg
PSBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBpZiAoIWNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Q2xvbmUgeyBtX2lkZW50aWZpZXIsIGlkZW50aWZpZXIgfSwgMCkpCisgICAgICAgIHJldHVybiAq
dGhpczsKKworICAgIGF1dG8gY2xvbmVTb3VyY2UgPSBhZG9wdFJlZigqbmV3IFdlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UoaWRlbnRpZmllciwgZGV2aWNlVHlwZSgpLCBTdHJpbmcgeyBtX3Nl
dHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX21hbmFnZXIs
IG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIGNsb25lU291cmNlLT5zZXRTZXR0
aW5ncyhSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgeyBtX3NldHRpbmdzIH0pOworICAgIG1f
bWFuYWdlci5hZGRTb3VyY2UoY2xvbmVTb3VyY2UuY29weVJlZigpKTsKKyAgICByZXR1cm4gY2xv
bmVTb3VyY2U7Cit9CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0Q2Fw
YWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMp
Cit7CisgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7Cit9CisKK3Zv
aWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCit7CisgICAgYXV0byBjaGFuZ2VkID0gbV9zZXR0
aW5ncy5kaWZmZXJlbmNlKHNldHRpbmdzKTsKKyAgICBtX3NldHRpbmdzID0gV1RGTW92ZShzZXR0
aW5ncyk7CisgICAgbm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMoY2hhbmdlZCk7Cit9
CisKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVz
QXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlv
RGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNp
emVfdCBzaXplKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSh0aW1lLCBkYXRhLCBkZXNjcmlwdGlvbiwgc2l6ZSk7Cit9CisKK3ZvaWQg
V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUo
UmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCit7CisgICAgQVNTRVJUKHR5cGUoKSA9
PSBUeXBlOjpWaWRlbyk7CisKKyAgICBzZXRJbnRyaW5zaWNTaXplKHJlbW90ZVNhbXBsZS5zaXpl
KCkpOworCisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2Zl
clNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCisg
ICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpj
cmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOworCisgICAgaWYgKCFtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgYXV0byBzYW1wbGVSZWYgPSBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUpOworICAgIGlmICghc2FtcGxlUmVm
KSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoKnNhbXBs
ZVJlZik7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6Y29ubmVjdGlvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKKyAg
ICAgICAgcmV0dXJuICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKKyNlbmRpZgorICAgIHJldHVybiBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpOworfQorCit2b2lkIFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAgY29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFy
dFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKK3ZvaWQgV2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFBy
b2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKK2Jvb2wgV2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5
Um90YXRpb24pCit7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTZXRTaG91bGRBcHBseVJvdGF0aW9uIHsgbV9pZGVudGlmaWVy
LCBzaG91bGRBcHBseVJvdGF0aW9uIH0sIDApOworICAgIHJldHVybiB0cnVlOworfQorCitjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjYXBhYmlsaXRpZXMoKQoreworICAgIHJldHVybiBtX2NhcGFiaWxp
dGllczsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0
cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBBcHBs
eUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fcGVuZGlu
Z0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICAvLyBGSVhNRTogVXNlIHNlbmRBc3luY1dpdGhSZXBseS4KKyAgICBjb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkFwcGx5
Q29uc3RyYWludHMgeyBtX2lkZW50aWZpZXIsIGNvbnN0cmFpbnRzIH0sIDApOworfQorCit2b2lk
IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQo
Y29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3sK
KyAgICBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Moc2V0
dGluZ3MpKTsKKworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRz
Q2FsbGJhY2tzLnRha2VGaXJzdCgpOworICAgIGNhbGxiYWNrKHsgfSk7Cit9CisKK3ZvaWQgV2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcm
JiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCit7CisgICAgYXV0byBj
YWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7
CisgICAgY2FsbGJhY2soQXBwbHlDb25zdHJhaW50c0Vycm9yIHsgV1RGTW92ZShmYWlsZWRDb25z
dHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2UpIH0pOworfQorCit2b2lkIFdlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6Omhhc0VuZGVkKCkKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7IG1faWRlbnRpZmll
ciB9LCAwKTsKKyAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKG1faWRlbnRpZmllcik7Cit9CisK
K3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQorewor
ICAgIHN0b3AoKTsKKyAgICBoYXNFbmRlZCgpOworfQorCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQoreworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OmNhcHR1cmVGYWlsZWQoKTsKKyAgICBoYXNFbmRlZCgpOworfQorCit2b2lkIFdlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BCZWluZ09ic2VydmVkKCkKK3sKKyAgICBjb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlJlcXVlc3RU
b0VuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIHN3aXRj
aCAodHlwZSgpKSB7CisgICAgY2FzZSBUeXBlOjpBdWRpbzoKKyAgICAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6cmVxdWVzdFRvRW5kKG9ic2VydmVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBUeXBlOjpWaWRlbzoKKyAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICB9Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43OWU2NDVjNDM0NGE0MDljYTY1OTI3YTM2MTJiNmM4NTgxZDJlZDhlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xh
c3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uOworY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKK3N0cnVjdCBN
ZWRpYUNvbnN0cmFpbnRzOworY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjsKKworY2xhc3MgV2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyYsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9
IGZhbHNlKTsKKyAgICB+V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOworCisgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigp
OworCisgICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmJik7CisKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBhcHBseUNvbnN0
cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVz
c2FnZSk7CisKKyAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKCk7CisgICAgdm9pZCBjYXB0dXJlRmFp
bGVkKCkgZmluYWw7CisKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNv
cmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOworICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZh
aWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRp
b0RhdGEmLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsK
KworcHJpdmF0ZToKKyAgICBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworCisgICAgLy8gUmVh
bHRpbWVNZWRpYVNvdXJjZQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7Cisg
ICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIGJvb2wgaXNDYXB0dXJlU291
cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgYmVnaW5Db25maWd1
cmF0aW9uKCkgZmluYWwgeyB9CisgICAgdm9pZCBjb21taXRDb25maWd1cmF0aW9uKCkgZmluYWwg
eyB9CisgICAgYm9vbCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgLyogc2hvdWxkQXBwbHlS
b3RhdGlvbiAqLykgZmluYWw7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsK
KyAgICB2b2lkIHJlcXVlc3RUb0VuZChPYnNlcnZlciYpIGZpbmFsOworICAgIHZvaWQgc3RvcEJl
aW5nT2JzZXJ2ZWQoKSBmaW5hbDsKKyAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7CisgICAgY29u
c3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFs
IHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKKyAgICB2b2lkIHdoZW5S
ZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOworICAgIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fZGV2aWNlVHlwZTsgfQorICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBjbG9u
ZSgpIGZpbmFsOworCisgICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSk7Cisg
ICAgdm9pZCBzZXRBc1JlYWR5KCk7CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKTsKKyAgICBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gY2xvbmVWaWRlb1NvdXJjZSgpOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiBtX21hbmFnZXI7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyBtX2NhcGFiaWxpdGllczsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MgbV9zZXR0aW5nczsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOworICAgIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGUgbV9kZXZpY2VUeXBlIHsgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6VW5rbm93biB9OworCisgICAgRGVxdWU8QXBwbHlDb25zdHJhaW50
c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CisgICAgYm9vbCBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1JlYWR5
IHsgZmFsc2UgfTsKKyAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CisgICAgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdHJpbmcpPiBtX2NhbGxiYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415441</attachid>
            <date>2020-12-04 12:07:06 -0800</date>
            <delta_ts>2020-12-04 14:17:19 -0800</delta_ts>
            <desc>Fix MediaStream tests</desc>
            <filename>WIP</filename>
            <type>text/plain</type>
            <size>125989</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMzNlM2FmNWQ0ZjcyLi4wNTFmNGI5NjgyMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjAtMTItMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUdXJuIG9uIFdlYlNwZWVjaCBvbiBpT1Mgc2ltdWxhdG9yIGJ5
IGRlZmF1bHQgZm9yIHRlc3RpbmcuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjAtMTItMDMgIEFkYW0gUm9iZW4g
IDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IEZBTExCQUNLX1BMQVRGT1JNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGQ0ZGFhMmIyOTFkZS4uNTc5YWE1M2JjOWJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNzg4LDYgKzc4OCw3IEBAIFNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZDoKICAgICBXZWJLaXRMZWdhY3k6CiAgICAgICBkZWZhdWx0OiBm
YWxzZQogICAgIFdlYktpdDoKKyAgICAgICJQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUiki
OiB0cnVlCiAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0
OiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM3YTRlMTVhMzU5ZC4uYTE2M2MxYTgwYzhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMTItMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJl
Y29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB3YXkgdG8g
c2V0IFJlYWx0aW1lTWVkaWFTb3VyY2UgbWVtYmVyIG9mIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGwuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3Jl
YXRlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmg6Cisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bC5jcHA6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzZXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMi0wNCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gRmxvYXQgcG9zaXRpb25pbmcgbmVlZHMgdG8g
aGFwcGVuIHdoaWxlIGJ1aWxkaW5nIHRoZSBsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBkNTQ0
ODM3OGI5OTQuLmVkYzNjOGZkNzAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMzI3LDYgKzEz
MjcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCiAgICAgcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCiAgICAgcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAogICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oCiAg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYzkzYjZmMzhiYzYyLi4yZTU2YTkxOGUz
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMzQsOSArMzQsMTAgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFD
YWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2spCi17CiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpCit7CiAgICAgT3B0
aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKICAgICBhdXRvIGRldmljZXMgPSBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5
KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CiAgICAgZm9y
IChhdXRvIGRldmljZSA6IGRldmljZXMpIHsKQEAgLTUxLDI2ICs1MiwxOSBAQCBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVl
Y2hSZWNvZ25pdGlvbgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAg
cmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9CiAKLSAgICBpZiAoIWNhcHR1cmVEZXZpY2UpIHsKLSAg
ICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3Ig
Y2FwdHVyZSIgfTsKLSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KK0NhcHR1cmVTb3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKK30KIAotICAgIGF1dG8gcmVzdWx0ID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgp
LmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOwotICAg
IGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgcmVzdWx0LmVy
cm9yTWVzc2FnZSB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQorU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ss
IFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgbV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRh
dGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIFdURk1vdmUoc291cmNl
KSk7Cit9CiAKLSAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RG
TW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgpKTsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKGNsaWVudElkZW50aWZpZXIpOwotICAgIFVOVVNFRF9QQVJBTShkYXRhQ2Fs
bGJhY2spOwotICAgIFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNhbGxiYWNrKTsKICNlbmRpZgot
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCmlu
ZGV4IDczODZjZWVlMjc0MC4uNjlmOWE4OGIyNjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UuaApAQCAtNDIsMTAgKzQyLDE2IEBAIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOwog
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uo
KSA9IGRlZmF1bHQ7CiAgICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVm
YXVsdDsKICAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KT47CiAgICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1
bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47Ci0gICAgU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYpOworCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxi
YWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiBmaW5kQ2FwdHVyZURldmljZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmKTsKKyNlbmRpZgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IGJmYzViZTEwMzRiZS4u
MTc2MzFiNmExN2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApA
QCAtODAsNiArODAsNyBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp+U3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCgpCiAgICAgbV9zb3VyY2UtPnN0b3AoKTsK
IH0KIAorLy8gTWF5IGJlIGNhbGxlZCBvbiBtYWluIHRocmVhZCBvciBiYWNrZ3JvdW5kIHRocmVh
ZC4KIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVz
QXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEm
IGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qg
c2FtcGxlQ291bnQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCmluZGV4IDViZWI2MDU2NDdi
My4uZjY0OWE3ODY1OWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtNTQsMTUgKzU0LDIyIEBAIHZvaWQgU3BlZWNoUmVj
b2duaXplcjo6cmVzZXQoKQogCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBy
ZXNldCgpOworICAgIC8vIE1ha2Ugc3VyZSBubyBvbmdvaW5nIHJlcXVlc3QuCisgICAgQVNTRVJU
KCFtX3NvdXJjZSk7CiAKICAgICBtX2NsaWVudElkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAg
IG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2Ns
aWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpKTsKK30K
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSAgICBzdGFydEludGVybmFsKCk7Cit2b2lk
IFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNl
KQoreworICAgIHN0YXJ0KGlkZW50aWZpZXIpOworICAgIHNldFNvdXJjZShXVEZNb3ZlKHNvdXJj
ZSkpOwogfQogCi12b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQordm9pZCBT
cGVlY2hSZWNvZ25pemVyOjpzZXRTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291
cmNlKQogewogICAgIGF1dG8gZGF0YUNhbGxiYWNrID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyldKGNvbnN0IGF1dG8mIHRpbWUsIGNvbnN0IGF1dG8mIGRhdGEsIGNvbnN0IGF1dG8mIGRl
c2NyaXB0aW9uLCBhdXRvIHNhbXBsZUNvdW50KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCkBA
IC05MCw5ICs5NywxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQog
ICAgICAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOwogICAgIH07CiAKLSAgICBtX3NvdXJjZSA9
IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
aykpOworICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92
ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShzb3VyY2UpKTsKIH0KIAorI2VuZGlmCisK
IHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNo
b3VsZEdlbmVyYXRlRmluYWxSZXN1bHQpCiB7CiAgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
emVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgK
aW5kZXggZTZmMTNmZWU4NGE1Li4zNWViZmVlNDU1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTM5LDE3ICszOSwyMyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXplcihEZWxl
Z2F0ZUNhbGxiYWNrJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5TcGVlY2hSZWNvZ25pemVyKCkg
PSBkZWZhdWx0OwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNldCgpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllcik7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyNlbmRpZgogICAgIGVudW0gY2xhc3MgU2hvdWxk
R2VuZXJhdGVGaW5hbFJlc3VsdCB7IE5vLCBZZXMgfTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1
bHQ6Olllcyk7CiAKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xpZW50SWRlbnRpZmllcjsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgcmVzZXQoKTsKLSAgICB2
b2lkIHN0YXJ0SW50ZXJuYWwoKTsKICAgICB2b2lkIHN0b3BJbnRlcm5hbCgpOwogCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIHNldFNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4mJik7CisjZW5kaWYKKwogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBEZWxlZ2F0ZUNh
bGxiYWNrIG1fZGVsZWdhdGVDYWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NzJhMTY2MGE1ZDkuLjcxYmJl
YzFmODYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjM2MjcsMTMgKzIzNjI3LDYgQEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTkzRjZCODBFMjU2NkVERTEwMEEwODQ4
OCAvKiBjb2NvYSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0J
CQkpOwotCQkJcGF0aCA9IGNvY29hOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsK
IAkJOTQ2RDM3MjcxRDZDQjIyNTAwNzcwODRGIC8qIHBhcnNlciAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNTY2NCw3ICsyNTY1Nyw2IEBACiAJCUFBMkE1
QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAotCQkJCTkzRjZCODBFMjU2NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAq
LywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93K1NwZWVjaFN5bnRo
ZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1Nw
ZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERP
TVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggODhlMTUx
YjEyMjI0Li44MDJiN2NmMWVlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtNTAsNiArNTAsNyBA
QCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9TaGFy
ZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1JlbW90
ZUxheWVyVHJlZSIKICAgICAiJHtXRUJLSVRfRElSfS9TaGFyZWQvV2Vic2l0ZURhdGEiCisgICAg
IiR7V0VCS0lUX0RJUn0vU2hhcmVkL21lZGlhIgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vz
cyIKICAgICAiJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJIgogICAgICIke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQyIKQEAgLTEwMyw2ICsxMDQsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1NwZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRf
RElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTg1LDYgKzE4Nyw5IEBAIHNldChX
ZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyCiAKKyAgICBTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIKKyAgICBTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwog
ICAgIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5CiAgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MThkOTAxMzExNWNjLi42ZDEwMmIwMDRhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTU0IEBACisy
MDIwLTEyLTA0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgT24gaU9TLCBhdWRpbyBjYXB0dXJlIGlzIGRvbmUgaW4gd2Vi
IHByb2Nlc3MuIEZvciBzcGVlY2ggcmVjb2duaXRpb24sIHJlY29nbml6ZXIgaXMgaW4gVUkgcHJv
Y2Vzcy4gVGhlcmVmb3JlLAorICAgICAgICBVSSBwcm9jZXNzIG5lZWRzIHRvIGFzayB3ZWIgcHJv
Y2VzcyB0byBjYXB0dXJlIGF1ZGlvIGFuZCBzZW5kIGJhY2sgZGF0YS4gVG8gaW1wbGVtZW50IHRo
aXMsIHRoaXMgcGF0Y2ggYWRkZWQ6CisgICAgICAgIC0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVjdCB0byBh
IHJlbW90ZSAKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSAob3duZWQgYnkg
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2UpIGluIGEgZGlm
ZmVyZW50IHByb2Nlc3MuCisgICAgICAgIC0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6IG1hbmFnZSBhbGwgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZXMuCisgICAgICAgIC0gUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2UuCisgICAgICAgIC0gUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6IG93biBhbmQgbW9uaXRvciBhIGxvY2FsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UuCisKKyAgICAgICAgT3JpZ2luYWwgV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIGlzIHJlbmFtZWQgdG8gV2ViS2l0OjpXZWJSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLiBXZSBzaG91bGQKKyAgICAgICAgcmVwbGFjZSBXZWJSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eSB3aXRoCisgICAgICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Us
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLCBSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciBsYXRlciB0byByZWR1Y2UgCisgICAgICAgIHJlZHVuZGFudCBjb2RlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFs
dGltZU1lZGlhU291cmNlOjp+UmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydCk6
CisgICAgICAgIChXZWJLaXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlOjphcHBs
eUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldHRpbmdzIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25l
KToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0
OjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6flJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmdyYW50U2Fu
ZGJveEV4dGVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OmNsb25lU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJL
aXQ6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXF1ZXN0VG9FbmQpOgorICAgICAgICAq
IFNoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBTaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OnNvdXJjZVR5cGVGcm9tRGV2aWNlVHlwZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
Ojp+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUNhcHR1cmVGYWlsZWQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3Vy
Y2VTdG9wcGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
d2hlblJlYWR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
bG9uZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNsb25l
VmlkZW9Tb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzZXRDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpzZXRTZXR0aW5ncyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2hvdWxkQXBw
bHlSb3RhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BCZWluZ09ic2VydmVkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5k
KToKKyAgICAgICAgKiBTaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6aWRlbnRp
ZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmNhcHR1cmVEZXZpY2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjb25zdHJhaW50cyBjb25zdCk6CisgICAgICAgICogU2hhcmVkL21lZGlhL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlRnJvbUNsb25lKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YXBw
bHlDb25zdHJhaW50c1N1Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKToKKyAgICAgICAgKiBT
aGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisg
ICAgICAgICogU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1l
c3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVS
ZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNldFJlYWx0aW1lTWVk
aWFTb3VyY2VDcmVhdGVGdW5jdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVu
c3VyZVJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6ZW5zdXJlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpSZW1vdGVBdWRpbyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVv
RmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVy
ZVNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAuCisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OnNvdXJjZVR5
cGVGcm9tRGV2aWNlVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6Ondo
ZW5SZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzZXRBc1JlYWR5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjbG9uZVZpZGVvU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2V0dGluZ3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVW
aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFNob3VsZEFwcGx5Um90
YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
YXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpoYXNFbmRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1
cmVTdG9wcGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6Y2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN0b3BCZWluZ09ic2VydmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmguCisg
ICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIg
Y29uc3QpOgorCiAyMDIwLTEyLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBz
aG91bGQgYmUgY2FuY2VsYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IGU1MWNhZWQyMWUxOC4uNzI2MDU3MzBmMWNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC05MSw2ICs5MSw4
IEBAICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9TaGFyZWQvSFRUUFNVcGdyYWRlL0hUVFBTVXBncmFkZUxpc3QudHh0CiAk
KFBST0pFQ1RfRElSKS9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL1dlYkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvQXV0
b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVBy
b2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlODhi
MmMyMWZhNzEuLjA1ZmIzZWY2NWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzEsNiArMTMxLDkgQEAgJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXNS
ZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Bs
dWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlck1lc3NhZ2VzLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXJNZXNzYWdlcy5oCkBAIC0yMjQsNiArMjI3LDkgQEAgJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFTb3VyY2VQcm94eU1lc3Nh
Z2VzUmVwbGkKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmpl
Y3RSZWdpc3RyeU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2ODE0ODU1ZmY5ZDIuLmY5YzZmZGQyM2FlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTM4LDYgKzEzOCw4IEBAIE1FU1NBR0VfUkVD
RUlWRVJTID0gXAogCVNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eSBc
CiAJU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlciBcCiAJU2hhcmVk
L1dlYkNvbm5lY3Rpb24gXAorCVNoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciBcCisJU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlV
SVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKIAlVSVByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRp
YS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
ZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi5kN2RiYjY2MzRhNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAg
LTAsMCArMSwzMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQXVk
aW9EYXRhLmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgPFdl
YkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZWFsdGltZU1lZGlhU291cmNlCisgICAg
OiBwcml2YXRlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgLCBw
cml2YXRlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZTo6Q2xpZW50CisjZW5kaWYKK3sKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiYm
IHNvdXJjZSwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgICAgICA6IG1f
aWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNl
KSkKKyAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
dGhpcykpKQorI2VuZGlmCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOworICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7Cisg
ICAgfQorCisgICAgflJlYWx0aW1lTWVkaWFTb3VyY2UoKQorICAgIHsKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICAgICAgc3RvcmFnZSgpLmludmFsaWRhdGUoKTsKKyNlbmRpZgorICAgICAgICBt
X3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fc291
cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgfQorCisgICAgdm9pZCBzdGFydCgpCisg
ICAgeworICAgICAgICBtX3NvdXJjZS0+c3RhcnQoKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3Ao
KQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0b3AoKTsKKyAgICB9CisKKyAgICB2b2lkIHJl
cXVlc3RUb0VuZCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+cmVxdWVzdFRvRW5kKCp0aGlz
KTsKKyAgICB9CisKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpB
cHBseUNvbnN0cmFpbnRzRXJyb3I+IGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCisgICAgeworICAgICAgICByZXR1cm4gbV9zb3Vy
Y2UtPmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMpOworICAgIH0KKworICAgIGNvbnN0IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fc291cmNlLT5zZXR0aW5ncygpOworICAgIH0KKworICAgIFJl
ZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gbV9zb3VyY2UtPmNsb25lKCk7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0
b3JhZ2UoKSk7CisgICAgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9w
cGVkKCkgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwo
KSkgeworICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZChtX2lkZW50aWZpZXIp
LCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1v
dGVTb3VyY2VTdG9wcGVkKG1faWRlbnRpZmllciksIDApOworICAgIH0KKworICAgIHZvaWQgYXVk
aW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgV2ViQ29yZTo6
UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykgZmluYWwKKyAg
ICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRl
c2NyaXB0aW9uKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNj
cmlwdGlvbigpLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0
cmVhbUJhc2ljVHlwZSk7CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0PGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVz
Y3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMg
PSBtX2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAgICBtX3JpbmdCdWZm
ZXIuYWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9m
RnJhbWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChpczxXZWJDb3JlOjpXZWJBdWRp
b0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOworICAgICAgICBtX3JpbmdCdWZmZXIuc3RvcmUoZG93
bmNhc3Q8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVt
YmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgICAgICB1aW50NjRfdCBzdGFydEZy
YW1lOworICAgICAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLmdl
dEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9m
RnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAgICAgICAgVU5VU0VE
X1BBUkFNKHRpbWUpOworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsKKyAgICAgICAg
VU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG51bWJlck9m
RnJhbWVzKTsKKyNlbmRpZgorICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisgICAgdm9p
ZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsCisgICAgeworICAg
ICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChzdG9yYWdlKQor
ICAgICAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQ
cm90ZWN0aW9uOjpSZWFkT25seSk7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhXSU5ET1dTKQorICAg
ICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxzZQorICAgICAgICB1
aW50NjRfdCBkYXRhU2l6ZSA9IDA7CisjZW5kaWYKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U2V0U3RvcmFnZSht
X2lkZW50aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCAg
ZGF0YVNpemUgfSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZyYW1lcyksIDApOworICAgIH0K
KworI2VuZGlmCisKKyAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpIGZpbmFsCisgICAgewor
I2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgICAgICBhdXRvIGJ1ZmZlclNpemUgPSBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkgLyA1MDsKKyAgICAg
ICAgaWYgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnByZWZlcnJlZEJ1
ZmZlclNpemUoKSA+IGJ1ZmZlclNpemUpCisgICAgICAgICAgICBXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOwor
ICAgICAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29y
eShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQsIFdlYkNvcmU6OlJvdXRlU2hh
cmluZ1BvbGljeTo6RGVmYXVsdCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVy
OworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsg
fTsKKyNlbmRpZgorfTsKKworUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29u
bmVjdGlvbihjb25uZWN0aW9uKQoreworfQorCitSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
flJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKK30KKworI2lmIEVOQUJMRShTQU5EQk9Y
X0VYVEVOU0lPTlMpCisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmdyYW50U2Fu
ZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZv
clRDQ0QsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JNaWNyb3Bo
b25lKQoreworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yVENDRCkpOworICAgIGlmICghbV9zYW5k
Ym94RXh0ZW5zaW9uRm9yVENDRCkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRl
IHNhbmRib3ggZXh0ZW5zaW9uIGZvciB0Y2NkIik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRi
b3hFeHRlbnNpb25Gb3JUQ0NELT5jb25zdW1lKCk7CisKKyAgICBtX3NhbmRib3hFeHRlbnNpb25G
b3JNaWNyb3Bob25lID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJveEhh
bmRsZUZvck1pY3JvcGhvbmUpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3Jv
cGhvbmUpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVu
c2lvbiBmb3IgbWljcm9waG9uZSIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uRm9yTWljcm9waG9uZS0+Y29uc3VtZSgpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCit7CisgICAgaWYgKG1fc2FuZGJv
eEV4dGVuc2lvbkZvclRDQ0QpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+
cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBudWxscHRyOwor
ICAgIH0KKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKSB7CisgICAg
ICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPnJldm9rZSgpOworICAgICAgICBt
X3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gbnVsbHB0cjsKKyAgICB9Cit9CisKKyNl
bmRpZgorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBXZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOworICAgIHN3aXRjaCAoY2FwdHVy
ZURldmljZS50eXBlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIFdURk1vdmUoaGFzaFNhbHQp
LCAmY29uc3RyYWludHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgV1RGTW92
ZShoYXNoU2FsdCksICZjb25zdHJhaW50cyk7CisgICAgICAgIGlmIChzb3VyY2VPckVycm9yKQor
ICAgICAgICAgICAgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5tb25pdG9yT3JpZW50YXRp
b24obV9vcmllbnRhdGlvbk5vdGlmaWVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIHNvdXJjZU9yRXJy
b3IgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5kaXNw
bGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2
aWNlLCAmY29uc3RyYWludHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgYm9vbCBzdWNjZWVkZWQgPSAhIXNv
dXJjZU9yRXJyb3I7CisgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50czsKKyAgICBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CisgICAgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7CisgICAgaWYgKHN1Y2Nl
ZWRlZCkgeworICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7Cisg
ICAgICAgIHNldHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOworICAgICAgICBjYXBhYmlsaXRp
ZXMgPSBzb3VyY2UtPmNhcGFiaWxpdGllcygpOworICAgICAgICBBU1NFUlQoIW1fc291cmNlcy5j
b250YWlucyhpZGVudGlmaWVyKSk7CisgICAgICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwg
bWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlPihpZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJj
ZSksIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW52YWxp
ZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CisKKyAg
ICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZWVkZWQsIGludmFsaWRDb25zdHJhaW50cywgV1RGTW92
ZShzZXR0aW5ncyksIFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNl
LT5zdGFydCgpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
aWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291
cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9j
b25uZWN0aW9uLnB0cigpOworfQorCit1aW50NjRfdCBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiAwOwor
fQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjbG9uZVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZpZXIpCit7CisgICAg
YXV0byBvcmlnaW5hbFNvdXJjZSA9IG1fc291cmNlcy5nZXQob3JpZ2luYWxJZGVudGlmaWVyKTsK
KyAgICBpZiAoIW9yaWdpbmFsU291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQo
IW1fc291cmNlcy5jb250YWlucyhuZXdJZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChu
ZXdJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2U+KG5ld0lkZW50aWZp
ZXIsIG9yaWdpbmFsU291cmNlLT5jbG9uZSgpLCBtX2Nvbm5lY3Rpb24uY29weVJlZigpKSk7Cit9
CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNldFNob3VsZEFwcGx5Um90YXRp
b24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgYm9v
bCBzaG91bGRBcHBseVJvdGF0aW9uKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNl
cy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RvcCgpOworfQorCit2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIGF1dG8gc291cmNlID0gbV9zb3VyY2Vz
LmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMpOwor
ICAgIGlmICghcmVzdWx0KQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6QXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChpZGVudGlmaWVyLCBz
b3VyY2UtPnNldHRpbmdzKCkpKTsKKyAgICBlbHNlCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRzRmFpbGVkKGlk
ZW50aWZpZXIsIHJlc3VsdC0+YmFkQ29uc3RyYWludCwgcmVzdWx0LT5tZXNzYWdlKSk7Cit9CisK
K3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlcXVlc3RUb0VuZChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRv
IHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVx
dWVzdFRvRW5kKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44NTJjYjMz
YWExMjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2Fu
ZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvT3JpZW50YXRpb25Ob3RpZmllci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKyNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgQ2FwdHVyZURldmljZTsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsK
K2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM7CitzdHJ1Y3QgTWVkaWFDb25z
dHJhaW50czsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2Fn
ZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoSVBDOjpDb25uZWN0aW9uJik7CisgICAgflJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisKK3ByaXZhdGU6CisgICAgLy8gTWVzc2FnZXMKKyAgICB2
b2lkIGFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2Nl
ZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
Jik+JiYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgY2xvbmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgb3JpZ2luYWxJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBuZXdJZGVudGlmaWVyKTsKKyAgICB2b2lkIHNldFNob3VsZEFw
cGx5Um90YXRpb24oV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGJvb2wg
c2hvdWxkQXBwbHlSb3RhdGlvbik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJik7CisgICAgdm9pZCByZXF1ZXN0VG9FbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIpOworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgdm9p
ZCBncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9pZCByZXZva2VTYW5kYm94RXh0ZW5zaW9u
cygpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgY2xhc3MgUmVhbHRpbWVN
ZWRpYVNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZTsKKworICAg
IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4+IG1fc291cmNlczsKKyAgICBXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVy
IG1fb3JpZW50YXRpb25Ob3RpZmllciB7IDAgfTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVO
U0lPTlMpCisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZv
clRDQ0Q7CisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZv
ck1pY3JvcGhvbmU7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi4wOWVkYmI5MGRlYzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMCwwICsxLDQ0IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisj
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgQWRkU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0
cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKSBBc3lu
YworICAgIFJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQorICAgIFN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIpOworICAgIFN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisKKyAgICBDbG9uZVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBvcmlnaW5hbElkZW50aWZpZXIsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG5ld0lkZW50aWZpZXIpCisgICAgU2V0U2hvdWxk
QXBwbHlSb3RhdGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCisgICAgQXBwbHlDb25zdHJhaW50cyhX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykKKyAgICBSZXF1ZXN0VG9FbmQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9y
VENDRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhh
bmRsZUZvck1pY3JvcGhvbmUpCisgICAgUmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorI2VuZGlm
Cit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlh
L1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uNGE0NDZlOTMwOGQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCAr
MSwzMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RhdGljIGlubGluZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHNvdXJj
ZVR5cGVGcm9tRGV2aWNlVHlwZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRl
dmljZVR5cGUpCit7CisgICAgc3dpdGNoIChkZXZpY2VUeXBlKSB7CisgICAgY2FzZSBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICByZXR1cm4g
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87CisgICAgY2FzZSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgY2FzZSBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CisgICAgY2FzZSBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKKyAgICBjYXNlIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9CisgICAgcmV0dXJuIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6Ok5vbmU7Cit9CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2Us
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlLCBjb25zdHJhaW50cywgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKK30KKworUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmlj
ZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBPcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcj4gb3JpZ2luYWxJZGVudGlmaWVyKQorICAgIDogV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZShzb3VyY2VUeXBlRnJvbURldmljZVR5cGUoY2FwdHVyZURldmljZS50
eXBlKCkpLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVyLnRvVUludDY0
KCkpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQor
ICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQorICAgICwgbV9jYXB0dXJlRGV2
aWNlKGNhcHR1cmVEZXZpY2UpCisgICAgLCBtX2NvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKQorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6
Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxs
cHRyKSkpCisjZW5kaWYKK3sKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3dpdGNo
IChtX2NhcHR1cmVEZXZpY2UudHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgorICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0
aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5zZXRB
Y3RpdmVTb3VyY2UoKnRoaXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyOgorICAgIGNhc2UgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoIW9yaWdpbmFsSWRlbnRp
ZmllcikgeworICAgICAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgqdGhpcyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBtX21hbmFnZXItPmFkZFNvdXJjZUZyb21DbG9uZSgqdGhpcywg
Km9yaWdpbmFsSWRlbnRpZmllcik7Cit9CisKK1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIHN3aXRjaCAobV9jYXB0dXJlRGV2aWNlLnR5cGUoKSkgeworICAgIGNhc2UgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKKyAgICAgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9y
eSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6CisgICAgICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZh
Y3RvcnkoKS51bnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgorICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgorICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXI6
CisgICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtub3duOgor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmICht
X21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlzKTsKK30KKwor
dm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQorewor
ICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNzYWdlczo6UmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0IHsgbV9pZGVudGlmaWVyIH0pOworfQorCit2
b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKK3sKKyAg
ICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6OlJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVudGlmaWVyIH0pOworfQorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3Rv
cmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisKKyAgICBSZWZQdHI8
U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAg
ICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3Rl
Y3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHNo
YXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2UiKTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9y
YWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIt
PnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5k
ZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAg
ICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0
b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNj
cmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9
CisKKyNlbmRpZgorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUNhcHR1
cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVkKCkKK3sKKyAgICBzdG9wKCk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAobV9pc1JlYWR5KQor
ICAgICAgICByZXR1cm4gY2FsbGJhY2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkpOworICAgIG1f
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpzZXRBc1JlYWR5KCkKK3sKKyAgICBtX2lzUmVhZHkgPSB0cnVlOworICAgIGlm
IChtX2NhbGxiYWNrKQorICAgICAgICBtX2NhbGxiYWNrKHsgfSk7Cit9CisKK3ZvaWQgUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCit7Cisg
ICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JN
ZXNzYWdlKTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjayhtX2Vycm9y
TWVzc2FnZSk7Cit9CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpjbG9uZSgpCit7CisgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAg
ICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAgICAgICByZXR1cm4g
Y2xvbmVWaWRlb1NvdXJjZSgpOworICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
QXVkaW86CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4gKnRoaXM7CisgICAgfQorfQorCitSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSgpCit7CisgICAg
aWYgKCFtX21hbmFnZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpjbG9uZVZpZGVvU291cmNlIG1hbmFnZXIgZG9lcyBub3QgZXhpc3QiKTsKKyAgICAg
ICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIGF1dG8gaWRlbnRpZmllciA9IFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIGF1dG8gbGFi
ZWwgPSBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCk7CisgICAgYXV0byBjbG9uZVNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShpZGVudGlmaWVyLCAqbV9t
YW5hZ2VyLCBtX2NhcHR1cmVEZXZpY2UsIG1fY29uc3RyYWludHMsIFN0cmluZyB7IGxhYmVsIH0s
IGRldmljZUlESGFzaFNhbHQoKSwgbV9pZGVudGlmaWVyKSk7CisgICAgY2xvbmVTb3VyY2UtPnNl
dFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7IG1fc2V0dGlu
Z3MgfSk7CisgICAgcmV0dXJuIGNsb25lU291cmNlOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQoreworICAgIG1fY2FwYWJpbGl0aWVzID0gV1RG
TW92ZShjYXBhYmlsaXRpZXMpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRp
bmdzKQoreworICAgIGF1dG8gY2hhbmdlZCA9IG1fc2V0dGluZ3MuZGlmZmVyZW5jZShzZXR0aW5n
cyk7CisgICAgbV9zZXR0aW5ncyA9IFdURk1vdmUoc2V0dGluZ3MpOworICAgIG5vdGlmeVNldHRp
bmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVu
ZEZyYW1lKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9idWZmZXIpIHsKKyAg
ICAgICAgTE9HX0VSUk9SKCJCdWZmZXIgZm9yIHJlbW90ZSBzb3VyY2UgaXMgbnVsbCIpOworICAg
ICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2J1
ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmluZ0J1ZmZlci0+
c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICBtX3JpbmdC
dWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVW
YWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1fYnVmZmVyLCBtX2Rl
c2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0aW1l
KTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworICAgIFVOVVNFRF9QQVJBTShz
dGFydEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZW5kRnJhbWUpOworI2VuZGlmCit9CisKKyNp
ZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1v
dGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90
ZVNhbXBsZSkKK3sKKyAgICBBU1NFUlQodHlwZSgpID09IFR5cGU6OlZpZGVvKTsKKworICAgIHNl
dEludHJpbnNpY1NpemUocmVtb3RlU2FtcGxlLnNpemUoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VU
cmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAh
PSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbiA9IFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1w
bGUudmlkZW9Gb3JtYXQoKSk7CisKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvIHNhbXBsZVJlZiA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZU1lZGlh
U2FtcGxlKHJlbW90ZVNhbXBsZSk7CisgICAgaWYgKCFzYW1wbGVSZWYpIHsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWFsdGlt
ZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVmKTsKK30KKworI2Vu
ZGlmCisKK2Jvb2wgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2hvdWxkQXBwbHlSb3Rh
dGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pCit7CisgICAgaWYgKG1fbWFuYWdlcikgewor
ICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpTZXRTaG91bGRBcHBseVJvdGF0aW9uIHsgbV9pZGVudGlmaWVyLCBzaG91bGRBcHBseVJv
dGF0aW9uIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMo
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFwcGx5Q29uc3Ry
YWludHNIYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX21hbmFnZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFj
a3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX21hbmFnZXItPnNl
bmQoTWVzc2FnZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBcHBseUNvbnN0cmFpbnRz
IHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGNvbnN0IFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit7CisgICAgc2V0U2V0dGluZ3Mo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzKHNldHRpbmdzKSk7CisgICAgYXV0
byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0
KCk7CisgICAgY2FsbGJhY2soeyB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0
cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nQXBw
bHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKKyAgICBjYWxsYmFjayhBcHBseUNv
bnN0cmFpbnRzRXJyb3IgeyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9y
TWVzc2FnZSkgfSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcEJl
aW5nT2JzZXJ2ZWQoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+
c2VuZChNZXNzYWdlczo6UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlcXVlc3RUb0VuZCB7
IG1faWRlbnRpZmllciB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpy
ZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIHN3aXRjaCAodHlwZSgpKSB7
CisgICAgY2FzZSBUeXBlOjpBdWRpbzoKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVx
dWVzdFRvRW5kKG9ic2VydmVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpWaWRl
bzoKKyAgICAgICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGY1OWM4MDUzMDI5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5o
PgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNlbmRpZgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworCisjaWYgUExBVEZPUk0oQ09D
T0EpCitjbGFzcyBDQVJpbmdCdWZmZXI7CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwor
Y2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0OworI2VuZGlmCit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKworY2xhc3MgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IGNyZWF0ZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOworICAgIH5SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlKCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2Fw
dHVyZURldmljZTsgfTsKKyAgICBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWludHM7IH07CisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUm
LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcyk7CisjZW5kaWYKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1l
LCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKCk7Cisg
ICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
dm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBs
ZSYmKTsKKyNlbmRpZgorCisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKGNvbnN0
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAgIHZvaWQgYXBwbHlD
b25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJv
ck1lc3NhZ2UpOworICAgIHZvaWQgZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpOworICAg
IHZvaWQgc2V0QXNSZWFkeSgpOworICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik7CisgICAgdm9pZCBzZXRTZXR0aW5ncyhX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CisKK3ByaXZhdGU6CisgICAg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBPcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcj4gb3JpZ2luYWxJZGVudGlmaWVyID0gV1RGOjpudWxsb3B0KTsK
KyAgICBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmVWaWRlb1NvdXJjZSgp
OworICAgIAorICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2b2lkIHN0
YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBm
aW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
JiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIGNv
bnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5h
bCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBzZXRTaG91bGRBcHBseVJvdGF0aW9u
KGJvb2wpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJikgZmluYWw7Cisg
ICAgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgpIGZpbmFsOworICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hh
bmRsZXImJikgZmluYWw7CisgICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcpPiYmKSBmaW5hbDsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmUo
KSBmaW5hbDsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKKyAgICBXZWFrUHRyPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
PiBtX21hbmFnZXI7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyBtX2NhcGFiaWxpdGllczsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MgbV9zZXR0aW5nczsKKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fY2FwdHVyZURldmlj
ZTsKKyAgICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CisKKyAgICBE
ZXF1ZTxBcHBseUNvbnN0cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0Nh
bGxiYWNrczsKKyAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07CisgICAgU3RyaW5nIG1fZXJy
b3JNZXNzYWdlOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFj
azsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJp
bmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2Vi
QXVkaW9CdWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKKyNlbmRpZgor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNWU1
YjY4YjYzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgU2hvdWxkSGFuZGxlU2FuZGJveEV4dGVuc2lvbnMgc2hvdWxkSGFuZGxlU2Fu
ZGJveEV4dGVuc2lvbnMpCisgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKKyAgICAsIG1f
c2hvdWxkSGFuZGxlU2FuZGJveEV4dGVuc2lvbnMoc2hvdWxkSGFuZGxlU2FuZGJveEV4dGVuc2lv
bnMpCit7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNv
dXJjZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7CisgICAgYXV0byBpZGVu
dGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250
YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlV2Vh
a1B0cihzb3VyY2UpKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisgICAgaWYgKCFtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9u
cyAmJiBtX3Nob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zID09IFNob3VsZEhhbmRsZVNhbmRi
b3hFeHRlbnNpb25zOjpZZXMpIHsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhh
bmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
Y2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX2Nvbm5lY3Rpb24tPmdldEF1ZGl0VG9rZW4o
KSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5k
bGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVG
b3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhvbmUiX3MsIGhhbmRs
ZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6R3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhoYW5kbGVGb3JUQ0NELCBoYW5kbGVG
b3JNaWNyb3Bob25lKSk7CisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0g
dHJ1ZTsKKyAgICB9CisjZW5kaWYKKworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkFkZFNvdXJjZSB7IGlkZW50aWZpZXIsIHNvdXJj
ZS5jYXB0dXJlRGV2aWNlKCksIHNvdXJjZS5kZXZpY2VJREhhc2hTYWx0KCksIHNvdXJjZS5jb25z
dHJhaW50cygpIH0sICBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgaWRlbnRp
Zmllcl0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5n
cywgYXV0byYmIGNhcGFiaWxpdGllcykgeworICAgICAgICBhdXRvIHNvdXJjZSA9IG1fc291cmNl
cy5nZXQoaWRlbnRpZmllcik7CisgICAgICAgIGlmICghc291cmNlKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CisgICAgICAgICAgICBzb3VyY2UtPmRp
ZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIHNvdXJjZS0+c2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgp
LnN0cmluZygpIH0pOworICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGlu
Z3MpKTsKKyAgICAgICAgc291cmNlLT5zZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBhYmlsaXRp
ZXMpKTsKKyAgICAgICAgc291cmNlLT5zZXRBc1JlYWR5KCk7CisgICAgfSk7Cit9CisKK3ZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZUZyb21DbG9uZShSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIG9yaWdpbmFsSWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9zb3VyY2Vz
LmNvbnRhaW5zKG9yaWdpbmFsSWRlbnRpZmllcikpOworICAgIGF1dG8gaWRlbnRpZmllciA9IHNv
dXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRp
ZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgbWFrZVdlYWtQdHIoc291cmNl
KSk7CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Q2xv
bmVTb3VyY2UgeyBvcmlnaW5hbElkZW50aWZpZXIsIGlkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNl
LmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQobV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAm
c291cmNlKTsKKyAgICBtX3NvdXJjZXMucmVtb3ZlKGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxF
KFNBTkRCT1hfRVhURU5TSU9OUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAo
bV9zb3VyY2VzLmlzRW1wdHkoKSAmJiBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgewor
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tl
U2FuZGJveEV4dGVuc2lvbnMoKSk7CisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNp
b25zID0gZmFsc2U7CisgICAgfQorI2VuZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3ZlU291cmNlIHsgaWRlbnRpZmllciB9KTsKK30KKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpzZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0
IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQo
aWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUuaGFuZGxl
LCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9pZCBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IFdURjo6TWVkaWFUaW1lJiB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qg
c3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0g
bV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVBdWRpb1Nh
bXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1l
KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2Fw
dHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikp
CisgICAgICAgIHNvdXJjZS0+cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1
dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5y
ZW1vdGVTb3VyY2VTdG9wcGVkKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit1aW50NjRfdCBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dAoreworICAgIHJldHVybiAwOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3Vy
Y2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3Vj
Y2VlZGVkKHNldHRpbmdzKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcm
JiBtZXNzYWdlKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRp
ZmllcikpCisgICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZh
aWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKG1lc3NhZ2UpKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRp
YS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhjZGRjZTZlOTE3ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisKK25hbWVz
cGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBDYXB0dXJlRGV2aWNlOworY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
czsKK2NsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczsKK3N0cnVjdCBNZWRpYUNvbnN0
cmFpbnRzOworCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U7CisKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlU2Vu
ZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBlbnVtIGNs
YXNzIFNob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25zIDogYm9vbCB7IE5vLCBZZXMgfTsKKyAg
ICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihJUEM6OkNvbm5lY3Rpb24mLCBTaG91
bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyA9IFNob3VsZEhhbmRsZVNhbmRib3hFeHRlbnNpb25z
OjpZZXMpOworICAgIHZvaWQgYWRkU291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsK
KyAgICB2b2lkIGFkZFNvdXJjZUZyb21DbG9uZShSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3Zl
U291cmNlKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworcHJpdmF0ZToKKyAgICAvLyBN
ZXNzYWdlczo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAgICB2b2lkIHJlbW90
ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWlu
dDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2Fw
dHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3RyaW5nJiYsIFN0cmluZyYmKTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29u
c3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJy
aWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiog
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNz
YWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmPElQQzo6Q29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1f
c291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zIHsgZmFsc2Ug
fTsKKyAgICBTaG91bGRIYW5kbGVTYW5kYm94RXh0ZW5zaW9ucyBtX3Nob3VsZEhhbmRsZVNhbmRi
b3hFeHRlbnNpb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21lZGlhL1Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmJiMDUyMWFkOTkxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWVkaWEvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw0MCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIFNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBz
dG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRp
b24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorI2VuZGlmCisKKyAgICBSZW1vdGVBdWRpb1Nh
bXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICBSZW1vdGVDYXB0dXJlRmFpbGVk
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAg
UmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQorCisgICAgQXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCisgICAgQXBwbHlDb25zdHJhaW50c0ZhaWxl
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJp
bmcgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nIG1lc3NhZ2UpCit9CisKKyNlbmRpZgorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAppbmRleCA0ZWE0YWZiZDY5ZjEuLjI0MjllNDRlZWJkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0y
NzcsNiArMjc3LDEwIEBAIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0aW9u
LmNwcCBAbm8tdW5pZnkKIAogU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAogCitT
aGFyZWQvbWVkaWEvUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCitTaGFyZWQvbWVkaWEv
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKK1NoYXJlZC9tZWRpYS9SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKwogVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94
eS5jcHAKIFVJUHJvY2Vzcy9CYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CiBVSVByb2Nlc3MvRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKaW5kZXggNTA4NzM4YmMyMWFmLi40ZjA3ZjAwYmI5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKQEAgLTU2NywxMCArNTY3LDEwIEBAIFdlYlByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2ViUGF5
bWVudENvb3JkaW5hdG9yQ29jb2EubW0KIAogV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nlc3Np
b25NYW5hZ2VyLm1tCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
LmNwcAotV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAogV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvY29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KK1dlYlByb2Nlc3MvY29jb2EvV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNl
cnZpY2VFbnRyeVBvaW50Lm1tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGMuLmI5NzBmMTExMjg0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcApAQCAtOTMsNiArOTMsMTkgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24KICAg
ICAgICAgfSk7CiAgICAgfQogCisgICAgbV9yZWNvZ25pemVyLT5yZXNldCgpOworCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBtX3JlYWx0aW1lTWVk
aWFTb3VyY2VDcmVhdGVGdW5jdGlvbigpOworICAgIGlmICghc291cmNlT3JFcnJvcikgeworICAg
ICAgICBtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKyAgICAgICAgc2VuZFVw
ZGF0ZShTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpB
dWRpb0NhcHR1cmUsIHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlIH0pKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIsIHNv
dXJjZU9yRXJyb3Iuc291cmNlKCkpOworICAgIHJldHVybjsKKyNlbmRpZgorCiAgICAgbV9yZWNv
Z25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggYTdmNzZkMzhlZTUw
Li4xYTQ2YzE1OGM3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtNTcsNiArNTcsMTEgQEAgcHVibGljOgogICAgIHZvaWQg
YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cik7CiAgICAgdm9pZCBpbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB1
c2luZyBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBGdW5jdGlvbjxXZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvcigpPjsKKyAgICB2b2lkIHNldFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDcmVhdGVGdW5jdGlvbihSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJiBmdW5j
dGlvbikgeyBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IFdURk1vdmUoZnVu
Y3Rpb24pOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9u
Rm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKICAgICB2b2lk
IGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllcik7CkBAIC03NSw2ICs4MCwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7
CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVj
a2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3Jl
Y29nbml6ZXI7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbiBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsK
KyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlN2Q5Y2RmZTU1MzUuLjJkNThkMjZhZjA0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0z
Nyw2ICszNyw5IEBACiAjaW5jbHVkZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgor
I2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCkBAIC0xNzAyLDggKzE3MDUsOCBAQCBQ
QUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgpIGNvbnN0CiAKIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHNwZWVjaFJl
Y29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRp
ZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0aW9uU2VydmVyLmlzTmV3
RW50cnkpOworICAgIEFTU0VSVCghbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlu
cyhpZGVudGlmaWVyKSk7CisgICAgYXV0byYgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKS5pdGVyYXRv
ci0+dmFsdWU7CiAgICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdlID0gbnVsbHB0cjsKICAgICBm
b3IgKGF1dG8qIHBhZ2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlmIChwYWdlICYmIHBhZ2UtPndl
YlBhZ2VJRCgpID09IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsNyArMTcxOCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBtYWtlVW5pcXVl
PFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlm
aWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBh
dXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNwZWVjaFJlY29nbml0aW9u
U2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29u
bmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFn
ZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMTcyMyw3ICsxNzI2LDMwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAKICAg
ICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24ob3JpZ2lu
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7Ci0gICAgYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZh
bHVlKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25p
dGlvblNlcnZlcik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHNwZWVjaFJlY29n
bml0aW9uU2VydmVyLT5zZXRSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHdlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFn
ZSldKCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1
cmVTb3VyY2VPckVycm9yIHsgIldlYlByb2Nlc3NQcm94eSBpcyBpbnZhbGlkIiB9OworCisgICAg
ICAgIGlmICghd2Vha1BhZ2UgfHwgd2Vha1BhZ2UtPnByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlv
SW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VP
ckVycm9yIHsgIlBhZ2UgaXMgaW52YWxpZCBvciB1c2luZyBHUFUgcHJvY2VzcyBmb3IgY2FwdHVy
ZSIgfTsKKworICAgICAgICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCk7CisgICAgICAgIGlmICghY2FwdHVyZURl
dmljZSkKKyAgICAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZp
Y2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgYXV0byYgc291cmNlTWFuYWdlciA9IHdlYWtUaGlzLT5lbnN1cmVSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworICAgICAgICBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzIGNvbnN0cmFpbnRzOworICAgICAgICBjb25zdHJhaW50cy5pc1ZhbGlkID0gdHJ1ZTsK
KyAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y3JlYXRlKHNvdXJjZU1hbmFnZXIsICpjYXB0dXJlRGV2aWNlLCBjb25zdHJhaW50
cywgU3RyaW5nIHsgY2FwdHVyZURldmljZS0+bGFiZWwoKSB9LCAiU3BlZWNoUmVjb2duaXRpb24i
KSB9OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7CisjZW5kaWYKKyAg
ICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJl
Y29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlm
aWVyKQpAQCAtMTczMyw2ICsxNzU5LDIwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVuCiAgICAg
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYgV2ViUHJvY2Vzc1Byb3h5OjplbnN1cmVSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cigpCit7CisgICAgaWYgKCFtX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKSB7Cisg
ICAgICAgIG1fcmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPigqY29ubmVjdGlvbigpKTsKKyAgICAgICAg
YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqbV9yZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcik7CisgICAgfQorCisgICAgcmV0dXJuICptX3JlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGMxMGIz
OTQ4ZDc3Ni4uZTExYzdiMThiOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaApAQCAtMTAzLDYgKzEwMywxMCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVyczsKIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlOwogc3RydWN0IFdlYnNpdGVEYXRh
OwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGVudW0gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVy
VHlwZSB7IH07CiB0eXBlZGVmIFJlZkNvdW50ZXI8Rm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVy
VHlwZT4gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOwogdHlwZWRlZiBGb3JlZ3JvdW5kV2Vi
UHJvY2Vzc0NvdW50ZXI6OlRva2VuIEZvcmVncm91bmRXZWJQcm9jZXNzVG9rZW47CkBAIC01MDUs
NiArNTA5LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGRlc3Ry
b3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZp
ZXIpOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXImIGVuc3VyZVJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7Cisj
ZW5kaWYKIAogICAgIHZvaWQgc3lzdGVtQmVlcCgpOwogICAgIApAQCAtNjQzLDYgKzY1MCw5IEBA
IHByaXZhdGU6CiAKICAgICB1c2luZyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCA9IEhhc2hN
YXA8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI+PjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCBt
X3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3Jl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDhlMGRiY2I4ODU5Yi4uY2M4YTZkZmY4MGMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MDQsNiArMTQwNCwx
NiBAQAogCQk5MTk3OTQwODIzREJDNENCMDAyNTc4OTIgLyogV2ViUGFnZUluc3BlY3RvckFnZW50
QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE5
Nzk0MDcyM0RCQzRDQTAwMjU3ODkyIC8qIFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaCAqLzsg
fTsKIAkJOTE5Nzk0MEEyM0RCQzRFMDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE5Nzk0MDkyM0RC
QzRFMDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5oICovOyB9OwogCQk5MTk3OTQwQzIz
REJDNTAzMDAyNTc4OTIgLyogX1dLSW5zcGVjdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxOTc5NDBCMjNEQkM1MDMwMDI1Nzg5MiAv
KiBfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTkzMDAzRUZGMjU3OENENjEwMEYyQTNEQSAvKiBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzAwM0VGODI1NzhDNEUzMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5oICovOyB9OworCQk5MzAwM0YwMDI1NzhDRDY1MDBGMkEzREEgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMDAzRUZBMjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5MzAwM0YwMTI1NzhDRDY3MDBGMkEzREEgLyog
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDAzRUZDMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5MzAwM0YwRTI1NzhEQTM4MDBGMkEzREEgLyog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNGMEMyNTc4RDlFRDAwRjJBM0RB
IC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJ
OTMwMDNGMEYyNTc4REIwNjAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMDAzRjA3MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTkzMDAzRjEwMjU3OERCMDgwMEYyQTNE
QSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwOTI1NzhEOThDMDBGMkEzREEg
LyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQk5MzAwM0Yx
MTI1NzhEQjBBMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MDAzRjA2MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oICovOyB9OworCQk5MzAwM0YxMjI1NzhEQjBDMDBGMkEzREEgLyogUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMDNGMEIyNTc4RDlFRDAwRjJB
M0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKKwkJOTMwMDNGMTMyNTc4REIxMjAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAwM0YwRDI1NzhEOUVFMDBGMkEzREEgLyogUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJOTMx
OTM1NTMyNTdBOThFQzAwM0Y2NkQ0IC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTkzNTUxMjU3
QTk4RTgwMDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi87IH07CiAJ
CTkzMjFENTg2MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMjFENTg1
MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCAqLzsgfTsK
IAkJOTMyMUQ1OEExQTM4RjE5NjAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMjFENTg5MUEz
OEYxOTYwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMyMzYxMUUxQjAxNURBODAwRkE5
MjMyIC8qIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMyMzYxMUQxQjAxNURBODAwRkE5MjMyIC8qIF9XS092
ZXJsYXlTY3JvbGxiYXJTdHlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0zNTY4LDggKzM1NzgsNiBAQAogCQk0MTY4NEM0RDI0NjQzQkZBMDAx
Q0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzRFMjQ2NDNDODEwMDFDRThFRCAvKiBS
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTY4NEM0RjI0NjQzRDNGMDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTY4
NEM1MDI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE2ODRDNTEyNDY0NTBGRDAw
MUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTZDRDc0NTIzRkIxNzhCMDA2NjFEOTkgLyogTUROU1JlZ2lzdGVy
SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNRE5TUmVnaXN0
ZXJJZGVudGlmaWVyLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9NRE5TUmVnaXN0ZXJJZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkY4MDg2MjQ1QjM5NzQwMEI2
OEYwMiAvKiBMaWJXZWJSVENOZXR3b3JrLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IExpYldlYlJUQ05ldHdvcmsubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENOZXR3b3JrLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTZGODA4OTI0NUM3RkY1MDBCNjhGMDIgLyogTGliV2ViUlRDTmV0d29yay5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaWJXZWJSVENOZXR3b3JrLmNwcDsgcGF0
aCA9IE5ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNDU2Myw2ICs0NTcxLDIyIEBACiAJCTkxOTc5NDA3MjNEQkM0Q0EwMDI1
Nzg5MiAvKiBXZWJQYWdlSW5zcGVjdG9yQWdlbnRCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlBhZ2VJbnNwZWN0b3JBZ2VudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTE5Nzk0MDkyM0RCQzRFMDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElJbnNwZWN0b3JDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE5Nzk0MEIyM0RCQzUwMzAwMjU3
ODkyIC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS0luc3BlY3RvckRlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzMDAzRUY3MjU3OEM0RTMwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzMDAzRUY4MjU3OEM0RTMwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNFRjkyNTc4QzRFNDAw
RjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUZBMjU3OEM0RTQwMEYyQTNEQSAvKiBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzAwM0VGQjI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUZDMjU3OENDNDkwMEYyQTNEQSAvKiBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzAwM0VGRDI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRUZFMjU3
OENDNEEwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjA2MjU3OEQ5OEIwMEYyQTNE
QSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzAwM0YwNzI1NzhE
OThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzAwM0YwOTI1NzhEOThDMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzMDAzRjBCMjU3OEQ5RUQwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDAzRjBDMjU3OEQ5RUQwMEYyQTNEQSAv
KiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwMDNGMEQyNTc4RDlFRTAw
RjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzMTkzNTUxMjU3QTk4RTgwMDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMxOTM1NTIyNTdBOThFOTAwM0Y2NkQ0IC8qIFdl
YlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMjFENTg1MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjFENTg3MUEzOEVFNzQw
MDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjFENTg5MUEzOEYxOTYwMDgwNTJCRSAv
KiBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTYyNjAsNiArNjI4NCw3IEBACiAJCQkJNTE1QkUxQUUxRDU5MDAzNDAwREQ3QzY4IC8qIEdh
bWVwYWQgKi8sCiAJCQkJMkRBOTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlC
QzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTkzMDAzRUY2MjU3OEM0NTAw
MEYyQTNEQSAvKiBtZWRpYSAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0MTggLyogUGx1
Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3RlTGF5ZXJUcmVl
ICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJzaXRlRGF0YSAqLywKQEAg
LTg4MDUsOCArODgzMCw2IEBACiAJCQkJNDE2ODRDNEYyNDY0M0QzRjAwMUNFOEVEIC8qIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCAqLywKIAkJCQk0MTY4NEM0RTI0NjQzQzgxMDAxQ0U4
RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCAqLywKIAkJCQk0MTY4NEM0RDI0NjQz
QkZBMDAxQ0U4RUQgLyogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8s
Ci0JCQkJNDE2ODRDNTAyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwICovLAotCQkJCTQxNjg0QzUxMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmggKi8sCiAJCQkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCAqLywKIAkJCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLywKIAkJCQlDRDQ5MUIwQTFFNzMyRDEyMDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCkBAIC04ODE0
LDYgKzg4MzcsOCBAQAogCQkJCTUyRDVBMUIzMUM1NzQ5RjIwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTUyRDVBMUI0MUM1NzQ5RjIwMERFMzRB
MyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICovLAogCQkJCTdDNkU3MEY5MThCMkQ0QTAw
MEYyNEUyRSAvKiBXZWJQcm9jZXNzQ29jb2EubW0gKi8sCisJCQkJOTMxOTM1NTIyNTdBOThFOTAw
M0Y2NkQ0IC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCTkzMTkz
NTUxMjU3QTk4RTgwMDNGNjZENCAvKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8s
CiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTg5NzEsNiArODk5NiwyMSBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCTkzMDAzRUY2MjU3OEM0NTAwMEYyQTNEQSAvKiBtZWRpYSAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTMwMDNFRkUyNTc4Q0M0
QTAwRjJBM0RBIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5MzAw
M0VGQzI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywK
KwkJCQk5MzAwM0VGRDI1NzhDQzQ5MDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJOTMwMDNFRjkyNTc4QzRFNDAwRjJBM0RBIC8qIFJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCTkzMDAzRUY4MjU3OEM0RTMwMEYyQTNE
QSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8sCisJCQkJOTMwMDNFRjcyNTc4QzRF
MzAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywKKwkJ
CQk5MzAwM0VGQTI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLywKKwkJCQk5MzAwM0VGQjI1NzhDNEU0MDBGMkEzREEgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IG1l
ZGlhOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTM5Mjg4RTAyMTQwNERG
MDAwRUJCQTMzIC8qIEluZGV4ZWREQiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC0xMDQ5Miw2ICsxMDUzMiw5IEBACiAJCQkJMUEwNDNCNUMxMjRENUU5RDAw
RkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUE4RUZBNkUx
MjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJ
CQkxQThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlcy5oICovLAor
CQkJCTkzMDAzRjA3MjU3OEQ5OEIwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTMwMDNGMDkyNTc4RDk4QzAwRjJBM0RBIC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5MzAwM0YwNjI1
NzhEOThCMDBGMkEzREEgLyogUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCAqLywKIAkJCQlDREQ1MzU3NjI0MERERTA3MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNz
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDREQ1MzU3NTI0MERERTA3MDBGN0I4QzQg
LyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXMuaCAqLywKIAkJCQlDREQ1MzU3NDI0MERERTA3
MDBGN0I4QzQgLyogUmVtb3RlQXVkaW9TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0x
MDU0NSw2ICsxMDU4OCw5IEBACiAJCQkJMUREMkE2NjEyNTYxMjJGMTAwRkY3QjZGIC8qIFJlbW90
ZU1lZGlhU291cmNlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkxQUMxMzM4MzE4NTkw
QzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCTFBQzEzMzg0MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1l
c3NhZ2VzLmggKi8sCisJCQkJOTMwMDNGMEIyNTc4RDlFRDAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk5MzAwM0Yw
QzI1NzhEOUVEMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oICovLAorCQkJCTkzMDAzRjBEMjU3OEQ5RUUwMEYyQTNEQSAvKiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTBGNTk0N0E1MTg3
QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJMEY1OTQ3QTYxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCAqLywKIAkJCQkxREQyQTY2QjI1NjIwMjFFMDBGRjdCNkYg
LyogUmVtb3RlU291cmNlQnVmZmVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTE1
NDAsNiArMTE1ODYsOSBAQAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBRdWFyYW50
aW5lU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBDMjI3RTI0NTExMzBBMDBFRDYxNEQgLyog
UXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRUU1
NzI1MjQwOUYxNDIwMDIwMDVENiAvKiBRdWlja0xvb2tUaHVtYm5haWxMb2FkZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzMDAzRjAxMjU3OENENjcwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwMDNGMTAyNTc4REIwODAwRjJBM0RB
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzMDAzRjExMjU3OERCMEEwMEYyQTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdGRDMxODIyMkIzNTE1RTAw
OEQwRThCIC8qIFJlZGlyZWN0U09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOUIxMjI5RDIyM0ZGMkJDQzAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25J
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjEyMjlDRDIzRkYyNUYyMDA4Q0E3NTEg
LyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE1
ODAsNiArMTE2MjksMTAgQEAKIAkJCQkxQTU3MDRGQzFCRTE3NTExMDA4NzRBRjEgLyogUmVtb3Rl
T2JqZWN0SW52b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzODAxODU5MEFFNDAw
RjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUMx
MzM4NjE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTMwMDNFRkYyNTc4Q0Q2MTAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRjAwMjU3OENENjUwMEYy
QTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTMwMDNGMEUyNTc4REEzODAwRjJBM0RBIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMDAzRjEzMjU3OERCMTIw
MEYyQTNEQSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OTAxODdCM0IzQTAwNDM3ODU3IC8qIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBODE4N0I1
MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY1OTQ3OUIxODdCM0I2MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLApAQCAtMTE4ODUsNiArMTE5MzgsNyBA
QAogCQkJCTFBMUUwOTM0MTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkY1ODlEMTJBODgzODgwMDYyOTUzMCAvKiBXZWJQ
cm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MUNDQ0E2MjMxNDg1QUEwMEI2
NTlCOSAvKiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMx
OTM1NTMyNTdBOThFQzAwM0Y2NkQ0IC8qIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1ODYwRTcxMjMwRjY3RkMwMDQ2MUFBRSAvKiBXZWJSZXNvdXJj
ZUludGVyY2VwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMEFGRkJBMTY1NDIw
NDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFG
MDYwRTAxNjU0MzE3RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTMzNzMsNiArMTM0MjcsNyBAQAogCQkJCTJENTRDMzFCMjEyRjREQTYw
MDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIy
N0YyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyNUUyNDM1NzVDRDAwRUQ2MTREIC8qIFF1aWNrTG9va1Ro
dW1ibmFpbExvYWRlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkzMDAzRjBGMjU3OERCMDYwMEYy
QTNEQSAvKiBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5QjEyMjlDRTIzRkYyNUYyMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUQwMzY5QUUyNTY3OTZC
OTAwNDQwMzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEQgLyogUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMzM5
NCw2ICsxMzQ0OSw3IEBACiAJCQkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFERDJBNjYzMjU2MTI0NkYwMEZGN0I2RiAvKiBSZW1vdGVNZWRpYVNvdXJjZVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMw
NSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk5MzAwM0YxMjI1NzhEQjBDMDBGMkEzREEgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1OTQ3
QTcxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJBNjZFMjU2MjAyMUUwMEZGN0I2RiAv
KiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxRDAzNjlBQzI1Njc5Njk5MDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCmluZGV4IDNmMzUzMTk0YTMyYy4uY2YyODNlZDM1
YjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNw
cApAQCAtNDYsNiArNDYsMTAgQEAgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZp
ZXIsICp0aGlzKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNw
ZWVjaFJlY29nbml0aW9uU2VydmVyKG1faWRlbnRpZmllciksIDApOworCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiB9CiAKIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZjJmMjI4MjJjN2IyLi5lZTNiNDJjOGJlMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDYgKzQzLDgg
QEAKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NB
c3NlcnRpb24uaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJS
ZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5Lmgi
CiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKQEAgLTE5NjksNiArMTk3MSwxOCBAQCB2b2lk
IFdlYlByb2Nlc3M6OmVuYWJsZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCitSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzczo6
ZW5zdXJlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICghbV9yZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcikgeworICAgICAgICBtX3JlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyID0gbWFrZVVuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4oKnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCkpOworICAgICAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICptX3JlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKm1fcmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICN1bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9OX0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAppbmRleCBlOWM0N2RiNGM0NDcuLmEwNDE1NTJkMTE5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xNDIsNiArMTQyLDEwIEBAIHN0cnVjdCBXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVyczsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjsKKyNlbmRpZgorCiBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nl
c3MKIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM2MCw2ICszNjQsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hyb25vdXNseShjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsK
ICAgICB+V2ViUHJvY2VzcygpOwpAQCAtNjkzLDYgKzcwMSwxMCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV92cDlEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZwOVNXRGVjb2Rl
ckVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9yZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRleCA1YjNlNzAwZTA5NTguLjY1MDU2ODZiZTFm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnNldENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgdGhpcyk7CiB9CiAKLXZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmFkZFNv
dXJjZShSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit2b2lkIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U+JiYgc291cmNlKQogewogICAgIEFTU0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7
CiAgICAgc2V0Q29ubmVjdGlvbihzb3VyY2UtPmNvbm5lY3Rpb24oKSk7CkBAIC0xMTEsNyArMTEx
LDcgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3UKICAgICBpdGVyYXRvci0+dmFsdWUtPmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJh
bWUpOwogfQogCi1SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OlJlbW90
ZUF1ZGlvKFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKK1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogICAgIDogbV9zb3VyY2UoV1RGTW92ZShz
b3VyY2UpKQogICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtl
VW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlci5oCmluZGV4IDZmYjRiYzM3YjkzOC4uYWUwYTZlMGZjODlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuaApAQCAtMjksOCArMjksOCBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlICJXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CkBAIC00NSw3ICs0NSw3IEBAIHB1
YmxpYzoKICAgICBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpOwogICAgIH5SZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlcigpOwogCi0gICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIHZvaWQgYWRkU291cmNlKFJlZjxXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlPiYmKTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtNjMsMTMgKzYzLDEzIEBAIHBy
aXZhdGU6CiAgICAgY2xhc3MgUmVtb3RlQXVkaW8gewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IFJlbW90ZUF1ZGlvKFJlZjxS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICAgICAgZXhwbGljaXQgUmVtb3RlQXVk
aW8oUmVmPFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogCiAgICAgICAgIHZvaWQg
c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKICAgICAg
ICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJP
ZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNl
OworICAgICAgICBSZWY8V2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CiAg
ICAgICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOwog
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZm
ZXI7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+
IG1fYnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggMDgzZjgyOWFmNzVhLi41OGM4MDZi
NWZhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMzAsMTAgKzMwLDEwIEBACiAKICNpbmNs
dWRlICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIgogI2luY2x1ZGUgIkdQVVByb2Nl
c3NDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgog
I2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVk
ZSAiV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGVw
cmVjYXRlZEdsb2JhbFNldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oPgpAQCAtODUsNyArODUsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpzZXR1cENhcHR1cmVQcm9jZXNzZXMoYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUAogICAg
ICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXREaXNwbGF5Q2Fw
dHVyZUZhY3RvcnkobV9kaXNwbGF5RmFjdG9yeSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3Vy
Y2UpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogewogICAgIGlmIChzb3VyY2UtPnR5cGUo
KSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykKICAgICAgICAgbV9yZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CkBAIC0xNTgs
NyArMTU4LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU28KICAgICAgICAgRGVwcmVjYXRlZEds
b2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsK
ICNlbmRpZgogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsK
KyAgICByZXR1cm4gV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwg
KmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIpOwogfQogCiB2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNldFNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKQEAgLTE3Niw3ICsxNzYsNyBAQCBDYXB0dXJlU291
cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVW
aWRlb0NhcHR1cmVTbwogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiVmlk
ZW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRlZCJfcyB9OwogI2VuZGlm
CiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwg
KmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIpOworICAgIHJl
dHVybiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3Ry
YWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlcik7CiB9CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpAQCAtMTkxLDcgKzE5MSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9y
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNh
cHR1CiAgICAgaWYgKCFjb25zdHJhaW50cykKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJl
dHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWlu
dHMsIHsgfSwgeyB9LCBtX21hbmFnZXIpOworICAgIHJldHVybiBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgeyB9LCBtX21hbmFn
ZXIpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IGIwYjE5ODI5MDU0Mi4uNWU0NGE1OGI0
NGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBSZW1vdGVWaWRl
b1NhbXBsZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U7CitjbGFzcyBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOwogY2xhc3MgV2Vi
UHJvY2VzczsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJv
Y2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBAIC01Nyw3ICs1
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3Mo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlk
UmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KICAgICB2b2lkIHNldHVwQ2Fw
dHVyZVByb2Nlc3Nlcyhib29sIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzLCBib29sIHNo
b3VsZENhcHR1cmVBdWRpb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9JblVJ
UHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxk
Q2FwdHVyZURpc3BsYXlJblVJUHJvY2Vzcyk7CiAKLSAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFdlYlJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKQEAgLTEyOCw5
ICsxMjgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFp
bGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTdHJpbmcmJiwgU3Ry
aW5nJiYpOwogCi0gICAgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lVmlk
ZW9Tb3VyY2UoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOworICAgIFJlZjxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlPiBjbG9uZVZpZGVvU291cmNlKFdlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UmKTsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworICAg
IEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlZjxXZWJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOwogICAgIFdlYlByb2Nlc3MmIG1f
cHJvY2VzczsKICAgICBOb09wQ2FwdHVyZURldmljZU1hbmFnZXIgbV9ub09wQ2FwdHVyZURldmlj
ZU1hbmFnZXI7CiAgICAgQXVkaW9GYWN0b3J5IG1fYXVkaW9GYWN0b3J5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCnNpbWlsYXJpdHkgaW5kZXggNzUlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApyZW5hbWUg
dG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCmluZGV4IDVmOWMyYWFkMDkxOS4uZTgxZjEyOGU3MjZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJX
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCiAKICNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIApAQCAtNDYsOSArNDYsOSBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcykKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBi
b29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9w
dFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZS50eXBlKCksIFdURk1vdmUobmFtZSksIFdURk1v
dmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZS50eXBlKCks
IFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKSk7CiAgICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7
CiAgICAgc291cmNlLT5jb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKHNvdXJjZS0+aWRlbnRpZmllcigpLCBkZXZpY2UsIHNvdXJj
ZS0+ZGV2aWNlSURIYXNoU2FsdCgpLCBjb25zdHJhaW50cyksIFtzb3VyY2UgPSBzb3VyY2UuY29w
eVJlZigpXShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRp
bmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzKSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CkBA
IC03OSw3ICs3OSw3IEBAIHN0YXRpYyBpbmxpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBz
b3VyY2VUeXBlRnJvbURldmljZVR5cGUoQ2FwdHVyZURldmljZTo6CiAgICAgcmV0dXJuIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7CiB9CiAKLVJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1h
bmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1dlYlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OldlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZp
Y2VUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKICAgICA6
IFJlYWx0aW1lTWVkaWFTb3VyY2Uoc291cmNlVHlwZUZyb21EZXZpY2VUeXBlKGRldmljZVR5cGUp
LCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVyLnRvVUludDY0KCkpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCkBAIC0xMDYsNyArMTA2LDcgQEAgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmkKICAgICB9CiB9CiAKLVJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlKCkKK1dlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5XZWJSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlKCkKIHsKICAgICBzd2l0Y2ggKG1fZGV2aWNlVHlwZSkgewog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZToKQEAgLTEyOCwx
NCArMTI4LDE0IEBAIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlKCkKICAgICB9CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3Zv
aWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9pc1JlYWR5KQogICAg
ICAgICByZXR1cm4gY2FsbGJhY2soV1RGTW92ZShtX2Vycm9yTWVzc2FnZSkpOwogICAgIG1fY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3ZvaWQgV2ViUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCiB7CiAgICAg
bV9pc1JlYWR5ID0gdHJ1ZTsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNz
YWdlKTsKQEAgLTE0MywxNCArMTQzLDE0IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCiAgICAgICAgIG1fY2FsbGJhY2sobV9l
cnJvck1lc3NhZ2UpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEFz
UmVhZHkoKQordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRBc1JlYWR5KCkK
IHsKICAgICBtX2lzUmVhZHkgPSB0cnVlOwogICAgIGlmIChtX2NhbGxiYWNrKQogICAgICAgICBt
X2NhbGxiYWNrKHsgfSk7CiB9CiAKLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjbG9uZSgpCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmUoKQogewogICAgIHN3aXRjaCAodHlwZSgpKSB7
CiAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKQEAgLTE2MywzNyAr
MTYzLDM3IEBAIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjbG9uZSgpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCi1SZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVWaWRlb1NvdXJjZSgpCitSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2xvbmVW
aWRlb1NvdXJjZSgpCiB7CiAgICAgYXV0byBpZGVudGlmaWVyID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAgICAgaWYgKCFjb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNsb25lIHsgbV9pZGVudGlmaWVy
LCBpZGVudGlmaWVyIH0sIDApKQogICAgICAgICByZXR1cm4gKnRoaXM7CiAKLSAgICBhdXRvIGNs
b25lU291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKGlkZW50
aWZpZXIsIGRldmljZVR5cGUoKSwgU3RyaW5nIHsgbV9zZXR0aW5ncy5sYWJlbCgpLnN0cmluZygp
IH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpKTsKKyAgICBhdXRvIGNsb25lU291cmNlID0gYWRvcHRSZWYoKm5ldyBXZWJSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKGlkZW50aWZpZXIsIGRldmljZVR5cGUoKSwgU3RyaW5nIHsgbV9z
ZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9tYW5hZ2Vy
LCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKICAgICBjbG9uZVNvdXJjZS0+c2V0U2V0
dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgbV9zZXR0aW5ncyB9KTsKICAgICBt
X21hbmFnZXIuYWRkU291cmNlKGNsb25lU291cmNlLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIGNs
b25lU291cmNlOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldENhcGFi
aWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQor
dm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRDYXBhYmlsaXRpZXMoUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKIHsKICAgICBtX2NhcGFi
aWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBz
ZXR0aW5ncykKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U2V0dGluZ3Mo
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCiB7CiAgICAgYXV0byBjaGFu
Z2VkID0gbV9zZXR0aW5ncy5kaWZmZXJlbmNlKHNldHRpbmdzKTsKICAgICBtX3NldHRpbmdzID0g
V1RGTW92ZShzZXR0aW5ncyk7CiAgICAgbm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMo
Y2hhbmdlZCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVk
aW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24sIHNpemVfdCBzaXplKQordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpy
ZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNpemUpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CiAgICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBz
aXplKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVWaWRlb1Nh
bXBsZUF2YWlsYWJsZShSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3ZvaWQgV2Vi
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVt
b3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCiB7CiAgICAgQVNTRVJUKHR5cGUoKSA9PSBU
eXBlOjpWaWRlbyk7CiAKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFJlbW90ZVZpZGVvU2FtcGxlJiYg
cgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1wbGVS
ZWYpOwogfQogCi1JUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNv
bm5lY3Rpb24oKQorSVBDOjpDb25uZWN0aW9uKiBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
Ojpjb25uZWN0aW9uKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKQEAgLTIyNiwzNSArMjI2LDM1IEBAIElQQzo6Q29ubmVjdGlvbiogUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y29ubmVjdGlvbigpCiAgICAgcmV0dXJuIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7CiB9CiAKLXZvaWQgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3ZvaWQgV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKICAgICBjb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0
YXJ0UHJvZHVjaW5nRGF0YSB7IG1faWRlbnRpZmllciB9LCAwKTsKIH0KIAotdm9pZCBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit2b2lkIFdlYlJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKIHsKICAgICBjb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9k
dWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCi1ib29sIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0
aW9uKQorYm9vbCBXZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTaG91bGRBcHBseVJv
dGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikKIHsKICAgICBjb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5
Um90YXRpb24geyBtX2lkZW50aWZpZXIsIHNob3VsZEFwcGx5Um90YXRpb24gfSwgMCk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpCitjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIHJldHVybiBtX2NhcGFiaWxp
dGllczsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFp
bnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNv
bnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBw
ZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAvLyBGSVhNRTogVXNlIHNlbmRB
c3luY1dpdGhSZXBseS4KICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OkFwcGx5Q29uc3RyYWludHMgeyBtX2lkZW50aWZpZXIsIGNv
bnN0cmFpbnRzIH0sIDApOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFw
cGx5Q29uc3RyYWludHNTdWNjZWVkZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiBzZXR0aW5ncykKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyhzZXR0aW5ncykpOwogCkBAIC0yNjIsMzYgKzI2MiwzNiBA
QCB2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVk
ZWQoY29uc3QgV2ViQ29yZTo6UmVhbHRpbQogICAgIGNhbGxiYWNrKHsgfSk7CiB9CiAKLXZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcm
JiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCit2b2lkIFdlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFp
bGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQogewogICAgIGF1dG8gY2FsbGJh
Y2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOwogICAg
IGNhbGxiYWNrKEFwcGx5Q29uc3RyYWludHNFcnJvciB7IFdURk1vdmUoZmFpbGVkQ29uc3RyYWlu
dCksIFdURk1vdmUoZXJyb3JNZXNzYWdlKSB9KTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpoYXNFbmRlZCgpCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
Omhhc0VuZGVkKCkKIHsKICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKICAgICBtX21h
bmFnZXIucmVtb3ZlU291cmNlKG1faWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQordm9pZCBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCiB7CiAgICAgc3RvcCgpOwogICAgIGhhc0VuZGVk
KCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgp
Cit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKQogewog
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKTsKICAgICBoYXNFbmRlZCgp
OwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BCZWluZ09ic2VydmVk
KCkKK3ZvaWQgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcEJlaW5nT2JzZXJ2ZWQo
KQogewogICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6UmVxdWVzdFRvRW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lk
IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChPYnNlcnZlciYgb2JzZXJ2
ZXIpCit2b2lkIFdlYlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChPYnNl
cnZlciYgb2JzZXJ2ZXIpCiB7CiAgICAgc3dpdGNoICh0eXBlKCkpIHsKICAgICBjYXNlIFR5cGU6
OkF1ZGlvOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKc2ltaWxhcml0eSBpbmRleCA5MyUKcmVuYW1l
IGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuaApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAxYzg5MGJlYjFiMDMuLjc5ZTY0NWM0MzQ0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC00NywxMCArNDcsMTAgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOwogCi1jbGFzcyBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2Ug
eworY2xhc3MgV2ViUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcyA9IGZhbHNlKTsKLSAgICB+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOwor
ICAgIH5XZWJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9CiAgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCk7CkBAIC02Nyw3
ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwg
Y29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk7CiAKIHByaXZh
dGU6Ci0gICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwg
Ym9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBXZWJSZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpOwogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9k
dWNpbmdEYXRhKCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415477</attachid>
            <date>2020-12-04 17:04:27 -0800</date>
            <delta_ts>2020-12-04 20:39:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201204170426.patch</filename>
            <type>text/plain</type>
            <size>84782</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzdhNGUxNWEzNTlkNTFm
NWEzNmFlYWVjMjk5Zjc1ZGQ2MDQzOTY3My4uNTliN2UzOWVlMTQ0NDA0ZTFiM2M2MjJmZGMxMDhl
NzBhOWQwNWUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEyLTA0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1lZGlhU291cmNlIG1lbWJlciBvZiBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEZsb2F0IHBvc2l0aW9uaW5nIG5lZWRzIHRvIGhh
cHBlbiB3aGlsZSBidWlsZGluZyB0aGUgbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxOGQ5MDEzMTE1Y2M4NGZm
MTI5MmNhYWE2YmVhYTQwNTdkM2EyZjFhLi4yZGIxMjE3NDYzMTJmMzhjY2M1ZjhlZGFiZTIwNjNm
MThiMjVmYTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDIwLTEyLTA0ICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0
dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT24gaU9TLCBhdWRpbyBjYXB0dXJlIGlzIGRvbmUgaW4gd2ViIHByb2Nlc3MuIEZvciBzcGVl
Y2ggcmVjb2duaXRpb24sIHJlY29nbml6ZXIgaXMgaW4gVUkgcHJvY2Vzcy4gVGhlcmVmb3JlLAor
ICAgICAgICBVSSBwcm9jZXNzIG5lZWRzIHRvIGFzayB3ZWIgcHJvY2VzcyB0byBjYXB0dXJlIGF1
ZGlvIGFuZCBzZW5kIGJhY2sgZGF0YS4gVG8gaW1wbGVtZW50IHRoaXMsIHRoaXMgcGF0Y2ggYWRk
ZWQ6CisgICAgICAgIC0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OiBzdWJjbGFzcyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIGFuZCBjb25uZWN0IHRvIGEg
cmVtb3RlIAorICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIChvd25lZCBieSBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2UpIGluIHdl
YiBwcm9jZXNzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZXMuCisg
ICAgICAgIC0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjogbWFu
YWdlIGFsbCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuCisgICAg
ICAgIC0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNl
OiBvd24gYW5kIG1vbml0b3IgYSBsb2NhbCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlLgor
CisgICAgICAgIFRoaXMgc3RydWN0dXJlIGlzIHZlcnkgc2ltaWxhciB0byBob3cgd2UgaW1wbGVt
ZW50IG1lZGlhIGNhcHR1cmUgb24gbWFjT1MgKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UsIAor
ICAgICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBhbmQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eSksIHdoZXJlIHdlIHNlbmQgZGF0YSBmcm9tIFVJIHByb2Nlc3MgdG8gd2ViIHByb2Nl
c3MuCisgICAgICAgIFdlIHNob3VsZCB1bmlmeSB0aGUgYXJjaGl0ZWN0dXJlIGlmIHBvc3NpYmxl
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Om1fcmluZ0J1
ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1v
dGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1v
dGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291cmNlU3RvcHBlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2Fn
ZVNlbmRlckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVl
c3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JTcGVlY2hSZWNvZ25p
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmVuc3Vy
ZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlNvdXJjZTo6U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjp+U291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjpz
dGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZTo6c3RvcmFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjp+U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmdyYW50U2Fu
ZGJveEV4dGVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAg
IChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFk
ZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisK
IDIwMjAtMTItMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgT25seSB0aGUgZmlyc3Qgd2hlZWwgZXZlbnQgaW4gYSBnZXN0dXJlIHNob3VsZCBiZSBj
YW5jZWxhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBkNTQ0ODM3OGI5OTQxYzQ3MTk4OTA2NjUw
YTM1OTU2NWUwNjFhYjc1Li5lZGMzYzhmZDcwMzE2ODcxOGRiYzczMTAwZmZlNzIzMTY4NGQ3NjE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzMjcsNiArMTMyNyw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oCisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
LmNwcAppbmRleCBjOTNiNmYzOGJjNjIzOGRhMWRiYTg2OGUyOWUxZTViMWU2ZjY2YjZiLi5kN2Vj
ZTY1OWYwODkyOWRmYmM3N2MxNzExYTk0NGM3YzExNWU2MTQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHAKQEAgLTM0LDkgKzM0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2Fs
bGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrKQotewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKK09wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZTo6ZmluZENhcHR1cmVEZXZpY2UoKQorewogICAgIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNh
cHR1cmVEZXZpY2U7CiAgICAgYXV0byBkZXZpY2VzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOwogICAgIGZvciAoYXV0byBkZXZpY2UgOiBkZXZpY2Vz
KSB7CkBAIC01MSwyNiArNTIsMTkgQEAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb24KICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBjYXB0dXJlRGV2aWNlOwor
fQogCi0gICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2Fw
dHVyZSwgIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH07Ci0gICAgICAgIHN0
YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNs
aWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitDYXB0dXJl
U291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0
aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAg
ICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0
dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLCB7IH0s
IHsgfSk7Cit9CiAKLSAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoKmNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAg
ICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJlc3VsdC5lcnJvck1lc3NhZ2UgfTsKLSAgICAgICAg
c3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3Io
Y2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYg
c3RhdGVVcGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQor
ICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRl
VXBkYXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkpKQoreworfQogCi0gICAgbV9pbXBsID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihjbGllbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFj
ayksIHJlc3VsdC5zb3VyY2UoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjbGllbnRJZGVu
dGlmaWVyKTsKLSAgICBVTlVTRURfUEFSQU0oZGF0YUNhbGxiYWNrKTsKLSAgICBVTlVTRURfUEFS
QU0oc3RhdGVVcGRhdGVDYWxsYmFjayk7CiAjZW5kaWYKLX0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCA3Mzg2Y2VlZTI3NDA3Y2M2MTA0
ZTI5ZWQ3M2RlN2RhMGE0OWY0ZTBhLi42OWY5YTg4YjI2MWU3MWY2NmVjMDBiYjllNzFkYTBmM2Fj
ODE5NDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtNDIsMTAgKzQyLDE2IEBA
IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOwogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAgflNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB1c2luZyBEYXRhQ2Fs
bGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZv
cm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CiAg
ICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUmKT47Ci0gICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFj
ayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYpOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJh
Y2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBmaW5kQ2FwdHVyZURldmljZSgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVS
ZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyNlbmRpZgogCiBwcml2
YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCmluZGV4IDViZWI2MDU2NDdiMzI5ZTI2
NGY4M2MyNDlmNTdjMmEyMDgxYzJmZDcuLjU1MDAyOGMzNTU2YjNlZGU3MGNlZTNkYmFkYmRhMTk2
MDE5YjQ3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXIuY3BwCkBAIC01MCwxOSArNTAsMjcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVy
OjpyZXNldCgpCiAKICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLCAiQW5vdGhlciByZXF1ZXN0IGlzIHN0
YXJ0ZWQiIH07CiAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOworCisgICAgbV9jbGll
bnRJZGVudGlmaWVyID0gV1RGOjpudWxsb3B0OwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6
OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRp
ZmllcikKIHsKLSAgICByZXNldCgpOworICAgIEFTU0VSVCghbV9zb3VyY2UpOwogCiAgICAgbV9j
bGllbnRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogCi0gICAgc3RhcnRJbnRlcm5hbCgpOwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFy
dChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKK3sKKyAgICBzdGFydChpZGVudGlm
aWVyKTsKKyAgICBzZXRTb3VyY2UoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotdm9pZCBTcGVlY2hS
ZWNvZ25pemVyOjpzdGFydEludGVybmFsKCkKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c2V0U291
cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKIHsKICAgICBhdXRvIGRhdGFD
YWxsYmFjayA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBhdXRvJiB0aW1l
LCBjb25zdCBhdXRvJiBkYXRhLCBjb25zdCBhdXRvJiBkZXNjcmlwdGlvbiwgYXV0byBzYW1wbGVD
b3VudCkgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQpAQCAtOTAsOSArOTgsMTEgQEAgdm9pZCBT
cGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKCkKICAgICAgICAgICAgIG1fc291cmNlID0g
bnVsbHB0cjsKICAgICB9OwogCi0gICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2Fs
bGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spKTsKKyAgICBtX3NvdXJjZSA9IG1h
a2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlm
aWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayks
IFdURk1vdmUoc291cmNlKSk7CiB9CiAKKyNlbmRpZgorCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6
OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0
KQogewogICAgIGlmICghbV9jbGllbnRJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCmluZGV4IGU2ZjEzZmVlODRhNTMzYWYw
ZjA0ZTA3NjljMWFlMDk1YmU1YmZmM2YuLjVhM2ZiMWI1YTAzYzdiMzkzZmRjYmI0NTAzNDU1Nzdi
MzM4MjEzMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pemVyLmgKQEAgLTM5LDE3ICszOSwyNCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXplcihEZWxlZ2F0ZUNhbGxiYWNrJiYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIH5TcGVlY2hSZWNvZ25pemVyKCkgPSBkZWZhdWx0OwogCisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCByZXNldCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAgICAgZW51bSBjbGFz
cyBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHsgTm8sIFllcyB9OwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID0gU2hvdWxkR2VuZXJhdGVG
aW5hbFJlc3VsdDo6WWVzKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisjZW5kaWYKKwogICAgIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGN1cnJlbnRD
bGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CiAK
IHByaXZhdGU6Ci0gICAgdm9pZCByZXNldCgpOwotICAgIHZvaWQgc3RhcnRJbnRlcm5hbCgpOwog
ICAgIHZvaWQgc3RvcEludGVybmFsKCk7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IHZvaWQgc2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyNlbmRpZgorCiAg
ICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4g
bV9jbGllbnRJZGVudGlmaWVyOwogICAgIERlbGVnYXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNhbGxi
YWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+
IG1fc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDY3MmExNjYwYTVkOWZmODAxM2I2OWFiYmI2YTNhYWE3OGI5YmUxZjEu
LjcxYmJlYzFmODYwYTRiODBmMTUwM2MwMGMzZTZmYTcwZmU5ODg5OGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzNjI3LDEz
ICsyMzYyNyw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OwotCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8gPSB7Ci0JCQlp
c2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJKTsKLQkJCXBhdGggPSBjb2NvYTsK
LQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTk0NkQzNzI3MUQ2Q0IyMjUwMDc3
MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtMjU2NjQsNyArMjU2NTcsNiBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUgLyog
c3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5
M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0ODVE
NTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFBMkE1
QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICovLAog
CQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMu
aCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDg4ZTE1MWIxMjIyNGZlYmNjODkzYjUzZDY4NWUz
ZWMxYjAxMGNkNDUuLjRiNThlNjlkZDNjMzRmYmE5OGRmOTZkNTQyMjBkOWVhMmE4ZjJhNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dApAQCAtMTAzLDYgKzEwMyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAgICAi
JHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIgorICAgICIke1dFQktJVF9ESVJ9L1dlYlBy
b2Nlc3MvU3BlZWNoIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3RvcmFnZSIKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQiCkBAIC0xODYsNiArMTg3LDcgQEAgc2V0KFdl
YktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2Fn
ZVJlY2VpdmVyCiAKICAgICBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorICAgIFVJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAgICAg
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRM
aW5rU3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CkBAIC0yNTcsNiAr
MjU5LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIKICAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkKIAorICAgIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24KICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CmluZGV4IGU1MWNhZWQyMWUxODZjZjJhMTczY2I4YTMzMzEyYmUwYjMwNGJiMDAu
LmI2ZjQxZTI3NjhjM2FmYTM1ZDAwMTIwNmE0MzFiZmVhN2JlMDQxYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwNyw2ICsxMDcsNyBA
QCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveAogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQ
cm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlci5tZXNzYWdlcy5pbgpAQCAtMTY0LDYgKzE2NSw3IEBAICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNz
YWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKaW5kZXggZTg4YjJjMjFmYTcxN2M3N2QyMzAyY2I1MThiYTRhZDNlZGUyNTc0YS4uM2MwOWYx
ZWQ3YjhjYjg0YzAwOTZjOWYxZTAwMmE1NDMzNDNmMzg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNjksNiArMjY5LDEyIEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXJNZXNzYWdlCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDY4MTQ4NTVmZjlkMjNhZjBhNzdlNWZkYTZkZmQyZmQ1
NTA5NzZmNjkuLjM1YzUzZjc5ZDI1NzBlMjlmMzdiZDFhMWExNzY0NjQxNTdhMGQ4MDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY5LDYgKzY5LDcgQEAgVlBBVEggPSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBc
CisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1NwZWVjaCBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL1N0b3JhZ2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIFwKQEAgLTE2Nyw2ICsx
NjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wg
XAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01lZGlh
L0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uIFwKQEAgLTIwMSw2ICsyMDMsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlX
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKIAlXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgXAogCVdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIFwKKwlX
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24g
XAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24gXAogCVdlYlByb2Nl
c3MvV2ViUHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA0ZWE0YWZiZDY5ZjE4MGQ3OGU1OWJmYWUz
MjVjNGVmNjRmNDQ5MjA2Li41YmVhN2NjYWM4MWVhYTFiOWM4MDFlYmIxYTdmZmQ2NjhhNjY1Y2Qx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKQEAgLTI5MCw2ICsyOTAsOCBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2Vy
dGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCitV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAor
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwCiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nlc3Mv
U3VzcGVuZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVy
LmNwcApAQCAtNjM1LDYgKzYzNyw4IEBAIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZUJyb3dzZXJGdW5jcy5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW4uY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBAbm8tdW5pZnkKIAorV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKwogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV09yaWdpblRhYmxlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFlOTk2MDVkNzc2ODkzYTlmYmU3NzhiMzhjMmM1ZGU3ZjA0
NmI2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAi
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7
Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0
dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQo
KSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFnZXIobWFr
ZVdlYWtQdHIobWFuYWdlcikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBtX3JpbmdCdWZm
ZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2U+KG51bGxwdHIpKSkKKyNlbmRpZgoreworICAgIG1fbWFuYWdlci0+YWRkU291cmNl
KCp0aGlzLCBjYXB0dXJlRGV2aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjp+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnJlbW92ZVNv
dXJjZSgqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisg
ICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6U3RhcnQgeyBtX2lkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5n
RGF0YSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5zZW5kKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9w
IHsgbV9pZGVudGlmaWVyIH0pOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0
IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorewor
ICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1v
cnk+IG1lbW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtZW1vcnkg
PSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVh
ZE9ubHkpOworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9y
eSBmb3IgcmVtb3RlIHNvdXJjZSIpOworICAgIH0KKworICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0
aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgp
KTsKKyAgICBpZiAoIW1lbW9yeSkgeworICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUo
KTsKKyAgICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2Uu
c2V0U3RvcmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0b3Jh
Z2Uuc2V0U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAgc3RvcmFnZS5zZXRS
ZWFkT25seSh0cnVlKTsKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7CisgICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVy
TGlzdD4oZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1Nh
bXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1
aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBpZiAoIW1fYnVmZmVyKSB7CisgICAgICAgIExPR19FUlJPUigiQnVmZmVyIGZv
ciByZW1vdGUgc291cmNlIGlzIG51bGwiKTsKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9idWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJl
ck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFy
dEZyYW1lLCBlbmRGcmFtZSk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChtX2J1ZmZlci0+bGlz
dCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgYXVkaW9TYW1wbGVz
QXZhaWxhYmxlKHRpbWUsICptX2J1ZmZlciwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odGltZSk7CisgICAgVU5VU0VEX1BBUkFNKG51bWJl
ck9mRnJhbWVzKTsKKyAgICBVTlVTRURfUEFSQU0oc3RhcnRGcmFtZSk7CisgICAgVU5VU0VEX1BB
UkFNKGVuZEZyYW1lKTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCgpCit7CisgICAgY2FwdHVy
ZUZhaWxlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6cmVtb3RlU291cmNlU3RvcHBlZCgpCit7CisgICAgc3RvcCgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3YmMwZDEzMWYyY2RiMTVmOTI1Y2UwOTAxOTU3ZWZhNGQ0
NDBjYmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDc3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBDYXB0dXJlRGV2aWNlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7
CisgICAgflNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOworCisg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
dm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29y
ZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOwor
I2VuZGlmCisKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUs
IHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBl
bmRGcmFtZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKCk7CisgICAgdm9pZCByZW1v
dGVTb3VyY2VTdG9wcGVkKCk7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwg
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworCisgICAgLy8gV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAg
dm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJu
IG1fY2FwYWJpbGl0aWVzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKworICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAg
ICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI+IG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzIG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyBtX3NldHRpbmdzOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworI2VuZGlmCit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxZjNiOTllZGYyY2I4
Yjg0MjYwNjg4ZjYzODMxNzJlMDI2OGRiZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVj
dGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3Vy
Y2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKHNvdXJjZSkp
OworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykgJiYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKyAgICBpZiAoIW1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zKSB7CisgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGVGb3JUQ0NEOworICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudGNjZCJfcywg
bV9jb25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCksIGhhbmRsZUZvclRDQ0QpOworICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yTWljcm9waG9uZTsKKyAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxl
LndlYmtpdC5taWNyb3Bob25lIl9zLCBoYW5kbGVGb3JNaWNyb3Bob25lKTsKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
R3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhoYW5kbGVGb3JUQ0NELCBoYW5kbGVGb3JNaWNyb3Bob25l
KSk7CisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gdHJ1ZTsKKyAgICB9
CisjZW5kaWYKKworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OkFkZFNvdXJjZShpZGVudGlmaWVyLCBjYXB0dXJlRGV2aWNlKSk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6cmVtb3ZlU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZSYgc291cmNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVy
KCk7CisgICAgQVNTRVJUKG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikgPT0gJnNvdXJjZSk7Cisg
ICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VY
VEVOU0lPTlMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgaWYgKG1fc291cmNlcy5p
c0VtcHR5KCkgJiYgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
UmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKSk7CisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hF
eHRlbnNpb25zID0gZmFsc2U7CisgICAgfQorI2VuZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdmVTb3VyY2Uo
aWRlbnRpZmllcikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlh
VGltZSYgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUs
IHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5n
ZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxh
YmxlKHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVt
b3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRp
ZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90
ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZp
ZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKK30KKworSVBDOjpD
b25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29u
bmVjdGlvbi5wdHIoKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dAoreworICAgIHJldHVybiAwOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFn
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cykKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQor
ICAgICAgICBzb3VyY2UtPnNldFN0b3JhZ2UoaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNzBjYWQyMDUyMGRjY2VhMWMyYmZhMDZlY2E1MTFmNGQ4ZDM5MmJi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsODEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgi
CisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGlt
ZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworI2VuZGlm
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlciwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB2b2lk
IGFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJik7CisKK3ByaXZhdGU6Cisg
ICAgLy8gTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICB2b2lkIHNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpN
ZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdl
YWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3Vy
Y2VzOworICAgIGJvb2wgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDA3MTAzOThiYzdjMmM0NzA0NGIwM2U2NWQwYWNjODU4MGExZWZlYQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNSBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgUmVtb3RlQXVkaW9TYW1wbGVz
QXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3Rh
cnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgUmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFJlbW90
ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTZXRTdG9yYWdlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyNlbmRpZgorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2YzMyYzU0OGEwYTA5YWIwMmJjMTQ1MzQ1
MjQ0Li4yMzI4NGZiZmQ2YjQ4NTY4ZThmODYxY2Y0ZmYzMmMwMjljNjlkMzJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBA
IC0zNiwxMiArMzYsMjIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNo
ZWNrZXImJiBwZXJtaXNzaW9uQ2hlY2tlciwgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0
aW9uJiYgZnVuY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkK
KyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9wZXJtaXNzaW9uQ2hlY2tl
cihXVEZNb3ZlKHBlcm1pc3Npb25DaGVja2VyKSkKKyAgICAsIG1fcmVhbHRpbWVNZWRpYVNvdXJj
ZUNyZWF0ZUZ1bmN0aW9uKFdURk1vdmUoZnVuY3Rpb24pKQoreworfQorI2Vsc2UKIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24sIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyJiYgcGVybWlzc2lvbkNo
ZWNrZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1f
aWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9wZXJtaXNzaW9uQ2hlY2tlcihXVEZNb3Zl
KHBlcm1pc3Npb25DaGVja2VyKSkKIHsKIH0KKyNlbmRpZgogCiB2b2lkIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGlu
dW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4pCiB7CkBAIC05Miw2ICsxMDIsMTkgQEAgdm9pZCBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24KICAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKICAgICAg
ICAgfSk7CiAgICAgfQorICAgIAorICAgIG1fcmVjb2duaXplci0+cmVzZXQoKTsKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gbV9yZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24oKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpIHsKKyAg
ICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHNlbmRV
cGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVu
dElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBzb3VyY2VPckVycm9yLmVy
cm9yTWVzc2FnZSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9yZWNvZ25pemVy
LT5zdGFydChjbGllbnRJZGVudGlmaWVyLCBzb3VyY2VPckVycm9yLnNvdXJjZSgpKTsKKyAgICBy
ZXR1cm47CisjZW5kaWYKIAogICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmll
cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaAppbmRleCBhN2Y3NmQzOGVlNTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li5j
MGM1YzczYjI5ODRhOGUxZTU0MTY2NDUzZDhmNWUxODI1Nzk3ZDExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTUwLDcgKzUw
LDEyIEBAIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgPSBGdW5jdGlv
bjx2b2lkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yCiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4sIHB1
YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIHVzaW5nIFJlYWx0aW1l
TWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFdlYkNvcmU6OkNhcHR1cmVTb3Vy
Y2VPckVycm9yKCk+OworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyJiYsIFJlYWx0
aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmKTsKKyNlbHNlCiAgICAgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyJiYpOworI2Vu
ZGlmCiAKICAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBp
bnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mJik7CiAgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIpOwpAQCAtNzUsNiArODAsMTAgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBt
X3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9wZXJt
aXNzaW9uQ2hlY2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXplcj4gbV9yZWNvZ25pemVyOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWFs
dGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTdkOWNkZmU1NTM1YzI3
YzQ1MDRmMDEwYTZlZGY4ZTRjNWUzY2E2YS4uMTYxOWQyMjQ0YTBjNjRhZjUyZDFhOGVlMDczYzIx
ZTNlNTMwYTRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCkBAIC0zOCw2ICszOCw5IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIK
ICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVj
a2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgpAQCAtMTcwMCwxMCArMTcwMywy
NyBAQCBQQUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCk7CiB9CiAKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCitXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBXZWJQcm9j
ZXNzUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JTcGVlY2hSZWNvZ25pdGlvbigp
Cit7CisgICAgYXV0byBjYXB0dXJlRGV2aWNlID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpOworICAgIGlmICghY2FwdHVyZURldmljZSkKKyAgICAg
ICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIk5vIGRldmljZSBpcyBhdmFpbGFibGUg
Zm9yIGNhcHR1cmUiIH07CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHJldHVybiBD
YXB0dXJlU291cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y3JlYXRlKGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisjZWxzZQorICAgIHJldHVybiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
KmNhcHR1cmVEZXZpY2UpOworI2VuZGlmCit9CisKKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzcGVlY2hSZWNvZ25pdGlvblNl
cnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxw
dHIpOwotICAgIEFTU0VSVChzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pc05ld0VudHJ5KTsKKyAg
ICBBU1NFUlQoIW1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuY29udGFpbnMoaWRlbnRpZmll
cikpOworICAgIGF1dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwog
ICAgIFdlYlBhZ2VQcm94eSogdGFyZ2V0UGFnZSA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvKiBw
YWdlIDogcGFnZXMoKSkgewogICAgICAgICBpZiAocGFnZSAmJiBwYWdlLT53ZWJQYWdlSUQoKSA9
PSBpZGVudGlmaWVyKSB7CkBAIC0xNzE1LDE1ICsxNzM1LDI3IEBAIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBzcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBtYWtlVW5pcXVlPFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vh
a1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29t
cGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0g
bWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlvbigp
KSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFnZSldKGF1dG8m
IG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKICAgICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgfSk7Ci0gICAg
YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aXRlcmF0b3ItPnZhbHVlKTsKKyAgICB9CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICAs
IFt0aGlzLCB3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXSgpIHsKKyAgICAgICAg
aWYgKCF3ZWFrUGFnZSkKKyAgICAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7
ICJQYWdlIGlzIGludmFsaWQiIH07CisgICAgICAgIAorICAgICAgICBpZiAod2Vha1BhZ2UtPnBy
ZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAgICAgICAg
ICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIk5vdCBpbXBsbWVudGVkIGZvciBHUFUg
cHJvY2VzcyIgfTsKKworICAgICAgICByZXR1cm4gY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZv
clNwZWVjaFJlY29nbml0aW9uKCk7CisgICAgfQorI2VuZGlmCisgICAgKTsKKyAgICBhZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlcik7CiB9CiAK
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xNzMzLDYgKzE3
NjUsMjAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW4KICAgICBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
IFdlYlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpjb25uZWN0
aW9uKCkpKTsKKyAgICAgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIpOworICAgIH0KKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENI
T1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1
bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CmluZGV4IGMxMGIzOTQ4ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLmNjMzE5Y2I1
MDkzYWVhNmM5MGI3ZWNmMjcxZDVlMzM4Yjc3ZTNiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3Qg
V2Vic2l0ZURhdGE7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBlbnVt
IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBSZWZDb3VudGVy
PEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQcm9jZXNzQ291
bnRlcjsKIHR5cGVkZWYgRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBGb3JlZ3Jv
dW5kV2ViUHJvY2Vzc1Rva2VuOwpAQCAtNTA1LDYgKzUwOSwxMCBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cklkZW50aWZpZXIpOwogICAgIHZvaWQgZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNw
ZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIAogICAgIHZvaWQgc3lzdGVt
QmVlcCgpOwogICAgIApAQCAtNjQzLDYgKzY1MSw5IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCA9IEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+PjsK
ICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVy
TWFwOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA4ZTBkYmNiODg1OWIyNjRjNTYyM2I5NDEyNzZiMjgzY2Vk
MWNmMzVhLi5jZjcyOWYyM2IwMTNjOWQ5YTdmMjk1YjNmNTJiOWNjOGQ4MmRkMjZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MzUs
NiArMTQzNSwxMSBAQAogCQk5M0E4OEIzMzFCQzZFOUNEMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJl
c3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTg4QjMxMUJDNkU5QzAwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oICovOyB9
OwogCQk5M0E4OEIzQjFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIz
QTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87IH07CiAJ
CTkzQTg4QjQ2MUJDODgyOTMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEI0MzFCQzg4MjhDMDBB
QkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5oICovOyB9OworCQk5M0FCOUI0QzI1NzU2M0YzMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEEyNTc0
QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87IH07
CisJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJOTNBQjlCNTUyNTc1QTI3NjAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk5M0FCOUI1NjI1
NzVBMjhCMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCTkzQjI2MTREMjI3RDE0OUUwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDky
MjdEMTQ3MjAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzQjI2MTRFMjI3
RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8q
IExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5N0E3
NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKQEAgLTQ2MDcsNiArNDYxMiwyMCBAQAog
CQk5M0E4OEIzQTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MjFCQzg4MjhDMDBBQkE1
QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBUElIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNBODhCNDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5
QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEIyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRGMjU3NTg5MTEwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MDI1NzU4OTExMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ1MjI3RDE0NzAw
MEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VU
cmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURh
dGFiYXNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0NzIy
N0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTk2LDYgKzkwMTUsMTYgQEAK
IAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5M0FC
OUI0ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJOTNBQjlC
NEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0OTI1NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7
CisJCQlwYXRoID0gU3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
OTNCMjYxNDMyMjdEMTQzMTAwQjk3QTc2IC8qIFdlYlN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTIwMCw2ICs5MjI5LDcgQEAKIAkJCQk1MTA1
QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4QUE4
MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0
OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCisJCQkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8q
IFNwZWVjaCAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAqLywK
IAkJCQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCiAJCQkJNTc2
MDgyOEEyMDI5ODRDOTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0aW9uICovLApAQCAtOTQxMyw2
ICs5NDQzLDExIEBACiAJCQkJOTNENkI3QjAyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwICovLAogCQkJCTkzRDZCN0IyMjU1MjY4QTIwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJOTNE
NkI3QUYyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVl
c3QuaCAqLywKKwkJCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5M0FCOUI0MjI1NzQ5MjhD
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgg
Ki8sCisJCQkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkzQUI5QjQ1MjU3NDky
OEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJOTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cCAqLywKIAkJCQk5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaCAqLywKIAkJCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0xMDU2Niw2ICsxMDYwMSwxMiBAQAogCQkJ
CTFERDJBNjcyMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxREQyQTY3MzI1NjIzMjRGMDBGRjdCNkYgLyogU291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NzEyNTYyMzI0
RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCAq
LywKKwkJCQk5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlC
NTQyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggKi8sCisJCQkJOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAor
CQkJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MjI1NzU4
OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
OTNENkI3ODAyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2Fn
ZXMuaCAqLywKIAkJCQk5M0Q2Qjc3RjI1NENDQUJCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTExNjM1LDYgKzExNjc2LDkgQEAKIAkJ
CQk1N0ZEMzE4NTIyQjM1MTY5MDA4RDBFOEIgLyogU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3QjUyNTUyNjhENzAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I0MjU1
MjY4RDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0FCOUI0QzI1NzU2M0YzMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNB
QjlCNEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODQyNTRDQ0QwRTAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1l
c3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzQwOSw2ICsxMzQ1Myw4IEBACiAJ
CQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRN
YWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxREQyQTY3NDI1NjIzMkExMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NTI1NzVBMjc2
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NjI1NzVBMjhCMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0Q2Qjc4MjI1NENDQ0Y0
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVh
TWFwTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNjhFRURFMjMwM0E5
MDIwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyNmQ1MWQxNTk2NmM1Zjk3M2I1NWEwM2RhM2FiYjVh
NjYxODAzMGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0w
LDAgKzEsMjU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaD4KKworI2lm
IFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQXVkaW9E
YXRhLmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgPFdlYkNv
cmUvQXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2UKKyAgICA6IHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1w
bGVPYnNlcnZlcgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgcHVibGljIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlOjpDbGllbnQKKyNlbmRpZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIFNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmll
cikKKyAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgbV9jb25u
ZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAg
ICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG1h
a2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKSkKKyNlbmRpZgorICAg
IHsKKyAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3Vy
Y2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5Tb3VyY2Uo
KQorICAgIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgc3RvcmFnZSgpLmludmFsaWRh
dGUoKTsKKyNlbmRpZgorICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZl
cigqdGhpcyk7CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAg
fQorCisgICAgdm9pZCBzdGFydCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+c3RhcnQoKTsK
KyAgICB9CisKKyAgICB2b2lkIHN0b3AoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0b3Ao
KTsKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZSYgc3RvcmFnZSgpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsKKyAgICB9CisjZW5k
aWYKKworcHJpdmF0ZToKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbAorICAgIHsKKyAg
ICAgICAgaWYgKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKSB7CisgICAgICAgICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQobV9pZGVudGlmaWVyKSwgMCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpSZW1vdGVTb3VyY2VTdG9wcGVkKG1faWRlbnRpZmllciksIDApOworICAgIH0KKwor
ICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykgZmluYWwKKyAgICB7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2NyaXB0
aW9uKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlv
bigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7
CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNj
cmlwdGlvbik7CisKKyAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0aW9u
LnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUobV9k
ZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9mRnJhbWVzKTsKKyAgICAg
ICAgfQorCisgICAgICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkp
OworICAgICAgICBtX3JpbmdCdWZmZXIuc3RvcmUoZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0
PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOwor
ICAgICAgICB1aW50NjRfdCBzdGFydEZyYW1lOworICAgICAgICB1aW50NjRfdCBlbmRGcmFtZTsK
KyAgICAgICAgbV9yaW5nQnVmZmVyLmdldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBl
bmRGcmFtZSk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQXVkaW9TYW1w
bGVzQXZhaWxhYmxlKG1faWRlbnRpZmllciwgdGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJh
bWUsIGVuZEZyYW1lKSwgMCk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0odGltZSk7Cisg
ICAgICAgIFVOVVNFRF9QQVJBTShhdWRpb0RhdGEpOworICAgICAgICBVTlVTRURfUEFSQU0oZGVz
Y3JpcHRpb24pOworICAgICAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworI2VuZGlm
CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2Vk
KFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwKKyAgICB7CisgICAgICAgIFNoYXJlZE1lbW9y
eTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKHN0b3JhZ2UpCisgICAgICAgICAgICBzdG9y
YWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KTsKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpCisgICAgICAgIHVpbnQ2NF90IGRh
dGFTaXplID0gaGFuZGxlLnNpemUoKTsKKyNlbHNlCisgICAgICAgIHVpbnQ2NF90IGRhdGFTaXpl
ID0gMDsKKyNlbmRpZgorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNldFN0b3JhZ2Uo
bV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwg
IGRhdGFTaXplIH0sIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAgICB9
CisKKyNlbmRpZgorCisgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBmaW5hbAorICAgIHsK
KyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICAgICAgYXV0byBidWZmZXJTaXplID0gQXVkaW9T
ZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTA7CisgICAgICAgIGlmIChB
dWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5wcmVmZXJyZWRCdWZmZXJTaXplKCkgPiBidWZm
ZXJTaXplKQorICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0UHJl
ZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFy
ZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkLCBSb3V0
ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOworI2VuZGlmCisgICAgfQorCisgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
CisgICAgdWludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKKworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CisgICAgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworI2VuZGlmCit9OworCitTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAg
ICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQoreworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhp
cyk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6On5T
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoKnRoaXMpOworfQorCisj
aWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JUQ0NELCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkKK3sKKyAgICBtX3NhbmRib3hF
eHRlbnNpb25Gb3JUQ0NEID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJv
eEhhbmRsZUZvclRDQ0QpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpCisg
ICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3Ig
dGNjZCIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+Y29u
c3VtZSgpOworCisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JNaWNyb3Bob25lKSk7Cisg
ICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKQorICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIG1pY3JvcGhvbmUiKTsK
KyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPmNvbnN1
bWUoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCit7CisgICAgaWYgKG1fc2FuZGJveEV4dGVu
c2lvbkZvclRDQ0QpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+cmV2b2tl
KCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBudWxscHRyOworICAgIH0K
KworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKSB7CisgICAgICAgIG1f
c2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPnJldm9rZSgpOworICAgICAgICBtX3NhbmRi
b3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gbnVsbHB0cjsKKyAgICB9Cit9CisKKyNlbmRpZgor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmFkZFNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UpCit7CisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlKTsKKyAgICBp
ZiAoIXJlc3VsdCkgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgcmVhbHRp
bWUgc291cmNlIik7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQoaWRlbnRp
ZmllciksIDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKCFtX3NvdXJj
ZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwg
bWFrZVVuaXF1ZTxTb3VyY2U+KGlkZW50aWZpZXIsIHJlc3VsdC5zb3VyY2UoKSwgbWFrZVJlZigq
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NvdXJjZXMucmVtb3ZlKGlkZW50
aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OnN0YXJ0KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAg
ICAgc291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3AoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZp
ZXIpKQorICAgICAgICBzb3VyY2UtPnN0b3AoKTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKK30KKwor
dWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVz
c2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzMTUwZjFiYmJiMzA5
OWQyZWNiN2JiZmU3NmJiMDYzMmY4Y2NlYjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYpOworICAgIH5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKCk7CisKK3ByaXZhdGU6CisgICAgLy8gTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAgICB2b2lkIGFkZFNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIpOworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgdm9p
ZCBncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9pZCByZXZva2VTYW5kYm94RXh0ZW5zaW9u
cygpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOworCisgICAgY2xhc3MgU291cmNlOworICAgIGZyaWVuZCBjbGFz
cyBTb3VyY2U7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllciwgc3RkOjp1bmlxdWVfcHRyPFNvdXJjZT4+IG1fc291cmNlczsKKworI2lmIEVOQUJMRShT
QU5EQk9YX0VYVEVOU0lPTlMpCisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJv
eEV4dGVuc2lvbkZvclRDQ0Q7CisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJv
eEV4dGVuc2lvbkZvck1pY3JvcGhvbmU7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTI1N2EyODI1
OWFmNWM3ZDQ4YWY3MGQ0YjhmZGI3MWQxMDQxOWRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzggQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNz
YWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJl
ZkNvdW50ZWQgeworICAgIEFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSkKKyAgICBS
ZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyKTsKKyAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICBH
cmFudFNhbmRib3hFeHRlbnNpb25zKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNh
bmRib3hFeHRlbnNpb25IYW5kbGVGb3JUQ0NELCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yTWljcm9waG9uZSkKKyAgICBSZXZva2VTYW5k
Ym94RXh0ZW5zaW9ucygpCisjZW5kaWYKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCmluZGV4IDNmMzUzMTk0YTMyYzNlNjc5YmNh
MjlmYmVhODUwMzFjOTIxZTRmYzQuLmUwZDJhNTk4NTU1Yjk4OTc4NTg1OGFiNmM2NGE3NTRhZmRh
MTEwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
Y3BwCkBAIC00Niw2ICs0NiwxMCBAQCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25pdGlvbgogewogICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRp
ZmllciwgKnRoaXMpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6Q3JlYXRl
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7CisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgogfQogCiBXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGYyZjIyODIy
YzdiMjIzZmNhNTlmOTU1NzNkMTFkYzk5YjEwMzQ4MTEuLjQ5ZGJmZjZlNmFkZjdiZjA5NDExM2Jk
N2M3YTE1YTExYWYxNGFkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQcm9jZXNzQXNzZXJ0aW9uLmgiCiAjaW5j
bHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFj
dG9yeS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRh
LmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgpAQCAtMTk2OSw2ICsx
OTcwLDE2IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZW5hYmxlVlA5U1dEZWNvZGVyKCkKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+KG1ha2VSZWYoKnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCkpKTsKKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5k
ZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKaW5kZXggZTljNDdkYjRjNDQ3YzBmNGFiNjI3YzA5NGI1ZjY4ZGI1NjVhOWE2Yy4uN2U1YTRj
YWE0YzVkMmUyMzc4ODEzZWI0ZjJmNDIyOGJkZTRjYzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCkBAIC0xNDIsNiArMTQyLDEwIEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVyczsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGNsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4
aWxpYXJ5UHJvY2VzcwogewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMzYwLDYg
KzM2NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRXcml0ZVRvUGFzdGVib2FyZEFzeW5jaHJv
bm91c2x5KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXImIGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJv
Y2VzcygpOwpAQCAtNjkzLDYgKzcwMSwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92cDlEZWNv
ZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZwOVNXRGVjb2RlckVuYWJsZWQgeyBm
YWxzZSB9OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5p
cXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3Nw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415483</attachid>
            <date>2020-12-04 20:39:36 -0800</date>
            <delta_ts>2020-12-04 21:56:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201204203935.patch</filename>
            <type>text/plain</type>
            <size>84750</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RlYmRkNjNmYjkxNzM2
MTE4MDVlOWY1NDI4Zjk0YmExMWJiMWNlNy4uY2YzZDk4MmYyYzMxYTg1NjNiMjQ5YWE3ZTlmZmE5
YWQxZTVhNWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEyLTA0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1lZGlhU291cmNlIG1lbWJlciBvZiBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBhdWRpbyByZXNhbXBsaW5nIGNvZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggMzM3YTU0NDBlMjE3NmE5ZGU1NjJkMmI1NDc4ZDc5YzE0MDg0OThmMS4uMDI3YjQ0ZDI4YWFj
MDBjZjYyZTJmNjAzYjJiYWYxYzRlMmViYTZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NyBAQAor
MjAyMC0xMi0wNCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgYXVkaW8gY2FwdHVyZSBpcyBkb25lIGluIHdl
YiBwcm9jZXNzLiBGb3Igc3BlZWNoIHJlY29nbml0aW9uLCByZWNvZ25pemVyIGlzIGluIFVJIHBy
b2Nlc3MuIFRoZXJlZm9yZSwKKyAgICAgICAgVUkgcHJvY2VzcyBuZWVkcyB0byBhc2sgd2ViIHBy
b2Nlc3MgdG8gY2FwdHVyZSBhdWRpbyBhbmQgc2VuZCBiYWNrIGRhdGEuIFRvIGltcGxlbWVudCB0
aGlzLCB0aGlzIHBhdGNoIGFkZGVkOgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZSAob3duZWQgYnkgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6U291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4KKyAgICAgICAgLSBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlNvdXJjZTogb3duIGFuZCBtb25pdG9yIGEgbG9jYWwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZS4KKworICAgICAgICBUaGlzIHN0cnVjdHVyZSBpcyB2ZXJ5IHNpbWls
YXIgdG8gaG93IHdlIGltcGxlbWVudCBtZWRpYSBjYXB0dXJlIG9uIG1hY09TIChSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLCAKKyAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgYW5kIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpLCB3aGVyZSB3ZSBzZW5kIGRhdGEgZnJvbSBVSSBw
cm9jZXNzIHRvIHdlYiBwcm9jZXNzLgorICAgICAgICBXZSBzaG91bGQgdW5pZnkgdGhlIGFyY2hp
dGVjdHVyZSBpZiBwb3NzaWJsZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjptX3JpbmdCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFBy
b2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3Rv
cHBlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6cmVtb3ZlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNv
dXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6c2V0U3RvcmFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlRm9yU3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6OlNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZTo6flNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlNvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6OnN0b3ApOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3Vy
Y2U6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4
dGVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpz
dGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIENhbmNlbCBpbWFnZSBleHRyYWN0aW9uIHdo
ZW4gbmF2aWdhdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzAwNjk0YjRiZjVmMGY0ZjlmZWU5
NTg2ZGYyNjFiZDEwMzNlNjcxZi4uMWMwMTFjZDQ4MjI5MGJjNDI5ZjgzM2JiYmQ4ODlmZGVmZGU5
YzJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMzQyLDYgKzEzNDIsNyBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5jcHAKaW5kZXggYzkzYjZmMzhiYzYyMzhkYTFkYmE4NjhlMjllMWU1YjFlNmY2NmI2Yi4u
ZDdlY2U2NTlmMDg5MjlkZmJjNzdjMTcxMWE5NDRjN2MxMTVlNjE0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNCw5ICszNCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0
ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaykKLXsKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCitPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKK3sKICAgICBPcHRpb25hbDxDYXB0dXJlRGV2aWNl
PiBjYXB0dXJlRGV2aWNlOwogICAgIGF1dG8gZGV2aWNlcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKICAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2
aWNlcykgewpAQCAtNTEsMjYgKzUyLDE5IEBAIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKyAgICByZXR1cm4gY2FwdHVyZURldmlj
ZTsKK30KIAotICAgIGlmICghY2FwdHVyZURldmljZSkgewotICAgICAgICBhdXRvIGVycm9yID0g
U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRp
b0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OwotICAgICAg
ICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJv
cihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVS
ZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7
CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwg
eyB9LCB7IH0pOworfQogCi0gICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAg
ICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCByZXN1bHQuZXJyb3JNZXNzYWdlIH07Ci0gICAg
ICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVy
cm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElk
ZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFj
ayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2ssIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJj
ZSkKKyAgICA6IG1faW1wbChtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShz
dGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShzb3VyY2UpKSkKK3sKK30KIAotICAgIG1faW1w
bCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50
SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2Fs
bGJhY2spLCByZXN1bHQuc291cmNlKCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50
SWRlbnRpZmllcik7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGFDYWxsYmFjayk7Ci0gICAgVU5VU0VE
X1BBUkFNKHN0YXRlVXBkYXRlQ2FsbGJhY2spOwogI2VuZGlmCi19CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKaW5kZXggNzM4NmNlZWUyNzQwN2Nj
NjEwNGUyOWVkNzNkZTdkYTBhNDlmNGUwYS4uNjlmOWE4OGIyNjFlNzFmNjZlYzAwYmI5ZTcxZGEw
ZjNhYzgxOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKQEAgLTQyLDEwICs0Miwx
NiBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKIGNsYXNzIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIH5T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAgdXNpbmcgRGF0
YUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+
OwogICAgIHVzaW5nIFN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OwotICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2Fs
bGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNh
bGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZmluZENhcHR1cmVEZXZp
Y2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJik7CisjZW5kaWYKIAog
cHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMy
OWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li41NTAwMjhjMzU1NmIzZWRlNzBjZWUzZGJhZGJk
YTE5NjAxOWI0N2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmNwcApAQCAtNTAsMTkgKzUwLDI3IEBAIHZvaWQgU3BlZWNoUmVjb2du
aXplcjo6cmVzZXQoKQogCiAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBp
cyBzdGFydGVkIiB9OwogICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKKworICAgIG1f
Y2xpZW50SWRlbnRpZmllciA9IFdURjo6bnVsbG9wdDsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25p
emVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiB7Ci0gICAgcmVzZXQoKTsKKyAgICBBU1NFUlQoIW1fc291cmNlKTsKIAogICAg
IG1fY2xpZW50SWRlbnRpZmllciA9IGlkZW50aWZpZXI7CiAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNr
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCkpOworfQorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKIAotICAgIHN0YXJ0SW50ZXJuYWwoKTsKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6
c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlm
aWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgc3RhcnQoaWRl
bnRpZmllcik7CisgICAgc2V0U291cmNlKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLXZvaWQgU3Bl
ZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgpCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnNl
dFNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiB7CiAgICAgYXV0byBk
YXRhQ2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29uc3QgYXV0byYg
dGltZSwgY29uc3QgYXV0byYgZGF0YSwgY29uc3QgYXV0byYgZGVzY3JpcHRpb24sIGF1dG8gc2Ft
cGxlQ291bnQpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKQEAgLTkwLDkgKzk4LDExIEBAIHZv
aWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgpCiAgICAgICAgICAgICBtX3NvdXJj
ZSA9IG51bGxwdHI7CiAgICAgfTsKIAotICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0
YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSk7CisgICAgbV9zb3VyY2Ug
PSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRl
bnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJh
Y2spLCBXVEZNb3ZlKHNvdXJjZSkpOwogfQogCisjZW5kaWYKKwogdm9pZCBTcGVlY2hSZWNvZ25p
emVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJl
c3VsdCkKIHsKICAgICBpZiAoIW1fY2xpZW50SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAppbmRleCBlNmYxM2ZlZTg0YTUz
M2FmMGYwNGUwNzY5YzFhZTA5NWJlNWJmZjNmLi41YTNmYjFiNWEwM2M3YjM5M2ZkY2JiNDUwMzQ1
NTc3YjMzODIxMzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXplci5oCkBAIC0zOSwxNyArMzksMjQgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNoUmVjb2duaXplcigpID0gZGVmYXVsdDsKIAorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVzZXQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwogICAgIGVudW0g
Y2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7IE5vLCBZZXMgfTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9IFNob3VsZEdlbmVy
YXRlRmluYWxSZXN1bHQ6Olllcyk7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworI2VuZGlmCisKICAgICBP
cHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJy
ZW50Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsg
fQogCiBwcml2YXRlOgotICAgIHZvaWQgcmVzZXQoKTsKLSAgICB2b2lkIHN0YXJ0SW50ZXJuYWwo
KTsKICAgICB2b2lkIHN0b3BJbnRlcm5hbCgpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICB2b2lkIHNldFNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisjZW5kaWYK
KwogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVD
YWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlPiBtX3NvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA5ODdkZTE0NmU3NDAyZjE4MTNiNjZjYjE4MjlhZDAwZDc2NzI5
NTJiLi5lMjg3OTdlZTIyYzA5NjFmMjlmOGJjZmQ2NmMzYTY5YWMyMDEwNGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzY0
MSwxMyArMjM2NDEsNiBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKLQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovID0gewot
CQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29j
b2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1
MDA3NzA4NEYgLyogcGFyc2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTI1Njc4LDcgKzI1NjcxLDYgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1
IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZB
NDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlB
QTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAq
LywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhl
c2lzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA3YWY2MTViMTU3YWJlMzc2MzIzMDcxZDE3
MjA3NDVkZDZlMTE2ZjY3Li4xMjk3ZGRkMmZmN2FiYTU4MjdlY2IwYjViMjI1OGYyMDY3MGRlYmJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTEwMyw2ICsxMDMsNyBAQCBzZXQoV2ViS2l0X0lOQ0xV
REVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL1NwZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2Ui
CiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTg3LDYgKzE4OCw3IEBAIHNl
dChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1l
c3NhZ2VSZWNlaXZlcgogCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgog
ICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNp
dGVkTGlua1N0b3JlCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQpAQCAtMjU4
LDYgKzI2MCw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb3h5CiAKKyAgICBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCAyNjdjZGQyOTQzZTE0NmYwNWNjOGU3YzMxMDIyMzlkYmY2YmUz
YjU3Li40YzYzYzI4NzMwNTk2ZTNmMGRmMmQ3MWQ5YzdmZWIwYjJkNmExMmM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDgsNiArMTA4
LDcgQEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KQEAgLTE2NSw2ICsxNjYsNyBAQCAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
bWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IDYwZDQ0MzAyNmYzNmQ0OTNhY2I2Mjc5ZDhmN2EwYzMxZWEyYjQ2MjkuLjkx
OGIwMmE4MTE5NjBiOTJlZTU3MTgyZWYzMzg1MDIzNDFjYzE4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjcyLDYgKzI3MiwxMiBA
QCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25p
ZmljYXRpb25Db250cm9sbGVyTWVzc2FnZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzNThmNzRiYmQzMjUxNjRkMjk1NzYyMDEyN2U0
YTYwMmQ5MmQ3YTU2Li4zZjk1NmU2NDYxMDliOGY3ZmI3ODkxOTNiNzcxYzg1ZWM5YTkwYThkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0gXAog
ICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2Fj
aGUgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TcGVlY2ggXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9TdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQg
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0xNjcs
NiArMTY4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sIFwKIAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9N
ZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbiBcCkBAIC0yMDEsNiArMjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBc
CisJV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggY2I3OGJiMjJiNjczMjc0NDUxY2Ez
Y2NkYzU2YTVlZmVmNjc3NTk4MC4uMTVjOTU3ODk0YjcwYTRkYzc0ZmI4YjlhYzhhZGJlMWE3ZTNj
YjAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yOTEsNiArMjkxLDggQEAgVUlQcm9jZXNzL1Byb2Nlc3NB
c3NlcnRpb24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNw
cAorVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9j
ZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJv
bGxlci5jcHAKQEAgLTYzNyw2ICs2MzksOCBAQCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgQG5vLXVuaWZ5CiAKK1dlYlByb2Nlc3Mv
U3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisK
IFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZTk5NjA1ZDc3Njg5M2E5ZmJlNzc4YjM4YzJjNWRl
N2YwNDZiNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTM1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1
ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmlj
ZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQorICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsg
Y2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVu
dElkKCkgfSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9tYW5hZ2Vy
KG1ha2VXZWFrUHRyKG1hbmFnZXIpKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5n
QnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlPihudWxscHRyKSkpCisjZW5kaWYKK3sKKyAgICBtX21hbmFnZXItPmFkZFNv
dXJjZSgqdGhpcywgY2FwdHVyZURldmljZSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5yZW1v
dmVTb3VyY2UoKnRoaXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2Vy
KQorICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0IHsgbV9pZGVudGlmaWVyIH0pOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1
Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+c2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
U3RvcCB7IG1faWRlbnRpZmllciB9KTsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShj
b25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykK
K3sKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisKKyAgICBSZWZQdHI8U2hhcmVk
TWVtb3J5PiBtZW1vcnk7CisgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbWVt
b3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246
OlJlYWRPbmx5KTsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHNoYXJlZCBt
ZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2UiKTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0g
c3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3Jh
Z2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9j
YXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9y
YWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
dG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uu
c2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1
ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVk
aW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgaWYgKCFtX2J1ZmZlcikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZl
ciBmb3IgcmVtb3RlIHNvdXJjZSBpcyBudWxsIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChu
dW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMo
c3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXIt
Pmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9idWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShu
dW1iZXJPZkZyYW1lcyk7CisgICAgVU5VU0VEX1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNF
RF9QQVJBTShlbmRGcmFtZSk7CisjZW5kaWYKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNh
cHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJjZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42N2JjMGQxMzFmMmNkYjE1ZjkyNWNlMDkwMTk1N2Vm
YTRkNDQwY2JlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw3NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYpOworICAgIH5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsK
KworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdl
YkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
KTsKKyNlbmRpZgorCisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFU
aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0
X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworICAgIHZvaWQg
cmVtb3RlU291cmNlU3RvcHBlZCgpOworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKworICAgIC8vIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwor
ICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJl
dHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7
CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyPiBtX21hbmFnZXI7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyBtX2NhcGFiaWxpdGllczsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MgbV9zZXR0aW5nczsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6
OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyNlbmRpZgorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWYzYjk5ZWRm
MmNiOGI4NDI2MDY4OGY2MzgzMTcyZTAyNjhkYmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0g
c291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVu
dGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cihzb3Vy
Y2UpKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCisgICAgaWYgKCFtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yVENDRDsKKyAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnRjY2Qi
X3MsIG1fY29ubmVjdGlvbi0+Z2V0QXVkaXRUb2tlbigpLCBoYW5kbGVGb3JUQ0NEKTsKKyAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvck1pY3JvcGhvbmU7CisgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5h
cHBsZS53ZWJraXQubWljcm9waG9uZSJfcywgaGFuZGxlRm9yTWljcm9waG9uZSk7CisgICAgICAg
IHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OkdyYW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9yVENDRCwgaGFuZGxlRm9yTWljcm9w
aG9uZSkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IHRydWU7Cisg
ICAgfQorI2VuZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmlj
ZSkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRp
ZmllcigpOworICAgIEFTU0VSVChtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpID09ICZzb3VyY2Up
OworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7CisKKyNpZiBFTkFCTEUoU0FOREJP
WF9FWFRFTlNJT05TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIGlmIChtX3NvdXJj
ZXMuaXNFbXB0eSgpICYmIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zKSB7CisgICAgICAg
IHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5k
Ym94RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0KKyNlbmRpZgorCisgICAgc2VuZChNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3ZlU291
cmNlKGlkZW50aWZpZXIpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV1RGOjpN
ZWRpYVRpbWUmIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJj
ZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OnJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlk
ZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVu
dGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVTb3VyY2VTdG9wcGVkKCk7Cit9CisKK0lQ
Qzo6Q29ubmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBt
X2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNldFN0
b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRsZSwgY29uc3QgV2ViQ29yZTo6
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVy
KSkKKyAgICAgICAgc291cmNlLT5zZXRTdG9yYWdlKGlwY0hhbmRsZS5oYW5kbGUsIGRlc2NyaXB0
aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjcwY2FkMjA1MjBkY2NlYTFjMmJmYTA2ZWNhNTExZjRkOGQz
OTJiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDgx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRl
ci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRp
YVRpbWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CisK
KyNpZiBQTEFURk9STShDT0NPQSkKK2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKKyNl
bmRpZgorfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBD
OjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAg
dm9pZCBhZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
JiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHZvaWQgcmVtb3ZlU291cmNl
KFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOworCitwcml2YXRl
OgorICAgIC8vIE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyCisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVu
ZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgdm9pZCBzZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgor
CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQ
Qzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0
aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1f
c291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zIHsgZmFsc2Ug
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQwNzEwMzk4YmM3YzJjNDcwNDRiMDNlNjVkMGFjYzg1ODBhMWVmZWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIFJlbW90ZUF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNhcHR1cmVGYWlsZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBS
ZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5jcHAKaW5kZXggOWY2MDBkM2Y1Y2RjNmMzMmM1NDhhMGEwOWFiMDJiYzE0
NTM0NTI0NC4uMjMyODRmYmZkNmI0ODU2OGU4Zjg2MWNmNGZmMzJjMDI5YzY5ZDMyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cApAQCAtMzYsMTIgKzM2LDIyIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKK1NwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25DaGVja2VyJiYgcGVybWlzc2lvbkNoZWNrZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVG
dW5jdGlvbiYmIGZ1bmN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlv
bikpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fcGVybWlzc2lvbkNo
ZWNrZXIoV1RGTW92ZShwZXJtaXNzaW9uQ2hlY2tlcikpCisgICAgLCBtX3JlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbihXVEZNb3ZlKGZ1bmN0aW9uKSkKK3sKK30KKyNlbHNlCiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIg
aWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciYmIHBlcm1pc3Np
b25DaGVja2VyKQogICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fcGVybWlzc2lvbkNoZWNrZXIoV1RG
TW92ZShwZXJtaXNzaW9uQ2hlY2tlcikpCiB7CiB9CisjZW5kaWYKIAogdm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBib29sIGNv
bnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcywg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luKQogewpAQCAtOTIsNiArMTAyLDE5IEBAIHZv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uCiAgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CiAg
ICAgICAgIH0pOwogICAgIH0KKyAgICAKKyAgICBtX3JlY29nbml6ZXItPnJlc2V0KCk7CisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gc291cmNlT3JFcnJvciA9IG1fcmVhbHRp
bWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKCk7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKSB7
CisgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICBz
ZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihj
bGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgc291cmNlT3JFcnJv
ci5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fcmVjb2du
aXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllciwgc291cmNlT3JFcnJvci5zb3VyY2UoKSk7Cisg
ICAgcmV0dXJuOworI2VuZGlmCiAKICAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50
aWZpZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmgKaW5kZXggYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZk
Ny4uYzBjNWM3M2IyOTg0YThlMWU1NDE2NjQ1M2Q4ZjVlMTgyNTc5N2QxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC01MCw3
ICs1MCwxMiBAQCB1c2luZyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyID0gRnVu
Y3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpDbGllbnRPcgogY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+
LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVy
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICB1c2luZyBSZWFs
dGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBGdW5jdGlvbjxXZWJDb3JlOjpDYXB0dXJl
U291cmNlT3JFcnJvcigpPjsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFNwZWVjaFJlY29nbml0aW9u
U2VydmVySWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciYmLCBS
ZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJik7CisjZWxzZQogICAgIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFNwZWVjaFJlY29nbml0aW9u
U2VydmVySWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciYmKTsK
KyNlbmRpZgogCiAgICAgdm9pZCBzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJv
b2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcywgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJiYpOwogICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKQEAgLTc1LDYgKzgwLDEwIEBAIHByaXZhdGU6CiAg
ICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Pj4gbV9yZXF1ZXN0czsKICAgICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1f
cGVybWlzc2lvbkNoZWNrZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml6ZXI+IG1fcmVjb2duaXplcjsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNy
ZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU3ZDljZGZlNTUz
NWMyN2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLjE2MTlkMjI0NGEwYzY0YWY1MmQxYThlZTA3
M2MyMWUzZTUzMGE0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcApAQCAtMzgsNiArMzgsOSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJUZXh0
Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTE3MDAsMTAgKzE3
MDMsMjcgQEAgUEFMOjpTZXNzaW9uSUQgV2ViUHJvY2Vzc1Byb3h5OjpzZXNzaW9uSUQoKSBjb25z
dAogICAgIHJldHVybiBtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpOwogfQogCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgV2Vi
UHJvY2Vzc1Byb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRp
b24oKQoreworICAgIGF1dG8gY2FwdHVyZURldmljZSA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKTsKKyAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisg
ICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxh
YmxlIGZvciBjYXB0dXJlIiB9OworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZXR1
cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OmNyZWF0ZShlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlKSB9OworI2Vsc2UKKyAgICByZXR1
cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyNlbmRpZgorfQorCisjZW5kaWYKKwogdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9u
U2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIGF1dG8gc3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVyLCBu
dWxscHRyKTsKLSAgICBBU1NFUlQoc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXNOZXdFbnRyeSk7
CisgICAgQVNTRVJUKCFtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50
aWZpZXIpKTsKKyAgICBhdXRvJiBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1
ZTsKICAgICBXZWJQYWdlUHJveHkqIHRhcmdldFBhZ2UgPSBudWxscHRyOwogICAgIGZvciAoYXV0
byogcGFnZSA6IHBhZ2VzKCkpIHsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+d2ViUGFnZUlE
KCkgPT0gaWRlbnRpZmllcikgewpAQCAtMTcxNSwxNSArMTczNSwyNyBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudAogICAgIGlmICghdGFyZ2V0UGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwg
W3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYm
IGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZl
ciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNvbm5lY3Rp
b24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXShh
dXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CiAgICAgICAg
IGlmICghd2Vha1BhZ2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIH0pOwot
ICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgfQorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisg
ICAgLCBbdGhpcywgd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oKSB7CisgICAg
ICAgIGlmICghd2Vha1BhZ2UpCisgICAgICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgeyAiUGFnZSBpcyBpbnZhbGlkIiB9OworICAgICAgICAKKyAgICAgICAgaWYgKHdlYWtQYWdl
LT5wcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJOb3QgaW1wbG1lbnRlZCBmb3Ig
R1BVIHByb2Nlc3MiIH07CisKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpOworICAgIH0KKyNlbmRpZgorICAgICk7CisgICAgYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOwog
fQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTczMyw2
ICsxNzY1LDIwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVuCiAgICAgbV9zcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1hcC5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyJiBXZWJQcm9jZXNzUHJveHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKSB7CisgICAgICAgIG1fc3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4obWFrZVJlZigqY29u
bmVjdGlvbigpKSk7CisgICAgICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKworI2VuZGlmCisKICNpZiBQTEFURk9STShX
QVRDSE9TKQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRCYWNrZ3JvdW5kQWN0aXZpdHlG
b3JGdWxsc2NyZWVuSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAppbmRleCBjMTBiMzk0OGQ3NzY3NjM3MTRkMTY0NzliNTkzNjI4MmE2OTczM2RhLi5jYzMx
OWNiNTA5M2FlYTZjOTBiN2VjZjI3MWQ1ZTMzOGI3N2UzYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAzLDYgKzEwMywxMCBAQCBzdHJ1Y3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlOwogc3Ry
dWN0IFdlYnNpdGVEYXRhOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKKwog
ZW51bSBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBlIHsgfTsKIHR5cGVkZWYgUmVmQ291
bnRlcjxGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXJUeXBlPiBGb3JlZ3JvdW5kV2ViUHJvY2Vz
c0NvdW50ZXI7CiB0eXBlZGVmIEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlcjo6VG9rZW4gRm9y
ZWdyb3VuZFdlYlByb2Nlc3NUb2tlbjsKQEAgLTUwNSw2ICs1MDksMTAgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgY3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlUmVhbHRpbWVN
ZWRpYVNvdXJjZUZvclNwZWVjaFJlY29nbml0aW9uKCk7CisgICAgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiAKICAgICB2b2lkIHN5
c3RlbUJlZXAoKTsKICAgICAKQEAgLTY0Myw2ICs2NTEsOSBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNwZWVjaFJlY29nbml0aW9u
U2VydmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uU2VydmVy
Pj47CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1hcDsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzRkNzk3ZmZiNjlkMDY2NzI2M2QwNGY0MzA5ZGVh
MTlmY2JiYTAzMi4uYjU5ZTkyODU4NGJiZGVhYzQ3YTQxYzQwZGY5M2RjYzMzZjYxOWQ0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDM1LDYgKzE0MzUsMTEgQEAKIAkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8qIFdlYkhpdFRl
c3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0E4OEIzMTFCQzZFOUMwMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuaCAq
LzsgfTsKIAkJOTNBODhCM0IxQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
ODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5oICovOyB9
OwogCQk5M0E4OEI0NjFCQzg4MjkzMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhCNDMxQkM4ODI4
QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLzsgfTsKKwkJOTNBQjlCNEMyNTc1NjNG
MzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjRB
MjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggKi87IH07CisJCTkzQUI5QjREMjU3NTY3REMwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICov
OyB9OworCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi87IH07CisJCTkzQUI5QjU1MjU3NUEyNzYw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTNBQjlC
NTYyNTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQk5M0IyNjE0RDIyN0QxNDlFMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2
MTQ5MjI3RDE0NzIwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQk5M0IyNjE0
RTIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ1MjI3RDE0NzAwMEI5N0E3
NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovOyB9OwogCQk5M0IyNjE0RjIyN0QxNEIxMDBC
OTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyog
TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggKi87IH07CkBAIC00NjA1LDYgKzQ2MTAsMjAg
QEAKIAkJOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0SW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODhCNDIxQkM4ODI4QzAw
QUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDMyNTc0OTI4QzAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDUyNTc0OTI4RDAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0OTI1NzRDNjFFMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRCMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0RjI1NzU4OTEx
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTAyNTc1ODkxMTAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTIyNTc1ODkxMjAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MzI1NzU4OTEyMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0NTIyN0Qx
NDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNCMjYxNDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFi
YXNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMjYx
NDcyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODk5OSw2ICs5MDE4LDE2
IEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
OTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8qIFNwZWVjaCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNBQjlCNEIyNTc0QzYxRjAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkz
QUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDkyNTc0QzYxRTAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJ
CQkpOworCQkJcGF0aCA9IFNwZWVjaDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTkzQjI2MTQzMjI3RDE0MzEwMEI5N0E3NiAvKiBXZWJTdG9yYWdlICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkyMDMsNiArOTIzMiw3IEBACiAJCQkJ
NTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEwOTk5NzQxNDZD
OEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAogCQkJCTFBNkZCN0FBMTFF
NjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAorCQkJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEw
RSAvKiBTcGVlY2ggKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8qIFN0b3JhZ2Ug
Ki8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJDb250ZW50ICovLAogCQkJ
CTU3NjA4MjhBMjAyOTg0QzkwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdGlvbiAqLywKQEAgLTk0
MTYsNiArOTQ0NiwxMSBAQAogCQkJCTkzRDZCN0IwMjU1MjY4QTEwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5M0Q2QjdCMjI1NTI2OEEy
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oICovLAogCQkJ
CTkzRDZCN0FGMjU1MjY4QTEwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmggKi8sCisJCQkJOTNBQjlCNDMyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJOTNBQjlCNDIyNTc0
OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oICovLAorCQkJCTkzQUI5QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5M0FCOUI0NTI1
NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICov
LAogCQkJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHAgKi8sCiAJCQkJOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyLmggKi8sCiAJCQkJOTNENkI3N0EyNTRDOTg0RDAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluICovLApAQCAtMTA1NzIsNiArMTA2MDcsMTIgQEAK
IAkJCQkxREQyQTY3MjI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUREMkE2NzMyNTYyMzI0RjAwRkY3QjZGIC8q
IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oICovLAogCQkJCTFERDJBNjcxMjU2
MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVz
LmggKi8sCisJCQkJOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkz
QUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MDI1NzU4OTExMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovLAorCQkJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKKwkJCQk5M0FCOUI1MzI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNBQjlCNTIy
NTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk5M0Q2Qjc4MTI1NENDQUJDMDA1
OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAog
CQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1l
c3NhZ2VzLmggKi8sCiAJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMTY0MSw2ICsxMTY4Miw5IEBA
CiAJCQkJNTdGRDMxODUyMkIzNTE2OTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlvblNlc3Npb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I1MjU1MjY4RDcwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdC
NDI1NTI2OEQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEMyNTc1NjNGMzAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjREMjU3NTY3REMwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzg0MjU0Q0NEMEUw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTM0MTMsNiArMTM0NTcsOCBA
QAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3BhdGNo
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUREMkE2NzQyNTYyMzJBMTAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVS
ZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBQjlCNTUyNTc1
QTI3NjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBQjlCNTYyNTc1QTI4
QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNENkI3ODIyNTRD
Q0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdl
QXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzY4RUVERTIz
MDNBOTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjZkNTFkMTU5NjZjNWY5NzNiNTVhMDNkYTNh
YmI1YTY2MTgwMzBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApA
QCAtMCwwICsxLDI1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmg+CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNlbHNlCisjaW5jbHVkZSA8V2ViQ29y
ZS9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUF1
ZGlvRGF0YS5oPgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyNpbmNsdWRlIDxX
ZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlCisgICAgOiBwcml2YXRlIFJlYWx0aW1lTWVkaWFT
b3VyY2U6Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlv
U2FtcGxlT2JzZXJ2ZXIKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIHB1YmxpYyBTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisjZW5kaWYKK3sKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAgICAgICAsIG1f
Y29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
PihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCisjZW5kaWYK
KyAgICB7CisgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1f
c291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB+U291
cmNlKCkKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0b3JhZ2UoKS5pbnZh
bGlkYXRlKCk7CisjZW5kaWYKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxlT2Jz
ZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0YXJ0
KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5z
dG9wKCk7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7CisgICAgfQor
I2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwKKyAgICB7
CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRlbnRpZmllciks
IDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAgICB9
CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsCisgICAg
eworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNj
cmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3Jp
cHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5
cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCku
ZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlw
dGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRl
KG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7Cisg
ICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0Rh
dGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVy
TGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgp
KTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJh
bWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFt
ZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFy
dEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRpbWUp
OworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsKKyAgICAgICAgVU5VU0VEX1BBUkFN
KGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJhbWVzKTsKKyNl
bmRpZgorICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisgICAgdm9pZCBzdG9yYWdlQ2hh
bmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsCisgICAgeworICAgICAgICBTaGFyZWRN
ZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChzdG9yYWdlKQorICAgICAgICAgICAg
c3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpS
ZWFkT25seSk7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhXSU5ET1dTKQorICAgICAgICB1aW50NjRf
dCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxzZQorICAgICAgICB1aW50NjRfdCBkYXRh
U2l6ZSA9IDA7CisjZW5kaWYKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTZXRTdG9y
YWdlKG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRs
ZSksICBkYXRhU2l6ZSB9LCBtX2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJhbWVzKSwgMCk7Cisg
ICAgfQorCisjZW5kaWYKKworICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkgZmluYWwKKyAg
ICB7CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgICAgIGF1dG8gYnVmZmVyU2l6ZSA9IEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOworICAgICAgICBp
ZiAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVyU2l6ZSgpID4g
YnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNl
dFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCwg
Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyNlbmRpZgorICAgIH0KKworICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworICAgIHVpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyNlbmRpZgorfTsKKworU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24p
CisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
KnRoaXMpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Ojp+U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30K
KworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7CisgICAgbV9zYW5k
Ym94RXh0ZW5zaW9uRm9yVENDRCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNh
bmRib3hIYW5kbGVGb3JUQ0NEKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NE
KQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24g
Zm9yIHRjY2QiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Qt
PmNvbnN1bWUoKTsKKworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkp
OworICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAgICAgICAgTE9H
X0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBtaWNyb3Bob25l
Iik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5j
b25zdW1lKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmIChtX3NhbmRib3hF
eHRlbnNpb25Gb3JUQ0NEKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPnJl
dm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVsbHB0cjsKKyAg
ICB9CisKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkgeworICAgICAg
ICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAgICAgICAgbV9z
YW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQorfQorCisjZW5k
aWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjph
ZGRTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
Q2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7Cisg
ICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHJl
YWx0aW1lIHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKGlk
ZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCghbV9z
b3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZp
ZXIsIG1ha2VVbmlxdWU8U291cmNlPihpZGVudGlmaWVyLCByZXN1bHQuc291cmNlKCksIG1ha2VS
ZWYoKm1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zb3VyY2VzLnJlbW92ZShp
ZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpzdGFydChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
KQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisg
ICAgICAgIHNvdXJjZS0+c3RhcnQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVu
dGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiog
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9
CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzE1MGYxYmJi
YjMwOTlkMmVjYjdiYmZlNzZiYjA2MzJmOGNjZWI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5z
aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2
YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpOworCitwcml2YXRlOgorICAgIC8vIE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisgICAgdm9pZCBhZGRTb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAg
IHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpOworICAgIHZvaWQgcmV2b2tlU2FuZGJveEV4dGVu
c2lvbnMoKTsKKyNlbmRpZgorCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVy
cmlkZTsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24q
IG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVz
c2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKworICAgIGNsYXNzIFNvdXJjZTsKKyAgICBmcmllbmQg
Y2xhc3MgU291cmNlOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2U+PiBtX3NvdXJjZXM7CisKKyNpZiBFTkFC
TEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3Nh
bmRib3hFeHRlbnNpb25Gb3JUQ0NEOworICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3Nh
bmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzEyNTdh
MjgyNTlhZjVjN2Q0OGFmNzBkNGI4ZmRiNzFkMTA0MTlkZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM4IEBACisjIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
bWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBO
b3RSZWZDb3VudGVkIHsKKyAgICBBZGRTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisg
ICAgUmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCisgICAgU3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcik7CisgICAgU3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisg
ICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yVENDRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZvck1pY3JvcGhvbmUpCisgICAgUmV2b2tl
U2FuZGJveEV4dGVuc2lvbnMoKQorI2VuZGlmCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAppbmRleCAzZjM1MzE5NGEzMmMzZTY3
OWJjYTI5ZmJlYTg1MDMxYzkyMWU0ZmM0Li5lMGQyYTU5ODU1NWI5ODk3ODU4NThhYjZjNjRhNzU0
YWZkYTExMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcApAQCAtNDYsNiArNDYsMTAgQEAgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oU3BlZWNoUmVjb2duaXRpb24KIHsKICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lk
ZW50aWZpZXIsICp0aGlzKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNy
ZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKG1faWRlbnRpZmllciksIDApOworCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIH0KIAog
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA1YjFi
YzVhOWZhN2YzYjRkNWFlZjNlNDQ1NWZmNWJmYjJhNzIzYmM5Li42YWI4OGU0YmE3NjY1MTNlMzMx
MjkyMWM4ZTZiNWI2ZDgyMzNiMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFN
YXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHkuaCIKQEAgLTE5NzgsNiArMTk3OSwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmVuYWJs
ZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzOjpl
bnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAg
ICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcikKKyAg
ICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFr
ZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtl
UmVmKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKSk7CisKKyAgICByZXR1cm4gKm1fc3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX1NFU1NJT05fSUQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGU5YzQ3ZGI0YzQ0N2MwZjRhYjYyN2Mw
OTRiNWY2OGRiNTY1YTlhNmMuLjdlNWE0Y2FhNGM1ZDJlMjM3ODgxM2ViNGYyZjQyMjhiZGU0Y2M1
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTQyLDYgKzE0Miwx
MCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiBjbGFzcyBMYXllckhvc3Rp
bmdDb250ZXh0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBjbGFz
cyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3MKIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKQEAgLTM2MCw2ICszNjQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
V3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hyb25vdXNseShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBX
ZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nlc3MoKTsKQEAgLTY5Myw2ICs3MDEsMTAgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fdnA5RGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV92cDlTV0RlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="commit-queue"
          id="432719"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415485</attachid>
            <date>2020-12-04 21:51:20 -0800</date>
            <delta_ts>2020-12-04 22:24:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201204215118.patch</filename>
            <type>text/plain</type>
            <size>86072</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RlYmRkNjNmYjkxNzM2
MTE4MDVlOWY1NDI4Zjk0YmExMWJiMWNlNy4uY2YzZDk4MmYyYzMxYTg1NjNiMjQ5YWE3ZTlmZmE5
YWQxZTVhNWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEyLTA0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1lZGlhU291cmNlIG1lbWJlciBvZiBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBhdWRpbyByZXNhbXBsaW5nIGNvZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggMzM3YTU0NDBlMjE3NmE5ZGU1NjJkMmI1NDc4ZDc5YzE0MDg0OThmMS4uMDI3YjQ0ZDI4YWFj
MDBjZjYyZTJmNjAzYjJiYWYxYzRlMmViYTZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NyBAQAor
MjAyMC0xMi0wNCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgYXVkaW8gY2FwdHVyZSBpcyBkb25lIGluIHdl
YiBwcm9jZXNzLiBGb3Igc3BlZWNoIHJlY29nbml0aW9uLCByZWNvZ25pemVyIGlzIGluIFVJIHBy
b2Nlc3MuIFRoZXJlZm9yZSwKKyAgICAgICAgVUkgcHJvY2VzcyBuZWVkcyB0byBhc2sgd2ViIHBy
b2Nlc3MgdG8gY2FwdHVyZSBhdWRpbyBhbmQgc2VuZCBiYWNrIGRhdGEuIFRvIGltcGxlbWVudCB0
aGlzLCB0aGlzIHBhdGNoIGFkZGVkOgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZSAob3duZWQgYnkgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6U291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4KKyAgICAgICAgLSBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlNvdXJjZTogb3duIGFuZCBtb25pdG9yIGEgbG9jYWwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZS4KKworICAgICAgICBUaGlzIHN0cnVjdHVyZSBpcyB2ZXJ5IHNpbWls
YXIgdG8gaG93IHdlIGltcGxlbWVudCBtZWRpYSBjYXB0dXJlIG9uIG1hY09TIChSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLCAKKyAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgYW5kIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpLCB3aGVyZSB3ZSBzZW5kIGRhdGEgZnJvbSBVSSBw
cm9jZXNzIHRvIHdlYiBwcm9jZXNzLgorICAgICAgICBXZSBzaG91bGQgdW5pZnkgdGhlIGFyY2hp
dGVjdHVyZSBpZiBwb3NzaWJsZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjptX3JpbmdCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFBy
b2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3Rv
cHBlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6cmVtb3ZlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNv
dXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6c2V0U3RvcmFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlRm9yU3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6OlNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZTo6flNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlNvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6OnN0b3ApOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3Vy
Y2U6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4
dGVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpz
dGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIENhbmNlbCBpbWFnZSBleHRyYWN0aW9uIHdo
ZW4gbmF2aWdhdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzAwNjk0YjRiZjVmMGY0ZjlmZWU5
NTg2ZGYyNjFiZDEwMzNlNjcxZi4uMWMwMTFjZDQ4MjI5MGJjNDI5ZjgzM2JiYmQ4ODlmZGVmZGU5
YzJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMzQyLDYgKzEzNDIsNyBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5jcHAKaW5kZXggYzkzYjZmMzhiYzYyMzhkYTFkYmE4NjhlMjllMWU1YjFlNmY2NmI2Yi4u
ZDdlY2U2NTlmMDg5MjlkZmJjNzdjMTcxMWE5NDRjN2MxMTVlNjE0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNCw5ICszNCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0
ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaykKLXsKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCitPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKK3sKICAgICBPcHRpb25hbDxDYXB0dXJlRGV2aWNl
PiBjYXB0dXJlRGV2aWNlOwogICAgIGF1dG8gZGV2aWNlcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKICAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2
aWNlcykgewpAQCAtNTEsMjYgKzUyLDE5IEBAIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKyAgICByZXR1cm4gY2FwdHVyZURldmlj
ZTsKK30KIAotICAgIGlmICghY2FwdHVyZURldmljZSkgewotICAgICAgICBhdXRvIGVycm9yID0g
U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRp
b0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OwotICAgICAg
ICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJv
cihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVS
ZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7
CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwg
eyB9LCB7IH0pOworfQogCi0gICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAg
ICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCByZXN1bHQuZXJyb3JNZXNzYWdlIH07Ci0gICAg
ICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVy
cm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElk
ZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFj
ayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2ssIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJj
ZSkKKyAgICA6IG1faW1wbChtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShz
dGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShzb3VyY2UpKSkKK3sKK30KIAotICAgIG1faW1w
bCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50
SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2Fs
bGJhY2spLCByZXN1bHQuc291cmNlKCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50
SWRlbnRpZmllcik7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGFDYWxsYmFjayk7Ci0gICAgVU5VU0VE
X1BBUkFNKHN0YXRlVXBkYXRlQ2FsbGJhY2spOwogI2VuZGlmCi19CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKaW5kZXggNzM4NmNlZWUyNzQwN2Nj
NjEwNGUyOWVkNzNkZTdkYTBhNDlmNGUwYS4uNjlmOWE4OGIyNjFlNzFmNjZlYzAwYmI5ZTcxZGEw
ZjNhYzgxOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKQEAgLTQyLDEwICs0Miwx
NiBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKIGNsYXNzIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIH5T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAgdXNpbmcgRGF0
YUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+
OwogICAgIHVzaW5nIFN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OwotICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2Fs
bGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNh
bGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZmluZENhcHR1cmVEZXZp
Y2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJik7CisjZW5kaWYKIAog
cHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCmluZGV4
IDlhOWE3ZDkyMDY5NjU1YzQ1NzE2MDdkZGExOGM0ZTZiMzMwZjcyZDUuLjYzMmE1NDAzYzA2NzQ4
NTMwYWVlZjJjNDI2NDVlZWYxYTRjNjVkODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKQEAgLTY4LDYg
KzY4LDExIEBAIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGVFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkNvCiAgICAgcmV0dXJuIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvciwgZXJyb3IgfTsKIH0KIAorU3BlZWNoUmVjb2duaXRpb25VcGRhdGUgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGUgdHlwZSwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQoreworICAgIHJldHVybiBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSB7IGNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RXJyb3IsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyB0eXBlLCBXVEZNb3ZlKGVy
cm9yTWVzc2FnZSkgfSB9OworfQorCiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMpCiB7CiAgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlIHsgY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpSZXN1bHQsIHJlc3VsdHMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXplci5jcHAKaW5kZXggNWJlYjYwNTY0N2IzMjllMjY0ZjgzYzI0OWY1
N2MyYTIwODFjMmZkNy4uNTUwMDI4YzM1NTZiM2VkZTcwY2VlM2RiYWRiZGExOTYwMTliNDdiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5jcHAKQEAgLTUwLDE5ICs1MCwyNyBAQCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnJlc2V0KCkK
IAogICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2du
aXRpb25FcnJvclR5cGU6OkFib3J0ZWQsICJBbm90aGVyIHJlcXVlc3QgaXMgc3RhcnRlZCIgfTsK
ICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVy
cm9yKCptX2NsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisKKyAgICBtX2NsaWVudElkZW50aWZp
ZXIgPSBXVEY6Om51bGxvcHQ7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnQoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQogewot
ICAgIHJlc2V0KCk7CisgICAgQVNTRVJUKCFtX3NvdXJjZSk7CiAKICAgICBtX2NsaWVudElkZW50
aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6U3RhcnQpKTsKK30KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSAg
ICBzdGFydEludGVybmFsKCk7Cit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQoreworICAgIHN0YXJ0KGlkZW50aWZpZXIpOworICAg
IHNldFNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi12b2lkIFNwZWVjaFJlY29nbml6ZXI6
OnN0YXJ0SW50ZXJuYWwoKQordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzZXRTb3VyY2UoUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogewogICAgIGF1dG8gZGF0YUNhbGxiYWNrID0g
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGNvbnN0IGF1dG8mIHRpbWUsIGNvbnN0IGF1
dG8mIGRhdGEsIGNvbnN0IGF1dG8mIGRlc2NyaXB0aW9uLCBhdXRvIHNhbXBsZUNvdW50KSB7CiAg
ICAgICAgIGlmICghd2Vha1RoaXMpCkBAIC05MCw5ICs5OCwxMSBAQCB2b2lkIFNwZWVjaFJlY29n
bml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQogICAgICAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOwog
ICAgIH07CiAKLSAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdU
Rk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjaykpOworICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1v
dmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShz
b3VyY2UpKTsKIH0KIAorI2VuZGlmCisKIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcChTaG91
bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQpCiB7CiAgICAg
aWYgKCFtX2NsaWVudElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKaW5kZXggZTZmMTNmZWU4NGE1MzNhZjBmMDRlMDc2OWMx
YWUwOTViZTViZmYzZi4uNWEzZmIxYjVhMDNjN2IzOTNmZGNiYjQ1MDM0NTU3N2IzMzgyMTMzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIu
aApAQCAtMzksMTcgKzM5LDI0IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNp
dCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgflNwZWVjaFJlY29nbml6ZXIoKSA9IGRlZmF1bHQ7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlc2V0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKICAgICBlbnVtIGNsYXNzIFNob3VsZEdl
bmVyYXRlRmluYWxSZXN1bHQgeyBObywgWWVzIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
dG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0
OjpZZXMpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyNlbmRpZgorCiAgICAgT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KIAogcHJpdmF0ZToK
LSAgICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9pZCBzdGFydEludGVybmFsKCk7CiAgICAgdm9pZCBz
dG9wSW50ZXJuYWwoKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBzZXRT
b3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworI2VuZGlmCisKICAgICBPcHRpb25h
bDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElk
ZW50aWZpZXI7CiAgICAgRGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggOTg3ZGUxNDZlNzQwMmYxODEzYjY2Y2IxODI5YWQwMGQ3NjcyOTUyYi4uZTI4Nzk3ZWUy
MmMwOTYxZjI5ZjhiY2ZkNjZjM2E2OWFjMjAxMDRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2NDEsMTMgKzIzNjQxLDYg
QEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0J
CTkzRjZCODBFMjU2NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdy
b3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkpOwotCQkJcGF0aCA9IGNvY29hOwotCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJOTQ2RDM3MjcxRDZDQjIyNTAwNzcwODRGIC8qIHBh
cnNlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNTY3
OCw3ICsyNTY3MSw2IEBACiAJCUFBMkE1QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTkzRjZCODBFMjU2
NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUg
LyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVE
NTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVB
QjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKaW5kZXggN2FmNjE1YjE1N2FiZTM3NjMyMzA3MWQxNzIwNzQ1ZGQ2ZTExNmY2
Ny4uMTI5N2RkZDJmZjdhYmE1ODI3ZWNiMGI1YjIyNThmMjA2NzBkZWJiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlz
dHMudHh0CkBAIC0xMDMsNiArMTAzLDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1Jlc291cmNlQ2FjaGUiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TcGVl
Y2giCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TdG9yYWdlIgogICAgICIke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydCIKQEAgLTE4Nyw2ICsxODgsNyBAQCBzZXQoV2ViS2l0X01FU1NB
R0VTX0lOX0ZJTEVTCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIK
IAogICAgIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5CisgICAgVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKICAgICBVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZQog
ICAgIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkKQEAgLTI1OCw2ICsyNjAsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcgogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm94eQogCisgICAgV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcgorCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbgogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
aW5kZXggMjY3Y2RkMjk0M2UxNDZmMDVjYzhlN2MzMTAyMjM5ZGJmNmJlM2I1Ny4uNGM2M2MyODcz
MDU5NmUzZjBkZjJkNzFkOWM3ZmViMGIyZDZhMTJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTA4LDYgKzEwOCw3IEBAICQoUFJPSkVD
VF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJQcm94CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdl
cy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLm1l
c3NhZ2VzLmluCkBAIC0xNjUsNiArMTY2LDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA2
MGQ0NDMwMjZmMzZkNDkzYWNiNjI3OWQ4ZjdhMGMzMWVhMmI0NjI5Li45MThiMDJhODExOTYwYjky
ZWU1NzE4MmVmMzM4NTAyMzQxY2MxOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTI3Miw2ICsyNzIsMTIgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJv
bGxlck1lc3NhZ2UKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
ZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggMzU4Zjc0YmJkMzI1MTY0ZDI5NTc2MjAxMjdlNGE2MDJkOTJkN2E1Ni4u
M2Y5NTZlNjQ2MTA5YjhmN2ZiNzg5MTkzYjc3MWM4NWVjOWE5MGE4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtNjksNiArNjksNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvT3JpZ2luRGF0YSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdp
bnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKKwkkKFdlYktp
dDIpL1dlYlByb2Nlc3MvU3BlZWNoIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFn
ZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50IFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24gXApAQCAtMTY3LDYgKzE2OCw3IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbCBcCiAJVUlQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5IFwKIAlVSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSBcCisJVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgXAogCVVJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlciBcCiAJV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlciBcCiAJV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24g
XApAQCAtMjAxLDYgKzIwMyw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCiAJV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXAorCVdlYlByb2Nlc3Mv
U3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgXAogCVdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBcCiAJV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CmluZGV4IGNiNzhiYjIyYjY3MzI3NDQ1MWNhM2NjZGM1NmE1ZWZlZjY3
NzU5ODAuLjE1Yzk1Nzg5NGI3MGE0ZGM3NGZiOGI5YWM4YWRiZTFhN2UzY2IwMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dApAQCAtMjkxLDYgKzI5MSw4IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAog
VUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuY3BwCiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCitVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKIFVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQ
YWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCkBAIC02
MzcsNiArNjM5LDggQEAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3Nl
ckZ1bmNzLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZVBsdWdpbi5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW5TdHJlYW0uY3BwIEBuby11bmlmeQogCitXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3Jp
Z2luVGFibGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYWU5OTYwNWQ3NzY4OTNhOWZiZTc3OGIzOGMyYzVkZTdmMDQ2YjZkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZS5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2Fw
dHVyZURldmljZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXI6OmdlbmVyYXRlKCksIG1hbmFnZXIsIGNhcHR1cmVEZXZpY2UpKTsKK30KKworU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2Fw
dHVyZURldmljZSkKKyAgICA6IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2Uu
bGFiZWwoKSB9LCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0pCisgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0ciht
YW5hZ2VyKSkKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5p
cXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
bnVsbHB0cikpKQorI2VuZGlmCit7CisgICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNh
cHR1cmVEZXZpY2UpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQorewor
ICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlz
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9t
YW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpTdGFydCB7IG1faWRlbnRpZmllciB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKK3sK
KyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0b3AgeyBtX2lkZW50
aWZpZXIgfSk7Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVt
b3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgbV9kZXNj
cmlwdGlvbiA9IGRlc2NyaXB0aW9uOworCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5
OworICAgIGlmICghaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1lbW9yeSA9IFNoYXJlZE1l
bW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Cisg
ICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IGZvciByZW1v
dGUgc291cmNlIik7CisgICAgfQorCisgICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOworICAgIGlm
ICghbWVtb3J5KSB7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOworICAgICAg
ICBzdG9yYWdlLnNldFJlYWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZS5zZXRTdG9yYWdl
KG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcmFnZS5zZXRTdG9y
YWdlKG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBzdG9yYWdlLnNldFJlYWRPbmx5KHRy
dWUpOworICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKKyAgICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNj
cmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWls
YWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0
YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IGlmICghbV9idWZmZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJCdWZmZXIgZm9yIHJlbW90ZSBz
b3VyY2UgaXMgbnVsbCIpOworICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMp
OworICAgIG1fcmluZ0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVu
ZEZyYW1lKTsKKyAgICBtX3JpbmdCdWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJl
ck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUo
dGltZSwgKm1fYnVmZmVyLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMp
OworICAgIFVOVVNFRF9QQVJBTShzdGFydEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZW5kRnJh
bWUpOworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKCkKK3sKKyAgICBjYXB0dXJlRmFpbGVkKCk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpy
ZW1vdGVTb3VyY2VTdG9wcGVkKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjdiYzBkMTMxZjJjZGIxNWY5MjVjZTA5MDE5NTdlZmE0ZDQ0MGNiZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENh
cHR1cmVEZXZpY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB+U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CisKKyAgICBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0
b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKwor
ICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsK
KyAgICB2b2lkIHJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0
b3BwZWQoKTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJik7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BQ
cm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmls
aXRpZXM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mm
IHNldHRpbmdzKCkgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQorCisgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9tYW5h
Z2VyOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBh
YmlsaXRpZXM7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0
dGluZ3M7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OldlYkF1ZGlvQnVmZmVyTGlzdD4gbV9idWZmZXI7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTFmM2I5OWVkZjJjYjhiODQyNjA2ODhm
NjM4MzE3MmUwMjY4ZGJkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
CkBAIC0wLDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVm
PElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1v
dmUoY29ubmVjdGlvbikpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBjYXB0dXJlRGV2aWNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlm
aWVyKCk7CisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAg
IG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgbWFrZVdlYWtQdHIoc291cmNlKSk7CisKKyNpZiBF
TkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAg
IGlmICghbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX2Nvbm5lY3Rp
b24tPmdldEF1ZGl0VG9rZW4oKSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBoYW5kbGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1p
Y3JvcGhvbmUiX3MsIGhhbmRsZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpHcmFudFNhbmRi
b3hFeHRlbnNpb25zKGhhbmRsZUZvclRDQ0QsIGhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyAgICAg
ICAgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgPSB0cnVlOworICAgIH0KKyNlbmRpZgor
CisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6QWRkU291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1v
dmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3Vy
Y2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBB
U1NFUlQobV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAgICBtX3NvdXJj
ZXMucmVtb3ZlKGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykg
JiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAobV9zb3VyY2VzLmlzRW1wdHkoKSAm
JiBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZXZva2VTYW5k
Ym94RXh0ZW5zaW9ucygpKTsKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMg
PSBmYWxzZTsKKyAgICB9CisjZW5kaWYKKworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW92ZVNvdXJjZShpZGVudGlmaWVy
KSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1l
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3Qg
ZW5kRnJhbWUpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlm
aWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwg
bnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJl
RmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAg
ICAgICAgc291cmNlLT5yZW1vdGVDYXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291cmNlU3Rv
cHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAg
ICAgIHNvdXJjZS0+cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3Nh
Z2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0
cigpOworfQorCit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIDA7Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAg
IGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+c2V0U3RvcmFnZShpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOworfQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY3MGNhZDIwNTIwZGNjZWExYzJiZmEwNmVjYTUxMWY0ZDhkMzkyYmIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRl
ICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworCisjaWYgUExBVEZPUk0o
Q09DT0EpCitjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2Vp
dmVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIHZvaWQgYWRkU291cmNl
KFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYsIGNvbnN0IFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworcHJpdmF0ZToKKyAgICAvLyBNZXNz
YWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgor
ICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAg
dm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0
U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgU2hh
cmVkTWVtb3J5OjpJUENIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKworICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5k
ZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0
IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3Qg
ZmluYWw7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgSGFz
aE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2Vha1B0cjxTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+PiBtX3NvdXJjZXM7CisgICAg
Ym9vbCBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyB7IGZhbHNlIH07Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MDcxMDM5OGJjN2MyYzQ3MDQ0YjAzZTY1ZDBhY2M4NTgwYTFlZmVhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM1IEBACisjIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBSZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgTWVkaWFU
aW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1
aW50NjRfdCBlbmRGcmFtZSkKKyAgICBSZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgUmVtb3RlU291cmNlU3Rv
cHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hh
bmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVz
Y3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorI2VuZGlmCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
Y3BwCmluZGV4IDlmNjAwZDNmNWNkYzZjMzJjNTQ4YTBhMDlhYjAyYmMxNDUzNDUyNDQuLjIzMjg0
ZmJmZDZiNDg1NjhlOGY4NjFjZjRmZjMyYzAyOWM2OWQzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTM2LDEyICsz
NiwyMiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CitTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50
aWZpZXIgaWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciYmIHBl
cm1pc3Npb25DaGVja2VyLCBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJiBmdW5j
dGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICwgbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX3Blcm1pc3Npb25DaGVja2VyKFdURk1vdmUo
cGVybWlzc2lvbkNoZWNrZXIpKQorICAgICwgbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVu
Y3Rpb24oV1RGTW92ZShmdW5jdGlvbikpCit7Cit9CisjZWxzZQogU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXImJiBwZXJtaXNzaW9uQ2hlY2tlcikKICAg
ICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICwgbV9pZGVudGlmaWVy
KGlkZW50aWZpZXIpCiAgICAgLCBtX3Blcm1pc3Npb25DaGVja2VyKFdURk1vdmUocGVybWlzc2lv
bkNoZWNrZXIpKQogewogfQorI2VuZGlmCiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllciwgU3RyaW5nJiYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29s
IGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMsIFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYmIG9yaWdpbikKIHsKQEAgLTkyLDYgKzEwMiwxOSBAQCB2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbgogICAgICAgICAgICAgc2VuZFVwZGF0ZSh1cGRhdGUpOwogICAgICAgICB9KTsKICAg
ICB9CisgICAgCisgICAgbV9yZWNvZ25pemVyLT5yZXNldCgpOworCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBtX3JlYWx0aW1lTWVkaWFTb3VyY2VD
cmVhdGVGdW5jdGlvbigpOworICAgIGlmICghc291cmNlT3JFcnJvcikgeworICAgICAgICBtX3Jl
cXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKyAgICAgICAgc2VuZFVwZGF0ZShXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdl
IH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNs
aWVudElkZW50aWZpZXIsIHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOworICAgIHJldHVybjsKKyNl
bmRpZgogCiAgICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCmlu
ZGV4IGE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcuLmVkNjcyNjRhYTEz
MWUxZTE0MjFlYWE0MTRkNDE3MTNjNjk1ZDgzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtMzYsNiArMzYsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTsKK3N0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9
CiAKQEAgLTUwLDcgKzUxLDEyIEBAIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNo
ZWNrZXIgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yCiBjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1l
c3NhZ2VTZW5kZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0
ZUZ1bmN0aW9uID0gRnVuY3Rpb248V2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoKT47Cisg
ICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25D
aGVja2VyJiYsIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmKTsKKyNlbHNlCiAg
ICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25D
aGVja2VyJiYpOworI2VuZGlmCiAKICAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29u
dGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mJik7CiAgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwpAQCAtNzUsNiArODEsMTAgQEAg
cHJpdmF0ZToKICAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q+PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkNoZWNrZXIgbV9wZXJtaXNzaW9uQ2hlY2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOworCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
ZTdkOWNkZmU1NTM1YzI3YzQ1MDRmMDEwYTZlZGY4ZTRjNWUzY2E2YS4uMTYxOWQyMjQ0YTBjNjRh
ZjUyZDFhOGVlMDczYzIxZTNlNTMwYTRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zOCw2ICszOCw5IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJv
Y2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgogI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgpAQCAt
MTcwMCwxMCArMTcwMywyNyBAQCBQQUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Np
b25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCk7
CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitXZWJDb3JlOjpDYXB0dXJlU291cmNl
T3JFcnJvciBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JTcGVl
Y2hSZWNvZ25pdGlvbigpCit7CisgICAgYXV0byBjYXB0dXJlRGV2aWNlID0gU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmljZSgpOworICAgIGlmICghY2FwdHVy
ZURldmljZSkKKyAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIk5vIGRldmlj
ZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH07CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7IFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisjZWxz
ZQorICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0
aW1lTWVkaWFTb3VyY2UoKmNhcHR1cmVEZXZpY2UpOworI2VuZGlmCit9CisKKyNlbmRpZgorCiB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzcGVl
Y2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlk
ZW50aWZpZXIsIG51bGxwdHIpOwotICAgIEFTU0VSVChzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5p
c05ld0VudHJ5KTsKKyAgICBBU1NFUlQoIW1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuY29u
dGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0g
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cikuaXRl
cmF0b3ItPnZhbHVlOwogICAgIFdlYlBhZ2VQcm94eSogdGFyZ2V0UGFnZSA9IG51bGxwdHI7CiAg
ICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMoKSkgewogICAgICAgICBpZiAocGFnZSAmJiBwYWdl
LT53ZWJQYWdlSUQoKSA9PSBpZGVudGlmaWVyKSB7CkBAIC0xNzE1LDE1ICsxNzM1LDI3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAgICAgICByZXR1
cm47CiAKLSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBtYWtl
VW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBp
ZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3Jp
Z2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIHNwZWVjaFJlY29n
bml0aW9uU2VydmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJl
ZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFy
Z2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Ci0gICAgfSk7Ci0gICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlKTsKKyAgICB9CisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICAsIFt0aGlzLCB3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2Up
XSgpIHsKKyAgICAgICAgaWYgKCF3ZWFrUGFnZSkKKyAgICAgICAgICAgIHJldHVybiBDYXB0dXJl
U291cmNlT3JFcnJvciB7ICJQYWdlIGlzIGludmFsaWQiIH07CisgICAgICAgIAorICAgICAgICBp
ZiAod2Vha1BhZ2UtPnByZWZlcmVuY2VzKCkuY2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxl
ZCgpKQorICAgICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIk5vdCBpbXBs
bWVudGVkIGZvciBHUFUgcHJvY2VzcyIgfTsKKworICAgICAgICByZXR1cm4gY3JlYXRlUmVhbHRp
bWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlY29nbml0aW9uKCk7CisgICAgfQorI2VuZGlmCisgICAg
KTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlv
blNlcnZlcik7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
CkBAIC0xNzMzLDYgKzE3NjUsMjAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW4KICAgICBtX3Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXImIFdlYlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9z
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVu
aXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiht
YWtlUmVmKCpjb25uZWN0aW9uKCkpKTsKKyAgICAgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIpOworICAgIH0KKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lm
IFBMQVRGT1JNKFdBVENIT1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91
bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCmluZGV4IGMxMGIzOTQ4ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5
NzMzZGEuLmNjMzE5Y2I1MDkzYWVhNmM5MGI3ZWNmMjcxZDVlMzM4Yjc3ZTNiMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBA
IHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2Vz
U3RvcmU7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsK
KyNlbmRpZgorCiBlbnVtIEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlw
ZWRlZiBSZWZDb3VudGVyPEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91
bmRXZWJQcm9jZXNzQ291bnRlcjsKIHR5cGVkZWYgRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVy
OjpUb2tlbiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuOwpAQCAtNTA1LDYgKzUwOSwxMCBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGVzdHJveVNwZWVjaFJlY29n
bml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVSZWFsdGltZU1lZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKTsKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIAog
ICAgIHZvaWQgc3lzdGVtQmVlcCgpOwogICAgIApAQCAtNjQzLDYgKzY1MSw5IEBAIHByaXZhdGU6
CiAKICAgICB1c2luZyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCA9IEhhc2hNYXA8U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI+PjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCBtX3NwZWVjaFJl
Y29nbml0aW9uU2VydmVyTWFwOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1
bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI+IG1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsK
KyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NGQ3OTdmZmI2OWQwNjY3MjYz
ZDA0ZjQzMDlkZWExOWZjYmJhMDMyLi5iNTllOTI4NTg0YmJkZWFjNDdhNDFjNDBkZjkzZGNjMzNm
NjE5ZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE0MzUsNiArMTQzNSwxMSBAQAogCQk5M0E4OEIzMzFCQzZFOUNEMDBBQkE1QzIg
LyogV2ViSGl0VGVzdFJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQTg4QjMxMUJDNkU5QzAwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVz
dWx0RGF0YS5oICovOyB9OwogCQk5M0E4OEIzQjFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVz
dFJlc3VsdEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0E4OEIzQTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVy
bmFsLmggKi87IH07CiAJCTkzQTg4QjQ2MUJDODgyOTMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVz
dWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4
OEI0MzFCQzg4MjhDMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5oICovOyB9OworCQk5M0FC
OUI0QzI1NzU2M0YzMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjQ1MjU3NDky
OEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmggKi87IH07CisJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJOTNBQjlC
NTUyNTc1QTI3NjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OworCQk5M0FCOUI1NjI1NzVBMjhCMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI1MTI1NzU4OTExMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTkzQjI2MTREMjI3RDE0OUUwMEI5N0E3NiAvKiBT
dG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNCMjYxNDkyMjdEMTQ3MjAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggKi87IH07
CiAJCTkzQjI2MTRFMjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdE
MTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRG
MjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEw
MEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKQEAgLTQ2MDUs
NiArNDYxMCwyMCBAQAogCQk5M0E4OEIzQTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJl
c3VsdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0hpdFRl
c3RSZXN1bHRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0
MjFCQzg4MjhDMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODhCNDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RS
ZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSGl0VGVzdFJlc3Vs
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MjI1NzQ5MjhDMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MzI1
NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQUI5QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0NTI1NzQ5
MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzQUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ5
MjU3NEM2MUUwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEIyNTc0QzYxRjAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5
QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MDI1
NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MjI1NzU4OTEy
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNS
ZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUzMjU3NTg5MTIw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
QjI2MTQ1MjI3RDE0NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0IyNjE0NzIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFj
a2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsU3RvcmFn
ZURhdGFiYXNlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTk5
LDYgKzkwMTgsMTYgQEAKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OworCQk5M0FCOUI0ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0FCOUI0QjI1NzRDNjFGMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAg
Ki8sCisJCQkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0OTI1NzRDNjFFMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gU3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIAkJOTNCMjYxNDMyMjdEMTQzMTAwQjk3QTc2IC8qIFdlYlN0b3JhZ2UgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTIwMyw2ICs5MjMy
LDcgQEAKIAkJCQk1MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkz
MTA5OTk3NDE0NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCiAJCQkJ
MUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCisJCQkJOTNBQjlCNDgyNTc0
QzVDRTAwOThCMTBFIC8qIFNwZWVjaCAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUg
LyogU3RvcmFnZSAqLywKIAkJCQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRl
bnQgKi8sCiAJCQkJNTc2MDgyOEEyMDI5ODRDOTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0aW9u
ICovLApAQCAtOTQxNiw2ICs5NDQ2LDExIEBACiAJCQkJOTNENkI3QjAyNTUyNjhBMTAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwICovLAogCQkJCTkzRDZC
N0IyMjU1MjY4QTIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2Vy
LmggKi8sCiAJCQkJOTNENkI3QUYyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvblJlcXVlc3QuaCAqLywKKwkJCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5
M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmggKi8sCisJCQkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJ
CTkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4gKi8sCiAJCQkJOTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyLmNwcCAqLywKIAkJCQk5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCAqLywKIAkJCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0xMDU3Miw2ICsx
MDYwNywxMiBAQAogCQkJCTFERDJBNjcyMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxREQyQTY3MzI1NjIzMjRG
MDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8sCiAJCQkJ
MUREMkE2NzEyNTYyMzI0RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNz
YWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCisJCQkJOTNBQjlCNTQyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzQUI5QjUwMjU3NTg5
MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAorCQkJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJ
CQk5M0FCOUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTkzRDZCNzgx
MjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJOTNENkI3ODAyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyTWVzc2FnZXMuaCAqLywKIAkJCQk5M0Q2Qjc3RjI1NENDQUJCMDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTExNjQxLDYg
KzExNjgyLDkgQEAKIAkJCQk1N0ZEMzE4NTIyQjM1MTY5MDA4RDBFOEIgLyogU09BdXRob3JpemF0
aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3QjUyNTUyNjhENzAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRDZCN0I0MjU1MjY4RDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0QzI1NzU2M0YzMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEQy
NTc1NjdEQzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3
ODQyNTRDQ0QwRTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzQxMyw2
ICsxMzQ1Nyw4IEBACiAJCQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElu
cHV0RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1
QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxREQyQTY3NDI1NjIzMkExMDBGRjdCNkYgLyogU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5
M0FCOUI1NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FC
OUI1NjI1NzVBMjhCMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
M0Q2Qjc4MjI1NENDQ0Y0MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4
IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzNjhFRURFMjMwM0E5MDIwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyNmQ1MWQxNTk2NmM1Zjk3
M2I1NWEwM2RhM2FiYjVhNjYxODAzMGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuY3BwCkBAIC0wLDAgKzEsMjU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1l
ZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNs
dWRlIDxXZWJDb3JlL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtQXVkaW9EYXRhLmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2UKKyAgICA6IHByaXZhdGUgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgcHVi
bGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyNlbmRpZgoreworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3Vy
Y2UsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKKyAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisg
ICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMp
KSkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsK
KyAgICAgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0K
KworICAgIH5Tb3VyY2UoKQorICAgIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgc3Rv
cmFnZSgpLmludmFsaWRhdGUoKTsKKyNlbmRpZgorICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlQXVk
aW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZl
cigqdGhpcyk7CisgICAgfQorCisgICAgdm9pZCBzdGFydCgpCisgICAgeworICAgICAgICBtX3Nv
dXJjZS0+c3RhcnQoKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3AoKQorICAgIHsKKyAgICAgICAg
bV9zb3VyY2UtPnN0b3AoKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpCisgICAgeworICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgp
KTsKKyAgICB9CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBm
aW5hbAorICAgIHsKKyAgICAgICAgaWYgKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKSB7Cisg
ICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQobV9p
ZGVudGlmaWVyKSwgMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVTb3VyY2VTdG9wcGVkKG1faWRlbnRpZmllciks
IDApOworICAgIH0KKworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlh
VGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykg
ZmluYWwKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChtX2Rlc2NyaXB0
aW9uICE9IGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxh
dGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0
cmVhbUJhc2ljVHlwZSk7CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0PGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVz
Y3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisKKyAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMg
PSBtX2Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAgICBtX3JpbmdCdWZm
ZXIuYWxsb2NhdGUobV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9m
RnJhbWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxp
c3Q+KGF1ZGlvRGF0YSkpOworICAgICAgICBtX3JpbmdCdWZmZXIuc3RvcmUoZG93bmNhc3Q8V2Vi
QXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUu
dGltZVZhbHVlKCkpOworICAgICAgICB1aW50NjRfdCBzdGFydEZyYW1lOworICAgICAgICB1aW50
NjRfdCBlbmRGcmFtZTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLmdldEN1cnJlbnRGcmFtZUJvdW5k
cyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
UmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKG1faWRlbnRpZmllciwgdGltZSwgbnVtYmVyT2ZG
cmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKSwgMCk7CisjZWxzZQorICAgICAgICBVTlVTRURf
UEFSQU0odGltZSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShhdWRpb0RhdGEpOworICAgICAgICBV
TlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOworICAgICAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZG
cmFtZXMpOworI2VuZGlmCisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyAgICB2b2lk
IHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwKKyAgICB7CisgICAg
ICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKHN0b3JhZ2UpCisg
ICAgICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRPbmx5KTsKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpCisgICAg
ICAgIHVpbnQ2NF90IGRhdGFTaXplID0gaGFuZGxlLnNpemUoKTsKKyNlbHNlCisgICAgICAgIHVp
bnQ2NF90IGRhdGFTaXplID0gMDsKKyNlbmRpZgorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlNldFN0b3JhZ2UobV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdU
Rk1vdmUoaGFuZGxlKSwgIGRhdGFTaXplIH0sIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFt
ZXMpLCAwKTsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQo
KSBmaW5hbAorICAgIHsKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICAgICAgYXV0byBidWZm
ZXJTaXplID0gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTA7
CisgICAgICAgIGlmIChBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5wcmVmZXJyZWRCdWZm
ZXJTaXplKCkgPiBidWZmZXJTaXplKQorICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRT
ZXNzaW9uKCkuc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpQbGF5
QW5kUmVjb3JkLCBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOworI2VuZGlmCisgICAgfQor
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CisgICAgdWludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CisgICAg
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworI2VuZGlmCit9Owor
CitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorewor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
KnRoaXMpOworfQorCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRl
bnNpb25zKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JUQ0NELCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkKK3sK
KyAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
KFdURk1vdmUoc2FuZGJveEhhbmRsZUZvclRDQ0QpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVu
c2lvbkZvclRDQ0QpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94
IGV4dGVuc2lvbiBmb3IgdGNjZCIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uRm9yVENDRC0+Y29uc3VtZSgpOworCisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9w
aG9uZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JN
aWNyb3Bob25lKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKQor
ICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9y
IG1pY3JvcGhvbmUiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1p
Y3JvcGhvbmUtPmNvbnN1bWUoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCit7CisgICAgaWYg
KG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9u
Rm9yVENDRC0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBu
dWxscHRyOworICAgIH0KKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25l
KSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPnJldm9rZSgpOwor
ICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gbnVsbHB0cjsKKyAgICB9
Cit9CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OmFkZFNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCit7CisgICAgYXV0byByZXN1bHQgPSBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
ZGV2aWNlKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0
byBjcmVhdGUgcmVhbHRpbWUgc291cmNlIik7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1
cmVGYWlsZWQoaWRlbnRpZmllciksIDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
QVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5h
ZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxTb3VyY2U+KGlkZW50aWZpZXIsIHJlc3VsdC5zb3Vy
Y2UoKSwgbWFrZVJlZigqbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSkpKTsKK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NvdXJj
ZXMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVu
dGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3AoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJj
ZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0b3AoKTsKK30KKworSVBDOjpD
b25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpt
ZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlv
bi5wdHIoKTsKK30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJl
dHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzMTUwZjFiYmJiMzA5OWQyZWNiN2JiZmU3NmJiMDYzMmY4Y2NlYjQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIH5TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisKK3ByaXZhdGU6CisgICAgLy8gTWVzc2Fn
ZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAgICB2b2lk
IGFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVO
U0lPTlMpCisgICAgdm9pZCBncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYmLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9pZCByZXZva2VT
YW5kYm94RXh0ZW5zaW9ucygpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIG92ZXJyaWRlOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAgIElQQzo6
Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1
aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOworCisgICAg
UmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworCisgICAgY2xhc3MgU291cmNlOwor
ICAgIGZyaWVuZCBjbGFzcyBTb3VyY2U7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNvdXJjZT4+IG1fc291cmNlczsK
KworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgUmVmUHRyPFNhbmRib3hFeHRl
bnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Q7CisgICAgUmVmUHRyPFNhbmRib3hFeHRl
bnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmU7CisjZW5kaWYKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMTI1N2EyODI1OWFmNWM3ZDQ4YWY3MGQ0YjhmZGI3MWQxMDQxOWRmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzggQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEFkZFNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
IGRldmljZSkKKyAgICBSZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBTdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICBTdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhU
RU5TSU9OUykKKyAgICBHcmFudFNhbmRib3hFeHRlbnNpb25zKFdlYktpdDo6U2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVGb3JUQ0NELCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yTWljcm9waG9uZSkK
KyAgICBSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCisjZW5kaWYKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCmluZGV4IDNmMzUz
MTk0YTMyYzNlNjc5YmNhMjlmYmVhODUwMzFjOTIxZTRmYzQuLmUwZDJhNTk4NTU1Yjk4OTc4NTg1
OGFiNmM2NGE3NTRhZmRhMTEwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uY3BwCkBAIC00Niw2ICs0NiwxMCBAQCBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVlY2hSZWNvZ25p
dGlvbgogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlmaWVyKSwgMCk7
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNl
bmRpZgogfQogCiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5XZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDViMWJjNWE5ZmE3ZjNiNGQ1YWVmM2U0NDU1ZmY1YmZiMmE3MjNiYzkuLjZhYjg4ZTRi
YTc2NjUxM2UzMzEyOTIxYzhlNmI1YjZkODIzM2IzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJSZW1vdGVBdWRp
b1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJT
dG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eS5oIgpAQCAtMTk3OCw2ICsxOTc5LDE2IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6ZW5hYmxlVlA5U1dEZWNvZGVyKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIFdl
YlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI+KG1ha2VSZWYoKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpKTsKKworICAgIHJldHVy
biAqbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lP
Tl9JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZTljNDdkYjRjNDQ3
YzBmNGFiNjI3YzA5NGI1ZjY4ZGI1NjVhOWE2Yy4uN2U1YTRjYWE0YzVkMmUyMzc4ODEzZWI0ZjJm
NDIyOGJkZTRjYzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0x
NDIsNiArMTQyLDEwIEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIGNsYXNz
IExheWVySG9zdGluZ0NvbnRleHQ7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2Vu
ZGlmCisKIGNsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcwogewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMzYwLDYgKzM2NCwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRXcml0ZVRvUGFzdGVib2FyZEFzeW5jaHJvbm91c2x5KGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgorCiBwcml2
YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJvY2VzcygpOwpAQCAtNjkzLDYgKzcw
MSwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92cDlEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3ZwOVNXRGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAo=
</data>
<flag name="commit-queue"
          id="432721"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415486</attachid>
            <date>2020-12-04 22:19:22 -0800</date>
            <delta_ts>2020-12-07 11:43:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201204221921.patch</filename>
            <type>text/plain</type>
            <size>84889</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RlYmRkNjNmYjkxNzM2
MTE4MDVlOWY1NDI4Zjk0YmExMWJiMWNlNy4uY2YzZDk4MmYyYzMxYTg1NjNiMjQ5YWE3ZTlmZmE5
YWQxZTVhNWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEyLTA0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1lZGlhU291cmNlIG1lbWJlciBvZiBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBhdWRpbyByZXNhbXBsaW5nIGNvZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggMzM3YTU0NDBlMjE3NmE5ZGU1NjJkMmI1NDc4ZDc5YzE0MDg0OThmMS4uMDI3YjQ0ZDI4YWFj
MDBjZjYyZTJmNjAzYjJiYWYxYzRlMmViYTZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NyBAQAor
MjAyMC0xMi0wNCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gaU9TCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNzEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxODI0MDQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgYXVkaW8gY2FwdHVyZSBpcyBkb25lIGluIHdl
YiBwcm9jZXNzLiBGb3Igc3BlZWNoIHJlY29nbml0aW9uLCByZWNvZ25pemVyIGlzIGluIFVJIHBy
b2Nlc3MuIFRoZXJlZm9yZSwKKyAgICAgICAgVUkgcHJvY2VzcyBuZWVkcyB0byBhc2sgd2ViIHBy
b2Nlc3MgdG8gY2FwdHVyZSBhdWRpbyBhbmQgc2VuZCBiYWNrIGRhdGEuIFRvIGltcGxlbWVudCB0
aGlzLCB0aGlzIHBhdGNoIGFkZGVkOgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZSBhbmQgY29ubmVjdCB0byBhIHJlbW90ZSAKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZSAob3duZWQgYnkgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6U291cmNlKSBpbiB3ZWIgcHJvY2Vzcy4KKyAgICAgICAgLSBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6IG1hbmFnZSBhbGwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OlNvdXJjZTogb3duIGFuZCBtb25pdG9yIGEgbG9jYWwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZS4KKworICAgICAgICBUaGlzIHN0cnVjdHVyZSBpcyB2ZXJ5IHNpbWls
YXIgdG8gaG93IHdlIGltcGxlbWVudCBtZWRpYSBjYXB0dXJlIG9uIG1hY09TIChSZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLCAKKyAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgYW5kIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkpLCB3aGVyZSB3ZSBzZW5kIGRhdGEgZnJvbSBVSSBw
cm9jZXNzIHRvIHdlYiBwcm9jZXNzLgorICAgICAgICBXZSBzaG91bGQgdW5pZnkgdGhlIGFyY2hp
dGVjdHVyZSBpZiBwb3NzaWJsZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjptX3JpbmdCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFBy
b2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3Rv
cHBlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6cmVtb3ZlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNv
dXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6c2V0U3RvcmFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlRm9yU3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6OlNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZTo6flNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OlNvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6OnN0b3ApOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3Vy
Y2U6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4
dGVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpz
dGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpX
ZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIENhbmNlbCBpbWFnZSBleHRyYWN0aW9uIHdo
ZW4gbmF2aWdhdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzAwNjk0YjRiZjVmMGY0ZjlmZWU5
NTg2ZGYyNjFiZDEwMzNlNjcxZi4uMWMwMTFjZDQ4MjI5MGJjNDI5ZjgzM2JiYmQ4ODlmZGVmZGU5
YzJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMzQyLDYgKzEzNDIsNyBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5jcHAKaW5kZXggYzkzYjZmMzhiYzYyMzhkYTFkYmE4NjhlMjllMWU1YjFlNmY2NmI2Yi4u
ZDdlY2U2NTlmMDg5MjlkZmJjNzdjMTcxMWE5NDRjN2MxMTVlNjE0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNCw5ICszNCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0
ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaykKLXsKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCitPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKK3sKICAgICBPcHRpb25hbDxDYXB0dXJlRGV2aWNl
PiBjYXB0dXJlRGV2aWNlOwogICAgIGF1dG8gZGV2aWNlcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKICAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2
aWNlcykgewpAQCAtNTEsMjYgKzUyLDE5IEBAIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKyAgICByZXR1cm4gY2FwdHVyZURldmlj
ZTsKK30KIAotICAgIGlmICghY2FwdHVyZURldmljZSkgewotICAgICAgICBhdXRvIGVycm9yID0g
U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRp
b0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OwotICAgICAg
ICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJv
cihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVS
ZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7
CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlv
Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwg
eyB9LCB7IH0pOworfQogCi0gICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAg
ICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCByZXN1bHQuZXJyb3JNZXNzYWdlIH07Ci0gICAg
ICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVy
cm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElk
ZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFj
ayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2ssIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJj
ZSkKKyAgICA6IG1faW1wbChtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShz
dGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShzb3VyY2UpKSkKK3sKK30KIAotICAgIG1faW1w
bCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50
SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2Fs
bGJhY2spLCByZXN1bHQuc291cmNlKCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50
SWRlbnRpZmllcik7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGFDYWxsYmFjayk7Ci0gICAgVU5VU0VE
X1BBUkFNKHN0YXRlVXBkYXRlQ2FsbGJhY2spOwogI2VuZGlmCi19CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKaW5kZXggNzM4NmNlZWUyNzQwN2Nj
NjEwNGUyOWVkNzNkZTdkYTBhNDlmNGUwYS4uNjlmOWE4OGIyNjFlNzFmNjZlYzAwYmI5ZTcxZGEw
ZjNhYzgxOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKQEAgLTQyLDEwICs0Miwx
NiBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKIGNsYXNzIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIH5T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAgdXNpbmcgRGF0
YUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+
OwogICAgIHVzaW5nIFN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OwotICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2Fs
bGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNh
bGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZmluZENhcHR1cmVEZXZp
Y2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJik7CisjZW5kaWYKIAog
cHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMy
OWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li41NTAwMjhjMzU1NmIzZWRlNzBjZWUzZGJhZGJk
YTE5NjAxOWI0N2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmNwcApAQCAtNTAsMTkgKzUwLDI3IEBAIHZvaWQgU3BlZWNoUmVjb2du
aXplcjo6cmVzZXQoKQogCiAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBp
cyBzdGFydGVkIiB9OwogICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKKworICAgIG1f
Y2xpZW50SWRlbnRpZmllciA9IFdURjo6bnVsbG9wdDsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25p
emVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiB7Ci0gICAgcmVzZXQoKTsKKyAgICBBU1NFUlQoIW1fc291cmNlKTsKIAogICAg
IG1fY2xpZW50SWRlbnRpZmllciA9IGlkZW50aWZpZXI7CiAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNr
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCkpOworfQorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKIAotICAgIHN0YXJ0SW50ZXJuYWwoKTsKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6
c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlm
aWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgc3RhcnQoaWRl
bnRpZmllcik7CisgICAgc2V0U291cmNlKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLXZvaWQgU3Bl
ZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgpCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnNl
dFNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiB7CiAgICAgYXV0byBk
YXRhQ2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29uc3QgYXV0byYg
dGltZSwgY29uc3QgYXV0byYgZGF0YSwgY29uc3QgYXV0byYgZGVzY3JpcHRpb24sIGF1dG8gc2Ft
cGxlQ291bnQpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKQEAgLTkwLDkgKzk4LDExIEBAIHZv
aWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgpCiAgICAgICAgICAgICBtX3NvdXJj
ZSA9IG51bGxwdHI7CiAgICAgfTsKIAotICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0
YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSk7CisgICAgbV9zb3VyY2Ug
PSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRl
bnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJh
Y2spLCBXVEZNb3ZlKHNvdXJjZSkpOwogfQogCisjZW5kaWYKKwogdm9pZCBTcGVlY2hSZWNvZ25p
emVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJl
c3VsdCkKIHsKICAgICBpZiAoIW1fY2xpZW50SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAppbmRleCBlNmYxM2ZlZTg0YTUz
M2FmMGYwNGUwNzY5YzFhZTA5NWJlNWJmZjNmLi41YTNmYjFiNWEwM2M3YjM5M2ZkY2JiNDUwMzQ1
NTc3YjMzODIxMzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXplci5oCkBAIC0zOSwxNyArMzksMjQgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNoUmVjb2duaXplcigpID0gZGVmYXVsdDsKIAorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVzZXQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwogICAgIGVudW0g
Y2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7IE5vLCBZZXMgfTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9IFNob3VsZEdlbmVy
YXRlRmluYWxSZXN1bHQ6Olllcyk7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworI2VuZGlmCisKICAgICBP
cHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJy
ZW50Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsg
fQogCiBwcml2YXRlOgotICAgIHZvaWQgcmVzZXQoKTsKLSAgICB2b2lkIHN0YXJ0SW50ZXJuYWwo
KTsKICAgICB2b2lkIHN0b3BJbnRlcm5hbCgpOwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICB2b2lkIHNldFNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisjZW5kaWYK
KwogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVD
YWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlPiBtX3NvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA5ODdkZTE0NmU3NDAyZjE4MTNiNjZjYjE4MjlhZDAwZDc2NzI5
NTJiLi5lMjg3OTdlZTIyYzA5NjFmMjlmOGJjZmQ2NmMzYTY5YWMyMDEwNGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzY0
MSwxMyArMjM2NDEsNiBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKLQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovID0gewot
CQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29j
b2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1
MDA3NzA4NEYgLyogcGFyc2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTI1Njc4LDcgKzI1NjcxLDYgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1
IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZB
NDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlB
QTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAq
LywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhl
c2lzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA3YWY2MTViMTU3YWJlMzc2MzIzMDcxZDE3
MjA3NDVkZDZlMTE2ZjY3Li4xMjk3ZGRkMmZmN2FiYTU4MjdlY2IwYjViMjI1OGYyMDY3MGRlYmJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTEwMyw2ICsxMDMsNyBAQCBzZXQoV2ViS2l0X0lOQ0xV
REVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL1NwZWVjaCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2Ui
CiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IgpAQCAtMTg3LDYgKzE4OCw3IEBAIHNl
dChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1l
c3NhZ2VSZWNlaXZlcgogCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgog
ICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNp
dGVkTGlua1N0b3JlCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQpAQCAtMjU4
LDYgKzI2MCw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb3h5CiAKKyAgICBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCAyNjdjZGQyOTQzZTE0NmYwNWNjOGU3YzMxMDIyMzlkYmY2YmUz
YjU3Li40YzYzYzI4NzMwNTk2ZTNmMGRmMmQ3MWQ5YzdmZWIwYjJkNmExMmM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDgsNiArMTA4
LDcgQEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KQEAgLTE2NSw2ICsxNjYsNyBAQCAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
bWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IDYwZDQ0MzAyNmYzNmQ0OTNhY2I2Mjc5ZDhmN2EwYzMxZWEyYjQ2MjkuLjkx
OGIwMmE4MTE5NjBiOTJlZTU3MTgyZWYzMzg1MDIzNDFjYzE4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjcyLDYgKzI3MiwxMiBA
QCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25p
ZmljYXRpb25Db250cm9sbGVyTWVzc2FnZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzNThmNzRiYmQzMjUxNjRkMjk1NzYyMDEyN2U0
YTYwMmQ5MmQ3YTU2Li4zZjk1NmU2NDYxMDliOGY3ZmI3ODkxOTNiNzcxYzg1ZWM5YTkwYThkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0gXAog
ICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2Fj
aGUgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TcGVlY2ggXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9TdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQg
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0xNjcs
NiArMTY4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sIFwKIAlVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9N
ZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyIFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbiBcCkBAIC0yMDEsNiArMjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBc
CisJV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggY2I3OGJiMjJiNjczMjc0NDUxY2Ez
Y2NkYzU2YTVlZmVmNjc3NTk4MC4uMTVjOTU3ODk0YjcwYTRkYzc0ZmI4YjlhYzhhZGJlMWE3ZTNj
YjAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yOTEsNiArMjkxLDggQEAgVUlQcm9jZXNzL1Byb2Nlc3NB
c3NlcnRpb24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNw
cAorVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcAogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9j
ZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKIFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJv
bGxlci5jcHAKQEAgLTYzNyw2ICs2MzksOCBAQCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgQG5vLXVuaWZ5CiAKK1dlYlByb2Nlc3Mv
U3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisK
IFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZTk5NjA1ZDc3Njg5M2E5ZmJlNzc4YjM4YzJjNWRl
N2YwNDZiNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTM1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1
ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1JlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmlj
ZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQorICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsg
Y2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVu
dElkKCkgfSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9tYW5hZ2Vy
KG1ha2VXZWFrUHRyKG1hbmFnZXIpKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5n
QnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlPihudWxscHRyKSkpCisjZW5kaWYKK3sKKyAgICBtX21hbmFnZXItPmFkZFNv
dXJjZSgqdGhpcywgY2FwdHVyZURldmljZSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5yZW1v
dmVTb3VyY2UoKnRoaXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2Vy
KQorICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0YXJ0IHsgbV9pZGVudGlmaWVyIH0pOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1
Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+c2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
U3RvcCB7IG1faWRlbnRpZmllciB9KTsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShj
b25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykK
K3sKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisKKyAgICBSZWZQdHI8U2hhcmVk
TWVtb3J5PiBtZW1vcnk7CisgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbWVt
b3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246
OlJlYWRPbmx5KTsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHNoYXJlZCBt
ZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2UiKTsKKyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0g
c3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3Jh
Z2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9j
YXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9y
YWdlLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
dG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uu
c2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1
ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVk
aW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgaWYgKCFtX2J1ZmZlcikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZl
ciBmb3IgcmVtb3RlIHNvdXJjZSBpcyBudWxsIik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChu
dW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMo
c3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXIt
Pmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9idWZmZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShu
dW1iZXJPZkZyYW1lcyk7CisgICAgVU5VU0VEX1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNF
RF9QQVJBTShlbmRGcmFtZSk7CisjZW5kaWYKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNh
cHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJjZVN0b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42N2JjMGQxMzFmMmNkYjE1ZjkyNWNlMDkwMTk1N2Vm
YTRkNDQwY2JlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw3NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYpOworICAgIH5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsK
KworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdl
YkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
KTsKKyNlbmRpZgorCisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFU
aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0
X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworICAgIHZvaWQg
cmVtb3RlU291cmNlU3RvcHBlZCgpOworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKworICAgIC8vIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwor
ICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJl
dHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7
CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyPiBtX21hbmFnZXI7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyBtX2NhcGFiaWxpdGllczsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MgbV9zZXR0aW5nczsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6
OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2J1ZmZlcjsKKyNlbmRpZgorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWYzYjk5ZWRm
MmNiOGI4NDI2MDY4OGY2MzgzMTcyZTAyNjhkYmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0g
c291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVu
dGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cihzb3Vy
Y2UpKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCisgICAgaWYgKCFtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9yVENDRDsKKyAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnRjY2Qi
X3MsIG1fY29ubmVjdGlvbi0+Z2V0QXVkaXRUb2tlbigpLCBoYW5kbGVGb3JUQ0NEKTsKKyAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvck1pY3JvcGhvbmU7CisgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5h
cHBsZS53ZWJraXQubWljcm9waG9uZSJfcywgaGFuZGxlRm9yTWljcm9waG9uZSk7CisgICAgICAg
IHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OkdyYW50U2FuZGJveEV4dGVuc2lvbnMoaGFuZGxlRm9yVENDRCwgaGFuZGxlRm9yTWljcm9w
aG9uZSkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IHRydWU7Cisg
ICAgfQorI2VuZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpBZGRTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmlj
ZSkpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRp
ZmllcigpOworICAgIEFTU0VSVChtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpID09ICZzb3VyY2Up
OworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7CisKKyNpZiBFTkFCTEUoU0FOREJP
WF9FWFRFTlNJT05TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIGlmIChtX3NvdXJj
ZXMuaXNFbXB0eSgpICYmIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zKSB7CisgICAgICAg
IHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5k
Ym94RXh0ZW5zaW9ucyA9IGZhbHNlOworICAgIH0KKyNlbmRpZgorCisgICAgc2VuZChNZXNzYWdl
czo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3ZlU291
cmNlKGlkZW50aWZpZXIpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV1RGOjpN
ZWRpYVRpbWUmIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJj
ZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUF1ZGlvU2FtcGxlc0F2
YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OnJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlk
ZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVu
dGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5yZW1vdGVTb3VyY2VTdG9wcGVkKCk7Cit9CisKK0lQ
Qzo6Q29ubmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBt
X2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNldFN0
b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRsZSwgY29uc3QgV2ViQ29yZTo6
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVy
KSkKKyAgICAgICAgc291cmNlLT5zZXRTdG9yYWdlKGlwY0hhbmRsZS5oYW5kbGUsIGRlc2NyaXB0
aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjcwY2FkMjA1MjBkY2NlYTFjMmJmYTA2ZWNhNTExZjRkOGQz
OTJiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDgx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRl
ci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRp
YVRpbWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CisK
KyNpZiBQTEFURk9STShDT0NPQSkKK2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKKyNl
bmRpZgorfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBD
OjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAg
dm9pZCBhZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
JiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHZvaWQgcmVtb3ZlU291cmNl
KFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOworCitwcml2YXRl
OgorICAgIC8vIE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyCisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVu
ZEZyYW1lKTsKKyAgICB2b2lkIHJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgdm9pZCBzZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgor
CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKKworICAgIC8vIElQ
Qzo6TWVzc2FnZVNlbmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0
aW9uSUQoKSBjb25zdCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
LCBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1f
c291cmNlczsKKyAgICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zIHsgZmFsc2Ug
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQwNzEwMzk4YmM3YzJjNDcwNDRiMDNlNjVkMGFjYzg1ODBhMWVmZWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIFJlbW90ZUF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90
IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNhcHR1cmVGYWlsZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBS
ZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5jcHAKaW5kZXggOWY2MDBkM2Y1Y2RjNmMzMmM1NDhhMGEwOWFiMDJiYzE0
NTM0NTI0NC4uMjMyODRmYmZkNmI0ODU2OGU4Zjg2MWNmNGZmMzJjMDI5YzY5ZDMyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cApAQCAtMzYsMTIgKzM2LDIyIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKK1NwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25DaGVja2VyJiYgcGVybWlzc2lvbkNoZWNrZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVG
dW5jdGlvbiYmIGZ1bmN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlv
bikpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fcGVybWlzc2lvbkNo
ZWNrZXIoV1RGTW92ZShwZXJtaXNzaW9uQ2hlY2tlcikpCisgICAgLCBtX3JlYWx0aW1lTWVkaWFT
b3VyY2VDcmVhdGVGdW5jdGlvbihXVEZNb3ZlKGZ1bmN0aW9uKSkKK3sKK30KKyNlbHNlCiBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIg
aWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciYmIHBlcm1pc3Np
b25DaGVja2VyKQogICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fcGVybWlzc2lvbkNoZWNrZXIoV1RG
TW92ZShwZXJtaXNzaW9uQ2hlY2tlcikpCiB7CiB9CisjZW5kaWYKIAogdm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBib29sIGNv
bnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcywg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luKQogewpAQCAtOTIsNiArMTAyLDE5IEBAIHZv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uCiAgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CiAg
ICAgICAgIH0pOwogICAgIH0KKyAgICAKKyAgICBtX3JlY29nbml6ZXItPnJlc2V0KCk7CisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8gc291cmNlT3JFcnJvciA9IG1fcmVhbHRp
bWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKCk7CisgICAgaWYgKCFzb3VyY2VPckVycm9yKSB7
CisgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworICAgICAgICBz
ZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihj
bGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgc291cmNlT3JFcnJv
ci5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fcmVjb2du
aXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllciwgc291cmNlT3JFcnJvci5zb3VyY2UoKSk7Cisg
ICAgcmV0dXJuOworI2VuZGlmCiAKICAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50
aWZpZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmgKaW5kZXggYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZk
Ny4uZWQ2NzI2NGFhMTMxZTFlMTQyMWVhYTQxNGQ0MTcxM2M2OTVkODMyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0zNiw2
ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGVudW0gY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOworc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOwogc3RydWN0IENs
aWVudE9yaWdpbjsKIH0KIApAQCAtNTAsNyArNTEsMTIgQEAgdXNpbmcgU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uQ2hlY2tlciA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3IKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PFNwZWVjaFJlY29nbml0aW9uU2VydmVyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBw
cml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB1c2luZyBSZWFsdGltZU1l
ZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gPSBGdW5jdGlvbjxXZWJDb3JlOjpDYXB0dXJlU291cmNl
T3JFcnJvcigpPjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0
aW9uPiYmLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbkNoZWNrZXImJiwgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9u
JiYpOworI2Vsc2UKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0
aW9uPiYmLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbkNoZWNrZXImJik7CisjZW5kaWYKIAogICAgIHZvaWQgc3RhcnQoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3RyaW5nJiYg
bGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhB
bHRlcm5hdGl2ZXMsIFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmKTsKICAgICB2b2lkIHN0b3AoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CkBAIC03
NSw2ICs4MSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlv
biBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcAppbmRleCBlN2Q5Y2RmZTU1MzVjMjdjNDUwNGYwMTBhNmVkZjhlNGM1ZTNjYTZhLi4x
NjE5ZDIyNDRhMGM2NGFmNTJkMWE4ZWUwNzNjMjFlM2U1MzBhNGUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM4LDYgKzM4LDkgQEAKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVBy
b3h5LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tl
clN0YXRlLmgiCkBAIC0xNzAwLDEwICsxNzAzLDI3IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlByb2Nl
c3NQcm94eTo6c2Vzc2lvbklEKCkgY29uc3QKICAgICByZXR1cm4gbV93ZWJzaXRlRGF0YVN0b3Jl
LT5zZXNzaW9uSUQoKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK1dlYkNvcmU6
OkNhcHR1cmVTb3VyY2VPckVycm9yIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRp
YVNvdXJjZUZvclNwZWVjaFJlY29nbml0aW9uKCkKK3sKKyAgICBhdXRvIGNhcHR1cmVEZXZpY2Ug
PSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCk7Cisg
ICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgeyAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZW5zdXJlU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpLCAqY2FwdHVyZURl
dmljZSkgfTsKKyNlbHNlCisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURldmljZSk7CisjZW5kaWYKK30K
KworI2VuZGlmCisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsK
LSAgICBhdXRvIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNl
cnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29n
bml0aW9uU2VydmVyLmlzTmV3RW50cnkpOworICAgIEFTU0VSVCghbV9zcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1hcC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byYgc3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChpZGVudGlmaWVy
LCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdl
ID0gbnVsbHB0cjsKICAgICBmb3IgKGF1dG8qIHBhZ2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlm
IChwYWdlICYmIHBhZ2UtPndlYlBhZ2VJRCgpID09IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsMTUg
KzE3MzUsMjcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnQKICAgICBpZiAoIXRhcmdldFBhZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9y
LT52YWx1ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNv
bm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBh
Z2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7Cisg
ICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9u
U2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBt
YWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhh
bmRsZXIpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdlKSB7CiAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVu
eSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICB3ZWFrUGFnZS0+
cmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKLSAgICB9KTsKLSAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZp
ZXIsICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUpOworICAgIH0KKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICwgW3RoaXMsIHdlYWtQYWdlID0gbWFrZVdlYWtQ
dHIodGFyZ2V0UGFnZSldKCkgeworICAgICAgICBpZiAoIXdlYWtQYWdlKQorICAgICAgICAgICAg
cmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlBhZ2UgaXMgaW52YWxpZCIgfTsKKyAgICAg
ICAgCisgICAgICAgIGlmICh3ZWFrUGFnZS0+cHJlZmVyZW5jZXMoKS5jYXB0dXJlQXVkaW9JbkdQ
VVByb2Nlc3NFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgeyAiTm90IGltcGxtZW50ZWQgZm9yIEdQVSBwcm9jZXNzIiB9OworCisgICAgICAgIHJldHVy
biBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKTsKKyAgICB9
CisjZW5kaWYKKyAgICApOworICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNw
ZWVjaFJlY29nbml0aW9uU2VydmVyKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ry
b3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKQEAgLTE3MzMsNiArMTc2NSwyMCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVy
SWRlbgogICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAucmVtb3ZlKGlkZW50aWZpZXIp
OwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzc1Byb3h5OjplbnN1cmVTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBp
ZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcikg
eworICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSkpOworICAgICAgICBhZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKm1fc3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik7CisgICAgfQorCisgICAgcmV0dXJuICpt
X3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisK
KyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6
OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVsbHNjcmVlbklucHV0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzEwYjM5NDhkNzc2NzYzNzE0ZDE2
NDc5YjU5MzYyODJhNjk3MzNkYS4uY2MzMTljYjUwOTNhZWE2YzkwYjdlY2YyNzFkNWUzMzhiNzdl
M2IwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEw
Myw2ICsxMDMsMTAgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZTsKIHN0cnVjdCBXZWJzaXRlRGF0YTsKIAorI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGVudW0gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVy
VHlwZSB7IH07CiB0eXBlZGVmIFJlZkNvdW50ZXI8Rm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVy
VHlwZT4gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOwogdHlwZWRlZiBGb3JlZ3JvdW5kV2Vi
UHJvY2Vzc0NvdW50ZXI6OlRva2VuIEZvcmVncm91bmRXZWJQcm9jZXNzVG9rZW47CkBAIC01MDUs
NiArNTA5LDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZVNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllcik7CiAgICAgdm9pZCBkZXN0
cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlm
aWVyKTsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JTcGVlY2hSZWNvZ25pdGlvbigp
OworICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
IGVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIo
KTsKKyNlbmRpZgogCiAgICAgdm9pZCBzeXN0ZW1CZWVwKCk7CiAgICAgCkBAIC02NDMsNiArNjUx
LDkgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0g
SGFzaE1hcDxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
TWFwIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc0ZDc5
N2ZmYjY5ZDA2NjcyNjNkMDRmNDMwOWRlYTE5ZmNiYmEwMzIuLmI1OWU5Mjg1ODRiYmRlYWM0N2E0
MWM0MGRmOTNkY2MzM2Y2MTlkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQzNSw2ICsxNDM1LDExIEBACiAJCTkzQTg4QjMzMUJD
NkU5Q0QwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8q
IFdlYkhpdFRlc3RSZXN1bHREYXRhLmggKi87IH07CiAJCTkzQTg4QjNCMUJDNzEwRDkwMEFCQTVD
MiAvKiBfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRU
ZXN0UmVzdWx0SW50ZXJuYWwuaCAqLzsgfTsKIAkJOTNBODhCNDYxQkM4ODI5MzAwQUJBNUMyIC8q
IEFQSUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0Lmgg
Ki87IH07CisJCTkzQUI5QjRDMjU3NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0RDI1NzU2
N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDIyNTc0OTI4QzAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICov
OyB9OworCQk5M0FCOUI1NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CisJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjUx
MjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNCMjYxNEQyMjdEMTQ5
RTAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1h
bmFnZXIuaCAqLzsgfTsKIAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFn
ZURhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0IyNjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsg
fTsKIAkJOTNCMjYxNEYyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNC
MjYxNDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICov
OyB9OwpAQCAtNDYwNSw2ICs0NjEwLDIwIEBACiAJCTkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAv
KiBfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQTg4QjQyMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIg
LyogQVBJSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
UElIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQy
MjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQUI5QjQzMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBQjlCNDkyNTc0QzYxRTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QjI1NzRD
NjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTEy
NTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
QjlCNTMyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTQyNTc1ODkxMjAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFi
YXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFi
YXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ2MjI3RDE0NzEwMEI5
N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ3MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTg5OTksNiArOTAxOCwxNiBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVl
Y2ggKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzQUI5
QjRCMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ5
MjU3NEM2MUUwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBTcGVlY2g7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk5M0IyNjE0MzIyN0QxNDMxMDBCOTdBNzYgLyog
V2ViU3RvcmFnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBA
IC05MjAzLDYgKzkyMzIsNyBAQAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3
b3JrICovLAogCQkJCTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChV
c2VyKSAqLywKIAkJCQkxQTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKKwkJ
CQk5M0FCOUI0ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovLAogCQkJCTUxMThFOTk4MUYy
OTUyNTkwMDNFRjlGNSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2Mzkw
QyAvKiBVc2VyQ29udGVudCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2Vi
QXV0aGVudGljYXRpb24gKi8sCkBAIC05NDE2LDYgKzk0NDYsMTEgQEAKIAkJCQk5M0Q2QjdCMDI1
NTI2OEExMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAg
Ki8sCiAJCQkJOTNENkI3QjIyNTUyNjhBMjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvbk1hbmFnZXIuaCAqLywKIAkJCQk5M0Q2QjdBRjI1NTI2OEExMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTkzQUI5QjQzMjU3NDky
OEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwICovLAorCQkJCTkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5M0FCOUI0NDI1NzQ5MjhEMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5jcHAgKi8sCisJCQkJOTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0NjI1
NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwICovLAogCQkJCTkzRDZCNzZDMjU0Qjg5NTgw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTkzRDZCNzdBMjU0
Qzk4NEQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywK
QEAgLTEwNTcyLDYgKzEwNjA3LDEyIEBACiAJCQkJMUREMkE2NzIyNTYyMzI0RjAwRkY3QjZGIC8q
IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFE
RDJBNjczMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZXMuaCAqLywKIAkJCQkxREQyQTY3MTI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjRGMjU3NTg5MTEwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJ
OTNBQjlCNTAyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI1MTI1NzU4OTEx
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTMyNTc1ODkxMjAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oICovLAorCQkJCTkzQUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8s
CiAJCQkJOTNENkI3ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovLAogCQkJCTkzRDZCNzdGMjU0Q0NB
QkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICov
LApAQCAtMTE2NDEsNiArMTE2ODIsOSBAQAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAv
KiBTT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdCNTI1
NTI2OEQ3MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3QjQyNTUyNjhENTAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjRDMjU3
NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5M0FCOUI0RDI1NzU2N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzIy
NTRCQjUxOTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0Q2Qjc4NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODUyNTRDQ0Q0MzAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAq
LywKQEAgLTEzNDEzLDYgKzEzNDU3LDggQEAKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEg
LyogU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5
NDNEMThCRDJBNjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJBNjc0MjU2MjMyQTEwMEZGN0I2
RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTkzQUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzRDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMzNERFRDE2
REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2Vy
U2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI2
ZDUxZDE1OTY2YzVmOTczYjU1YTAzZGEzYWJiNWE2NjE4MDMwZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwyNTkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAi
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+
CisjZWxzZQorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1BdWRpb0RhdGEuaD4KKyNlbmRpZgorCisjaWYgVVNFKEFV
RElPX1NFU1NJT04pCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNlbmRpZgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZQorICAg
IDogcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHJpdmF0ZSBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudAorI2VuZGlm
Cit7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiYmIHNvdXJjZSwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAg
ICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICAgICAsIG1fc291cmNlKFdURk1v
dmUoc291cmNlKSkKKyAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJl
ZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZT4odGhpcykpKQorI2VuZGlmCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2Jz
ZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigq
dGhpcyk7CisgICAgfQorCisgICAgflNvdXJjZSgpCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgICAgICBzdG9yYWdlKCkuaW52YWxpZGF0ZSgpOworI2VuZGlmCisgICAgICAgIG1fc291
cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2Ut
PnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KCkKKyAgICB7
CisgICAgICAgIG1fc291cmNlLT5zdGFydCgpOworICAgIH0KKworICAgIHZvaWQgc3RvcCgpCisg
ICAgeworICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0KKworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1
ZmZlci5zdG9yYWdlKCkpOworICAgIH0KKyNlbmRpZgorCitwcml2YXRlOgorICAgIHZvaWQgc291
cmNlU3RvcHBlZCgpIGZpbmFsCisgICAgeworICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1cmVE
aWRGYWlsKCkpIHsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2Fw
dHVyZUZhaWxlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZVNvdXJjZVN0b3BwZWQo
bV9pZGVudGlmaWVyKSwgMCk7CisgICAgfQorCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFi
bGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9E
YXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51
bWJlck9mRnJhbWVzKSBmaW5hbAorICAgIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAg
aWYgKG1fZGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChk
ZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0
aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24g
PSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRp
b24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgbV9u
dW1iZXJPZkZyYW1lcyA9IG1fZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAg
ICAgIG1fcmluZ0J1ZmZlci5hbGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9u
KCksIG1fbnVtYmVyT2ZGcmFtZXMpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdl
YkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKSk7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zdG9y
ZShkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJP
ZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7
CisgICAgICAgIHVpbnQ2NF90IGVuZEZyYW1lOworICAgICAgICBtX3JpbmdCdWZmZXIuZ2V0Q3Vy
cmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpSZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZGVudGlmaWVyLCB0
aW1lLCBudW1iZXJPZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyNlbHNlCisg
ICAgICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGF1ZGlvRGF0
YSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7CisgICAgICAgIFVOVVNFRF9Q
QVJBTShudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NP
QSkKKworICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5h
bAorICAgIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBp
ZiAoc3RvcmFnZSkKKyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworI2lmIE9TKERBUldJTikgfHwgT1Mo
V0lORE9XUykKKyAgICAgICAgdWludDY0X3QgZGF0YVNpemUgPSBoYW5kbGUuc2l6ZSgpOworI2Vs
c2UKKyAgICAgICAgdWludDY0X3QgZGF0YVNpemUgPSAwOworI2VuZGlmCisgICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6U2V0U3RvcmFnZShtX2lkZW50aWZpZXIsIFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCAgZGF0YVNpemUgfSwgbV9kZXNjcmlwdGlvbiwg
bV9udW1iZXJPZkZyYW1lcyksIDApOworICAgIH0KKworI2VuZGlmCisKKyAgICB2b2lkIGF1ZGlv
VW5pdFdpbGxTdGFydCgpIGZpbmFsCisgICAgeworI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAg
ICAgICBhdXRvIGJ1ZmZlclNpemUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1w
bGVSYXRlKCkgLyA1MDsKKyAgICAgICAgaWYgKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigp
LnByZWZlcnJlZEJ1ZmZlclNpemUoKSA+IGJ1ZmZlclNpemUpCisgICAgICAgICAgICBBdWRpb1Nl
c3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUp
OworICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRp
b1Nlc3Npb246OlBsYXlBbmRSZWNvcmQsIFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7Cisj
ZW5kaWYKKyAgICB9CisKKyAgICBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50
aWZpZXI7CisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICB1aW50NjRfdCBtX251bWJlck9mRnJh
bWVzIHsgMCB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgQ0FSaW5nQnVmZmVyIG1fcmlu
Z0J1ZmZlcjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07
CisjZW5kaWYKK307CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29u
bmVjdGlvbikpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1l
c3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05T
KQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Omdy
YW50U2FuZGJveEV4dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEhh
bmRsZUZvclRDQ0QsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JN
aWNyb3Bob25lKQoreworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yVENDRCkpOworICAgIGlmICgh
bV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8g
Y3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciB0Y2NkIik7CisgICAgZWxzZQorICAgICAgICBt
X3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NELT5jb25zdW1lKCk7CisKKyAgICBtX3NhbmRib3hFeHRl
bnNpb25Gb3JNaWNyb3Bob25lID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2Fu
ZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZv
ck1pY3JvcGhvbmUpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94
IGV4dGVuc2lvbiBmb3IgbWljcm9waG9uZSIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94
RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+Y29uc3VtZSgpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25z
KCkKK3sKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCkgeworICAgICAgICBtX3Nh
bmRib3hFeHRlbnNpb25Gb3JUQ0NELT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uRm9yVENDRCA9IG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lv
bkZvck1pY3JvcGhvbmUpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9u
ZS0+cmV2b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBu
dWxscHRyOworICAgIH0KK30KKworI2VuZGlmCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSkKK3sKKyAgICBh
dXRvIHJlc3VsdCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRp
bWVNZWRpYVNvdXJjZShkZXZpY2UpOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIExPR19F
UlJPUigiRmFpbGVkIHRvIGNyZWF0ZSByZWFsdGltZSBzb3VyY2UiKTsKKyAgICAgICAgc2VuZChN
ZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6UmVtb3RlQ2FwdHVyZUZhaWxlZChpZGVudGlmaWVyKSwgMCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7Cisg
ICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFNvdXJjZT4oaWRlbnRpZmll
ciwgcmVzdWx0LnNvdXJjZSgpLCBtYWtlUmVmKCptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKSkp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OnJlbW92ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RhcnQoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3Nv
dXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0YXJ0KCk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcChSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNv
dXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RvcCgp
OworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jb25uZWN0aW9uLnB0cigpOworfQorCit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjMxNTBmMWJiYmIzMDk5ZDJlY2I3YmJmZTc2YmIwNjMyZjhjY2ViNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsNzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgi
CisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
Q2FwdHVyZURldmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgflNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKworcHJpdmF0ZToK
KyAgICAvLyBNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcgorICAgIHZvaWQgYWRkU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCByZW1vdmVT
b3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
c3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
c3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisjaWYgRU5BQkxF
KFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVuc2lvbnMoU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKKyAg
ICB2b2lkIHJldm9rZVNhbmRib3hFeHRlbnNpb25zKCk7CisjZW5kaWYKKworICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5k
ZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0
IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3Qg
ZmluYWw7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisKKyAgICBj
bGFzcyBTb3VyY2U7CisgICAgZnJpZW5kIGNsYXNzIFNvdXJjZTsKKyAgICBIYXNoTWFwPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U291cmNl
Pj4gbV9zb3VyY2VzOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICBSZWZQ
dHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRDsKKyAgICBSZWZQ
dHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZTsKKyNl
bmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMxMjU3YTI4MjU5YWY1YzdkNDhhZjcwZDRiOGZkYjcxZDEwNDE5
ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwzOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgQWRkU291cmNlKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UgZGV2aWNlKQorICAgIFJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFN0YXJ0KFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworICAgIFN0b3AoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisKKyNpZiBFTkFC
TEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIEdyYW50U2FuZGJveEV4dGVuc2lvbnMoV2ViS2l0
OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZvclRDQ0Qs
IFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVG
b3JNaWNyb3Bob25lKQorICAgIFJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKKyNlbmRpZgorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5j
cHAKaW5kZXggM2YzNTMxOTRhMzJjM2U2NzliY2EyOWZiZWE4NTAzMWM5MjFlNGZjNC4uZTBkMmE1
OTg1NTViOTg5Nzg1ODU4YWI2YzY0YTc1NGFmZGExMTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDEwIEBAIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
KFNwZWVjaFJlY29nbml0aW9uCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpDcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihtX2lk
ZW50aWZpZXIpLCAwKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcigpOworI2VuZGlmCiB9CiAKIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggNWIxYmM1YTlmYTdmM2I0ZDVhZWYzZTQ0NTVmZjViZmIyYTcy
M2JjOS4uNmFiODhlNGJhNzY2NTEzZTMzMTI5MjFjOGU2YjViNmQ4MjMzYjMzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3Rv
cnkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Lmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5o
IgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNp
bmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCkBAIC0xOTc4LDYgKzE5NzksMTYg
QEAgdm9pZCBXZWJQcm9jZXNzOjplbmFibGVWUDlTV0RlY29kZXIoKQogfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlciYgV2ViUHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcj4obWFrZVJlZigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSkp
OworCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxF
QVNFX0xPR19TRVNTSU9OX0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRl
eCBlOWM0N2RiNGM0NDdjMGY0YWI2MjdjMDk0YjVmNjhkYjU2NWE5YTZjLi43ZTVhNGNhYTRjNWQy
ZTIzNzg4MTNlYjRmMmY0MjI4YmRlNGNjNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKQEAgLTE0Miw2ICsxNDIsMTAgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI7CisjZW5kaWYKKwogY2xhc3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlhcnlQ
cm9jZXNzCiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNjAsNiArMzY0LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFdyaXRlVG9QYXN0ZWJvYXJkQXN5bmNocm9ub3VzbHko
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOwor
I2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogICAgIH5XZWJQcm9jZXNzKCk7
CkBAIC02OTMsNiArNzAxLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ZwOURlY29kZXJFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fdnA5U1dEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07
CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRy
PFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415582</attachid>
            <date>2020-12-07 14:09:25 -0800</date>
            <delta_ts>2020-12-07 14:10:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201207140924.patch</filename>
            <type>text/plain</type>
            <size>91285</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE5NTBmOTE5ZWNhMTA1
ZDk5Zjk2YWYzY2ExOTE5NjJhNDQ1M2ExZC4uNzg1Nzg0MDNmN2Q3OTdiZGQzMTcxM2Y4NjNjYjhl
NDVhZWM3Y2FiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTEyLTA3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1lZGlhU291cmNlIG1lbWJlciBvZiBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc3Bl
ZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1cmUuaHRtbAorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDcgIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcywgZWFy
bHkgRGVjZW1iZXIgMjAyMCBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhiMWFjMmYyYTBlMWMxOWMwNTUz
ZjJlZDk3M2YwMmI1NTY4MmIyN2MuLmMwMDRiYzM3OWViYjE4YjUwOTRjYmZmMzY5ZGZjZGMwNmE2
ZmFhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjAtMTItMDcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUg
Zm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgy
NDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBP
biBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJvY2Vzcy4gRm9yIHNwZWVjaCBy
ZWNvZ25pdGlvbiwgcmVjb2duaXplciBpcyBpbiBVSSBwcm9jZXNzLiBUaGVyZWZvcmUsCisgICAg
ICAgIFVJIHByb2Nlc3MgbmVlZHMgdG8gYXNrIHdlYiBwcm9jZXNzIHRvIGNhcHR1cmUgYXVkaW8g
YW5kIHNlbmQgYmFjayBkYXRhLiBUbyBpbXBsZW1lbnQgdGhpcywgdGhpcyBwYXRjaCBhZGRlZDoK
KyAgICAgICAgLSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6IHN1
YmNsYXNzIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgYW5kIGNvbm5lY3QgdG8gYSByZW1v
dGUgCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgKG93bmVkIGJ5IFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZSkgaW4gd2ViIHBy
b2Nlc3MuCisgICAgICAgIC0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjogbWFuYWdlIGFsbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcy4KKyAgICAg
ICAgLSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2Ug
YWxsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS4KKyAgICAgICAg
LSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6IG93
biBhbmQgbW9uaXRvciBhIGxvY2FsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UuCisKKyAg
ICAgICAgVGhpcyBzdHJ1Y3R1cmUgaXMgdmVyeSBzaW1pbGFyIHRvIGhvdyB3ZSBpbXBsZW1lbnQg
bWVkaWEgY2FwdHVyZSBvbiBtYWNPUyAoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSwgCisgICAg
ICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIGFuZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5KSwgd2hlcmUgd2Ugc2VuZCBkYXRhIGZyb20gVUkgcHJvY2VzcyB0byB3ZWIgcHJvY2Vzcwor
ICAgICAgICBpbnN0ZWFkLiBXZSBzaG91bGQgdW5pZnkgdGhlIGFyY2hpdGVjdHVyZSBpZiBwb3Nz
aWJsZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjptX3Jp
bmdCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3RvcHBlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNl
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVS
ZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6On5Tb3Vy
Y2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpTb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjpzdG9wKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291
cmNlOjpzdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJldm9rZVNhbmRib3hF
eHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6Y3JlYXRlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6ZGVsZXRlU291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAyMC0xMi0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBiYXNpYyBHUFVQcm9jZXNzIGNyYXNoIHJl
Y292ZXJ5IGxvZ2ljIHRvIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
aW5kZXggYjFmNTRmNjFjMmEzZGI5ZjFkZTE0ZjJkZWVjYzlkOTdmNDE4YWM4MS4uODI1NjI5OGZi
OWZhNmQwNzAwZWNlZGM5YjFkOGJiMzk4YmQwZTAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0x
MzQzLDYgKzEzNDMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5o
CiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCiAg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmgKICAg
ICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAogICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJh
aW50cy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYzkzYjZmMzhiYzYyMzhk
YTFkYmE4NjhlMjllMWU1YjFlNmY2NmI2Yi4uZDdlY2U2NTlmMDg5MjlkZmJjNzdjMTcxMWE5NDRj
N2MxMTVlNjE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNCw5ICsz
NCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNr
JiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFj
aykKLXsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitPcHRpb25hbDxDYXB0dXJlRGV2aWNl
PiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKK3sK
ICAgICBPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlOwogICAgIGF1dG8gZGV2
aWNlcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsK
ICAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykgewpAQCAtNTEsMjYgKzUyLDE5IEBAIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlKFNwZWVjaFJlY29nbml0aW9uCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
IH0KKyAgICByZXR1cm4gY2FwdHVyZURldmljZTsKK30KIAotICAgIGlmICghY2FwdHVyZURldmlj
ZSkgewotICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxh
YmxlIGZvciBjYXB0dXJlIiB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOworfQogCi0gICAgYXV0byByZXN1
bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVG
YWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsg
fSk7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBy
ZXN1bHQuZXJyb3JNZXNzYWdlIH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFD
YWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2ssIFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAgICA6IG1faW1wbChtYWtlVW5pcXVlPFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1v
dmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShz
b3VyY2UpKSkKK3sKK30KIAotICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJh
Y2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOwotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50SWRlbnRpZmllcik7Ci0gICAgVU5VU0VEX1BBUkFN
KGRhdGFDYWxsYmFjayk7Ci0gICAgVU5VU0VEX1BBUkFNKHN0YXRlVXBkYXRlQ2FsbGJhY2spOwog
I2VuZGlmCi19CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmgKaW5kZXggNzM4NmNlZWUyNzQwN2NjNjEwNGUyOWVkNzNkZTdkYTBhNDlmNGUwYS4uNjlm
OWE4OGIyNjFlNzFmNjZlYzAwYmI5ZTcxZGEwZjNhYzgxOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmgKQEAgLTQyLDEwICs0MiwxNiBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlKCkgPSBkZWZhdWx0OwogICAgIH5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uo
KSA9IGRlZmF1bHQ7CiAgICAgdXNpbmcgRGF0YUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25z
dCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+OwogICAgIHVzaW5nIFN0YXRlVXBkYXRlQ2FsbGJh
Y2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OwotICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYm
KTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Q2Fw
dHVyZURldmljZT4gZmluZENhcHR1cmVEZXZpY2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJik7CisjZW5kaWYKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
emVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMyOWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li41
NTAwMjhjMzU1NmIzZWRlNzBjZWUzZGJhZGJkYTE5NjAxOWI0N2JjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtNTAsMTkg
KzUwLDI3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6cmVzZXQoKQogCiAgICAgYXV0byBlcnJv
ciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9OwogICAgIG1fZGVsZWdhdGVD
YWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRl
bnRpZmllciwgZXJyb3IpKTsKKworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IFdURjo6bnVsbG9w
dDsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgcmVzZXQoKTsKKyAg
ICBBU1NFUlQoIW1fc291cmNlKTsKIAogICAgIG1fY2xpZW50SWRlbnRpZmllciA9IGlkZW50aWZp
ZXI7CiAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFy
dCkpOworfQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotICAgIHN0YXJ0SW50ZXJuYWwo
KTsKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4m
JiBzb3VyY2UpCit7CisgICAgc3RhcnQoaWRlbnRpZmllcik7CisgICAgc2V0U291cmNlKFdURk1v
dmUoc291cmNlKSk7CiB9CiAKLXZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgp
Cit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnNldFNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4mJiBzb3VyY2UpCiB7CiAgICAgYXV0byBkYXRhQ2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKV0oY29uc3QgYXV0byYgdGltZSwgY29uc3QgYXV0byYgZGF0YSwgY29uc3Qg
YXV0byYgZGVzY3JpcHRpb24sIGF1dG8gc2FtcGxlQ291bnQpIHsKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKQEAgLTkwLDkgKzk4LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRl
cm5hbCgpCiAgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CiAgICAgfTsKIAotICAgIG1f
c291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2Ns
aWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0
ZUNhbGxiYWNrKSk7CisgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2sp
LCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkpOwogfQogCisj
ZW5kaWYKKwogdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxS
ZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCkKIHsKICAgICBpZiAoIW1fY2xpZW50SWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml6ZXIuaAppbmRleCBlNmYxM2ZlZTg0YTUzM2FmMGYwNGUwNzY5YzFhZTA5NWJlNWJmZjNmLi41
YTNmYjFiNWEwM2M3YjM5M2ZkY2JiNDUwMzQ1NTc3YjMzODIxMzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0zOSwxNyArMzks
MjQgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml6
ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNoUmVjb2du
aXplcigpID0gZGVmYXVsdDsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXQoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIpOwogICAgIGVudW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3Vs
dCB7IE5vLCBZZXMgfTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJh
dGVGaW5hbFJlc3VsdCA9IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7CiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYpOworI2VuZGlmCisKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgcmVzZXQo
KTsKLSAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoKTsKICAgICB2b2lkIHN0b3BJbnRlcm5hbCgpOwog
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIHNldFNvdXJjZShSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisjZW5kaWYKKwogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBE
ZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVDYWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNjY0ZjRjYzkx
MDM2NzYyOGQzOWM0Zjk3ZWM5ZWFkY2YzNzRkYWQ2Li5jMDRmYzliYWYyZmQwMzgwM2Q4NzI3YTg4
NThlN2E0OWUxYzAwOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzY2MSwxMyArMjM2NjEsNiBAQAogCQkJcGF0aCA9IGNv
Y29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJOTNGNkI4MEUyNTY2RURF
MTAwQTA4NDg4IC8qIGNvY29hICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJl
biA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4NEYgLyogcGFyc2VyICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1Njk4LDcgKzI1NjkxLDYgQEAK
IAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8q
IGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3crU3Bl
ZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9N
V2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVB
MjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCkBAIC0zMjE1OCw2ICszMjE1MCw3
IEBACiAJCQkJQ0RGNzQ4M0YxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEyQTEwNTAxNjY0NDRGRDAwOEZBMzExIC8qIEdyaWRU
cmFja1NpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMkRFNzE4MUU0Qjc0QTYwMEY5QUNDRiAv
KiBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxQkJBODY2
MjU3RTM3M0IwMEFDN0Y2RCAvKiBIMjY0VXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RUE4
OUE3MUI0RjJCNzUwMDhDNUZEMiAvKiBIYXNoYWJsZUFjdGlvbkxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0ODJCNzQ2MTE5OEMzNTQwMEJGQjAwNSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4NzQ4QkUwMTJDQkYyREMwMDFGQkE0MSAvKiBIYXNoVG9vbHMuaCBp
biBIZWFkZXJzICovLApAQCAtMzM4OTcsNyArMzM4OTAsNiBAQAogCQkJCTVFQkI4OTM5MUM3N0Mz
OTkwMEM2NUQ0MSAvKiBQZWVyTWVkaWFEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUzRkEzODY0MUQ3MTgxMkQwMEFBNTk1MCAvKiBQZW5kaW5nU2NyaXB0Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MUJCQTg2NjI1N0UzNzNCMDBBQzdGNkQgLyogSDI2NFV0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTg0NEQwNTExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9y
bWFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2QkUzNDAxMTUwNThDQjIwMENFMEZEOCAvKiBQ
ZXJmb3JtYW5jZUVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDVBMEMyNTFERUNBQ0NDMDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CmluZGV4IGJlMDg2NTEzMmJmNDU2ZTM1NWJlYjMxYjZkYzQ2NjNiZDJkMjQzYzUuLjA2YmU3
NjE1ZjQ3Y2JkZjkyMjJkZGUzZmI1YWVlOGQ4NjYwMmYyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApA
QCAtMTAzLDYgKzEwMyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9S
ZXNvdXJjZUNhY2hlIgorICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3BlZWNoIgogICAg
ICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3RvcmFnZSIKICAgICAiJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQiCkBAIC0xODcsNiArMTg4LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9G
SUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyCiAKICAgICBV
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAgICAgVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKICAgICBVSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CkBAIC0yNTgsNiArMjYwLDggQEAgc2V0KFdlYktp
dF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkKIAor
ICAgIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIKKwogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24K
ICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDI2
N2NkZDI5NDNlMTQ2ZjA1Y2M4ZTdjMzEwMjIzOWRiZjZiZTNiNTcuLjRjNjNjMjg3MzA1OTZlM2Yw
ZGYyZDcxZDljN2ZlYjBiMmQ2YTEyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwOCw2ICsxMDgsNyBAQCAkKFBST0pFQ1RfRElSKS9V
SVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveAogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KKyQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5p
bgpAQCAtMTY1LDYgKzE2Niw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNjBkNDQzMDI2
ZjM2ZDQ5M2FjYjYyNzlkOGY3YTBjMzFlYTJiNDYyOS4uOTE4YjAyYTgxMTk2MGI5MmVlNTcxODJl
ZjMzODUwMjM0MWNjMThjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNzIsNiArMjcyLDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNz
YWdlCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3Nh
Z2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDM1OGY3NGJiZDMyNTE2NGQyOTU3NjIwMTI3ZTRhNjAyZDkyZDdhNTYuLjNmOTU2ZTY0
NjEwOWI4ZjdmYjc4OTE5M2I3NzFjODVlYzlhOTBhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTY5LDYgKzY5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAg
ICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCisJJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL1NwZWVjaCBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIFwKQEAgLTE2Nyw2ICsxNjgsNyBAQCBNRVNTQUdFX1JF
Q0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wgXAogCVVJUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uIFwKQEAgLTIw
MSw2ICsyMDMsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIFwKKwlXZWJQcm9jZXNzL1NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvV2ViUHJvY2VzcyBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAppbmRleCBjYjc4YmIyMmI2NzMyNzQ0NTFjYTNjY2RjNTZhNWVmZWY2Nzc1OTgwLi4x
NWM5NTc4OTRiNzBhNGRjNzRmYjhiOWFjOGFkYmUxYTdlM2NiMDM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAg
LTI5MSw2ICsyOTEsOCBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKIFVJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCitVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCiBVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5
LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcApAQCAtNjM3LDYgKzYz
OSw4IEBAIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5j
cHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4u
Y3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
U3RyZWFtLmNwcCBAbm8tdW5pZnkKIAorV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKwogV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxl
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWFlOTk2MDVkNzc2ODkzYTlmYmU3NzhiMzhjMmM1ZGU3ZjA0NmI2ZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZp
Y2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
OjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZp
Y2UpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkg
fSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9KQorICAgICwgbV9pZGVu
dGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikp
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxDQVJp
bmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIp
KSkKKyNlbmRpZgoreworICAgIG1fbWFuYWdlci0+YWRkU291cmNlKCp0aGlzLCBjYXB0dXJlRGV2
aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKK3sKKyAgICBpZiAo
bV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnJlbW92ZVNvdXJjZSgqdGhpcyk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFBy
b2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+
c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6U3RhcnQgeyBtX2lkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYg
KG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVudGlmaWVyIH0p
OworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFu
ZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIG1fZGVzY3JpcHRpb24g
PSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1lbW9yeTsKKyAgICBp
ZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1h
cChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBM
T0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3IgcmVtb3RlIHNvdXJj
ZSIpOworICAgIH0KKworICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAgICBpZiAoIW1lbW9y
eSkgeworICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKKyAgICAgICAgc3RvcmFn
ZS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShudWxscHRy
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShtZW1v
cnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAgc3RvcmFnZS5zZXRSZWFkT25seSh0cnVlKTsKKyAg
ICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cisg
ICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVk
aWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1l
LCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoIW1f
YnVmZmVyKSB7CisgICAgICAgIExPR19FUlJPUigiQnVmZmVyIGZvciByZW1vdGUgc291cmNlIGlz
IG51bGwiKTsKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9idWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJhbWVzKTsKKyAgICBt
X3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7
CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChtX2J1ZmZlci0+bGlzdCgpLCBudW1iZXJPZkZyYW1l
cywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsICpt
X2J1ZmZlciwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0odGltZSk7CisgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJhbWVzKTsKKyAgICBV
TlVTRURfUEFSQU0oc3RhcnRGcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKGVuZEZyYW1lKTsKKyNl
bmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCgpCit7CisgICAgY2FwdHVyZUZhaWxlZCgpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291
cmNlU3RvcHBlZCgpCit7CisgICAgc3RvcCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY3YmMwZDEzMWYyY2RiMTVmOTI1Y2UwOTAxOTU3ZWZhNGQ0NDBjYmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2
aWNlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgflNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOworCisgICAgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRTdG9yYWdlKGNv
bnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICB2b2lk
IHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9p
ZCByZW1vdGVDYXB0dXJlRmFpbGVkKCk7CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKCk7
CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYpOworCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAg
IHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5n
RGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9
CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKworICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBXZWFrUHRyPFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fbWFuYWdlcjsKKyAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVz
OworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOwor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1
ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRp
b0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViNGM3NjM2ZGE4YTE2Y2M0Y2ZlYmE2MDcyYzA1YzNl
N2E5M2I5NDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtMCww
ICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5l
Y3Rpb24pKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVy
ZURldmljZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOwor
ICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJj
ZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKHNvdXJjZSkpOworCisjaWYgRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAoIW1f
aGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBoYW5kbGVGb3JUQ0NEOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRB
dWRpdFRva2VuKCksIGhhbmRsZUZvclRDQ0QpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgaGFuZGxlRm9yTWljcm9waG9uZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25l
Il9zLCBoYW5kbGVGb3JNaWNyb3Bob25lKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6R3JhbnRTYW5kYm94RXh0ZW5z
aW9ucyhoYW5kbGVGb3JUQ0NELCBoYW5kbGVGb3JNaWNyb3Bob25lKSk7CisgICAgICAgIG1faGFz
R3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKworICAgIHNl
bmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OkNyZWF0ZVNvdXJjZShpZGVudGlmaWVyLCBjYXB0dXJlRGV2aWNlKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291
cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQor
eworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJU
KG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikgPT0gJnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJl
bW92ZShpZGVudGlmaWVyKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkgJiYgbV9o
YXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tlU2FuZGJveEV4
dGVuc2lvbnMoKSk7CisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gZmFs
c2U7CisgICAgfQorI2VuZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpEZWxldGVTb3VyY2UoaWRlbnRpZmllcikpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZy
YW1lKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikp
CisgICAgICAgIHNvdXJjZS0+cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJl
ck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxl
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAg
ICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBz
b3VyY2UtPnJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsK
K30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVy
biAwOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAo
YXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2Ut
PnNldFN0b3JhZ2UoaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVz
KTsKK30KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMTQ2YTliMzYzMDIzOTdiMWI4NjRmZjRmYThhNzM2YTU1M2FlNjU4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2hh
cmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKKworI2lmIFBMQVRGT1JNKENPQ09B
KQorY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworI2VuZGlmCit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIgZmluYWwgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB2b2lk
IGFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJik7CisKK3ByaXZhdGU6Cisg
ICAgLy8gTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICB2b2lkIHNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNz
YWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgp
IGNvbnN0IGZpbmFsOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwor
ICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYWtQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2Vz
OworICAgIGJvb2wgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDA3MTAzOThiYzdjMmM0NzA0NGIwM2U2NWQwYWNjODU4MGExZWZlYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNSBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgUmVtb3RlQXVkaW9TYW1wbGVzQXZh
aWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRG
cmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgUmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFJlbW90ZVNv
dXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyNlbmRpZgorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2YzMyYzU0OGEwYTA5YWIwMmJjMTQ1MzQ1MjQ0
Li4yMzI4NGZiZmQ2YjQ4NTY4ZThmODYxY2Y0ZmYzMmMwMjljNjlkMzJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0z
NiwxMiArMzYsMjIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNr
ZXImJiBwZXJtaXNzaW9uQ2hlY2tlciwgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9u
JiYgZnVuY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAg
ICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9wZXJtaXNzaW9uQ2hlY2tlcihX
VEZNb3ZlKHBlcm1pc3Npb25DaGVja2VyKSkKKyAgICAsIG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNy
ZWF0ZUZ1bmN0aW9uKFdURk1vdmUoZnVuY3Rpb24pKQoreworfQorI2Vsc2UKIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24sIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyJiYgcGVybWlzc2lvbkNoZWNr
ZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9wZXJtaXNzaW9uQ2hlY2tlcihXVEZNb3ZlKHBl
cm1pc3Npb25DaGVja2VyKSkKIHsKIH0KKyNlbmRpZgogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGludW91
cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mJiBvcmlnaW4pCiB7CkBAIC05Miw2ICsxMDIsMTkgQEAgdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24KICAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKICAgICAgICAg
fSk7CiAgICAgfQorICAgIAorICAgIG1fcmVjb2duaXplci0+cmVzZXQoKTsKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gbV9yZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb24oKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpIHsKKyAgICAg
ICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHNlbmRVcGRh
dGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElk
ZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBzb3VyY2VPckVycm9yLmVycm9y
TWVzc2FnZSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9yZWNvZ25pemVyLT5z
dGFydChjbGllbnRJZGVudGlmaWVyLCBzb3VyY2VPckVycm9yLnNvdXJjZSgpKTsKKyAgICByZXR1
cm47CisjZW5kaWYKIAogICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaAppbmRleCBhN2Y3NmQzOGVlNTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li5lZDY3
MjY0YWExMzFlMWUxNDIxZWFhNDE0ZDQxNzEzYzY5NWQ4MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTM2LDYgKzM2LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU7CitzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CiBzdHJ1Y3QgQ2xpZW50T3Jp
Z2luOwogfQogCkBAIC01MCw3ICs1MSwxMiBAQCB1c2luZyBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25DaGVja2VyID0gRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpDbGllbnRPcgogY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVzaW5nIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
KCk+OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYs
IFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2hlY2tlciYmLCBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJik7Cisj
ZWxzZQogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYs
IFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2hlY2tlciYmKTsKKyNlbmRpZgogCiAgICAgdm9pZCBzdGFydChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBi
b29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0
aXZlcywgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYpOwogICAgIHZvaWQgc3RvcChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKQEAgLTc1LDYgKzgx
LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAgICBTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVh
bHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDk3N2U0ZWFmNjhkNzNlMDRkM2ZkYTA1OGI1NDMxNDM5OGUyYWU0MzMuLjNiOThkMmI1NTE4NmYw
ZGY1NTQwM2NjZjBkNzk1OWUzODBmZjA4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtODcsNiArODcsOCBAQAogI2luY2x1ZGUgIlNhZmVCcm93c2luZ1dh
cm5pbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRl
ICJTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5o
IgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTEwMzAxLDYgKzEwMzAzLDI2IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlE
ZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvCiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25NYW5hZ2VyLT5kZWNpZGVCeURlZmF1bHRBY3Rpb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitXZWJDb3JlOjpD
YXB0dXJlU291cmNlT3JFcnJvciBXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpCit7CisgICAgaWYgKHByZWZlcmVuY2VzKCkuY2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgeyAiTm90IGltcGxlbWVudGVkIGZvciBHUFUgcHJvY2VzcyIgfTsKKworICAgIGF1
dG8gY2FwdHVyZURldmljZSA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENh
cHR1cmVEZXZpY2UoKTsKKyAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisgICAgICAgIHJldHVybiBD
YXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJl
IiB9OworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
ZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisjZWxzZQorICAgIHJldHVybiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
KmNhcHR1cmVEZXZpY2UpOworI2VuZGlmCit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjMyZWQzN2JkMWJmOTMwYWFmOGY5OTg0MzZkNjMwNTQy
ZWE5MzA4NS4uZDk2ODMxM2RkZDJkNjNjZDBhNTg3NmNiYmRjYWE3NTIwZWE4Mzg3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE4MzMsNiArMTgzMywxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRl
TmV3R3JvdXBGb3JIaWdobGlnaHQpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFT
b3VyY2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2Vi
UGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU3ZDljZGZlNTUzNWMy
N2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLjYxOGUzY2VmN2UwMmMxMDdkNjM5MTYyODk0NmY3
ZTI3NGNlNTVkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJUZXh0Q2hl
Y2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTE3MDIsOCArMTcwNCw4
IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlByb2Nlc3NQcm94eTo6c2Vzc2lvbklEKCkgY29uc3QKIAog
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVj
aFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIGF1dG8gc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChp
ZGVudGlmaWVyLCBudWxscHRyKTsKLSAgICBBU1NFUlQoc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aXNOZXdFbnRyeSk7CisgICAgQVNTRVJUKCFtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNv
bnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvJiBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9
IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpLml0
ZXJhdG9yLT52YWx1ZTsKICAgICBXZWJQYWdlUHJveHkqIHRhcmdldFBhZ2UgPSBudWxscHRyOwog
ICAgIGZvciAoYXV0byogcGFnZSA6IHBhZ2VzKCkpIHsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFn
ZS0+d2ViUGFnZUlEKCkgPT0gaWRlbnRpZmllcikgewpAQCAtMTcxNSwxNSArMTcxNywyMSBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudAogICAgIGlmICghdGFyZ2V0UGFnZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFr
ZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwg
aWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9y
aWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICBzcGVlY2hSZWNv
Z25pdGlvblNlcnZlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VS
ZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRh
cmdldFBhZ2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghd2Vha1BhZ2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotICAgIH0pOwotICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgfQorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oKSB7
CisgICAgICAgIHJldHVybiB3ZWFrUGFnZSA/IHdlYWtQYWdlLT5jcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKSA6IENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlBh
Z2UgaXMgaW52YWxpZCIgfTsKKyAgICB9CisjZW5kaWYKKyAgICApOworICAgIGFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgaWRlbnRpZmllciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyKTsKIH0KIAogdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKQEAgLTE3MzMsNiArMTc0MSwy
MCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbgogICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNYXAucmVtb3ZlKGlkZW50aWZpZXIpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2Vi
UHJvY2Vzc1Byb3h5OjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcikgeworICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24o
KSkpOworICAgICAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgKm1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik7
CisgICAgfQorCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykK
IAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVsbHNj
cmVlbklucHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggYzEwYjM5NDhkNzc2NzYzNzE0ZDE2NDc5YjU5MzYyODJhNjk3MzNkYS4uYTExYTM5NGU3YWE4
YjNmYzkzZTg3OGEyZTAxOThjODllMWUyNzNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgc3RydWN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKIHN0cnVjdCBXZWJz
aXRlRGF0YTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGVudW0gRm9y
ZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyVHlwZSB7IH07CiB0eXBlZGVmIFJlZkNvdW50ZXI8Rm9y
ZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyVHlwZT4gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVy
OwogdHlwZWRlZiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI6OlRva2VuIEZvcmVncm91bmRX
ZWJQcm9jZXNzVG9rZW47CkBAIC0zOTQsNiArMzk4LDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
SVBDX1RFU1RJTkdfQVBJKQogICAgIHZvaWQgc2V0SWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0
aW5nKCk7CiAjZW5kaWYKKyAgICAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgog
CiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0
ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKQEAgLTY0Myw2ICs2NTEsOSBAQCBwcml2YXRlOgog
CiAgICAgdXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNwZWVjaFJl
Y29nbml0aW9uU2VydmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0
aW9uU2VydmVyPj47CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1hcDsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5p
cXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
PiBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cisj
ZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzRkNzk3ZmZiNjlkMDY2NzI2M2Qw
NGY0MzA5ZGVhMTlmY2JiYTAzMi4uYjU5ZTkyODU4NGJiZGVhYzQ3YTQxYzQwZGY5M2RjYzMzZjYx
OWQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xNDM1LDYgKzE0MzUsMTEgQEAKIAkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8q
IFdlYkhpdFRlc3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0E4OEIzMTFCQzZFOUMwMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3Vs
dERhdGEuaCAqLzsgfTsKIAkJOTNBODhCM0IxQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RS
ZXN1bHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5h
bC5oICovOyB9OwogCQk5M0E4OEI0NjFCQzg4MjkzMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhC
NDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLzsgfTsKKwkJOTNBQjlC
NEMyNTc1NjNGMzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJCTkzQUI5QjREMjU3NTY3REMwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0NTI1NzQ5MjhE
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oICovOyB9OworCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi87IH07CisJCTkzQUI5QjU1
MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
KwkJOTNBQjlCNTYyNTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk5M0IyNjE0RDIyN0QxNDlFMDBCOTdBNzYgLyogU3Rv
cmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQjI2MTQ5MjI3RDE0NzIwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oICovOyB9Owog
CQk5M0IyNjE0RTIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ1MjI3RDE0
NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovOyB9OwogCQk5M0IyNjE0RjIy
N0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NjIyN0QxNDcxMDBC
OTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggKi87IH07CkBAIC00NjA1LDYg
KzQ2MTAsMjAgQEAKIAkJOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1
bHRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODhCNDIx
QkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzQTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVz
dWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDMyNTc0
OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDUyNTc0OTI4
RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0OTI1
NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRCMjU3NEM2MUYwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0
RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTAyNTc1
ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTIyNTc1ODkxMjAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MzI1NzU4OTEyMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Iy
NjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlRGF0YWJhc2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMjYxNDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3Rv
cmFnZURhdGFiYXNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
b2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNCMjYxNDcyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODk5OSw2
ICs5MDE4LDE2IEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8qIFNwZWVjaCAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNBQjlCNEIyNTc0QzYxRjAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICov
LAorCQkJCTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDkyNTc0QzYxRTAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFNwZWVjaDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCTkzQjI2MTQzMjI3RDE0MzEwMEI5N0E3NiAvKiBXZWJTdG9yYWdlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkyMDMsNiArOTIzMiw3
IEBACiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEw
OTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAogCQkJCTFB
NkZCN0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAorCQkJCTkzQUI5QjQ4MjU3NEM1
Q0UwMDk4QjEwRSAvKiBTcGVlY2ggKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8q
IFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJDb250ZW50
ICovLAogCQkJCTU3NjA4MjhBMjAyOTg0QzkwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdGlvbiAq
LywKQEAgLTk0MTYsNiArOTQ0NiwxMSBAQAogCQkJCTkzRDZCN0IwMjU1MjY4QTEwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5M0Q2QjdC
MjI1NTI2OEEyMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5o
ICovLAogCQkJCTkzRDZCN0FGMjU1MjY4QTEwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmggKi8sCisJCQkJOTNBQjlCNDMyNTc0OTI4QzAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJOTNB
QjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oICovLAorCQkJCTkzQUI5QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5
M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovLAogCQkJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAgKi8sCiAJCQkJOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyLmggKi8sCiAJCQkJOTNENkI3N0EyNTRDOTg0RDAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluICovLApAQCAtMTA1NzIsNiArMTA2
MDcsMTIgQEAKIAkJCQkxREQyQTY3MjI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUREMkE2NzMyNTYyMzI0RjAw
RkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oICovLAogCQkJCTFE
RDJBNjcxMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZXNSZXBsaWVzLmggKi8sCisJCQkJOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MDI1NzU4OTEx
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQk5M0FCOUI1MzI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJ
OTNBQjlCNTIyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk5M0Q2Qjc4MTI1
NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzLmggKi8sCiAJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMTY0MSw2ICsx
MTY4Miw5IEBACiAJCQkJNTdGRDMxODUyMkIzNTE2OTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlv
blNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I1MjU1MjY4RDcwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0Q2QjdCNDI1NTI2OEQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEMyNTc1NjNGMzAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjREMjU3
NTY3REMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzg0
MjU0Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTM0MTMsNiAr
MTM0NTcsOCBAQAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1
dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMx
NUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUREMkE2NzQyNTYyMzJBMTAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNB
QjlCNTUyNTc1QTI3NjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBQjlC
NTYyNTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNE
NkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAv
KiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzY4RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGZmNDQ4YmVmODk0MWFjNDk1
YmUwOGVmNTNiZmFjMWI4MDY2ZWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcApAQCAtMCwwICsxLDI1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNlbHNlCisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUF1ZGlvRGF0YS5oPgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlCisgICAgOiBwcml2YXRlIFJlYWx0
aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIHB1Ymxp
YyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisjZW5kaWYKK3sKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNl
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAg
ICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkp
CisjZW5kaWYKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7Cisg
ICAgICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisK
KyAgICB+U291cmNlKCkKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0b3Jh
Z2UoKS5pbnZhbGlkYXRlKCk7CisjZW5kaWYKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlv
U2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIo
KnRoaXMpOworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3Vy
Y2UtPnN0YXJ0KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1f
c291cmNlLT5zdG9wKCk7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7
CisgICAgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmlu
YWwKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgeworICAg
ICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRl
bnRpZmllciksIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAw
KTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRp
bWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZp
bmFsCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlwdGlv
biAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRm
b3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJl
YW1CYXNpY1R5cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2Ny
aXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0g
bV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVy
LmFsbG9jYXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZy
YW1lcyk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0
PihhdWRpb0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1
ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRp
bWVWYWx1ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0
X3QgZW5kRnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMo
c3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJl
bW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJh
bWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BB
UkFNKHRpbWUpOworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsKKyAgICAgICAgVU5V
U0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJh
bWVzKTsKKyNlbmRpZgorICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisgICAgdm9pZCBz
dG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsCisgICAgeworICAgICAg
ICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChzdG9yYWdlKQorICAg
ICAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhXSU5ET1dTKQorICAgICAg
ICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxzZQorICAgICAgICB1aW50
NjRfdCBkYXRhU2l6ZSA9IDA7CisjZW5kaWYKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpTZXRTdG9yYWdlKG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZN
b3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9LCBtX2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJhbWVz
KSwgMCk7CisgICAgfQorCisjZW5kaWYKKworICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkg
ZmluYWwKKyAgICB7CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgICAgIGF1dG8gYnVmZmVy
U2l6ZSA9IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOwor
ICAgICAgICBpZiAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVy
U2l6ZSgpID4gYnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7CisgICAgICAgIEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6UGxheUFu
ZFJlY29yZCwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyNlbmRpZgorICAgIH0KKwor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOworICAgIHVpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyNlbmRpZgorfTsKKwor
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgKnRoaXMpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjp+U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigp
Cit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0
aGlzKTsKK30KKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5z
aW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7Cisg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShX
VEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JUQ0NEKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNp
b25Gb3JUQ0NEKQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBl
eHRlbnNpb24gZm9yIHRjY2QiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lv
bkZvclRDQ0QtPmNvbnN1bWUoKTsKKworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhv
bmUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWlj
cm9waG9uZSkpOworICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAg
ICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBt
aWNyb3Bob25lIik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNy
b3Bob25lLT5jb25zdW1lKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmICht
X3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZv
clRDQ0QtPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVs
bHB0cjsKKyAgICB9CisKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkg
eworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAg
ICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQor
fQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpjcmVhdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAgIGF1dG8gcmVzdWx0ID0g
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNl
KGRldmljZSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0
dXJlRmFpbGVkKGlkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMu
YWRkKGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8U291cmNlPihpZGVudGlmaWVyLCByZXN1bHQuc291
cmNlKCksIG1ha2VSZWYoKm1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkpKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6ZGVsZXRlU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zb3Vy
Y2VzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRl
bnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RhcnQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3Vy
Y2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6
Q29ubmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rp
b24ucHRyKCk7Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZDQ1YzRiOTUwN2Y1MDBjMjdjMzliZDFiOTAyOWM0OGE2ZjhhZjY3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1l
c3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJT
YW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNl
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVz
c2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB+
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworCitwcml2YXRl
OgorICAgIC8vIE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyCisgICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIGRl
bGV0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyNpZiBF
TkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5zaW9u
cyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYp
OworICAgIHZvaWQgcmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKTsKKyNlbmRpZgorCisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29u
c3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKworICAg
IGNsYXNzIFNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgU291cmNlOworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb3Vy
Y2U+PiBtX3NvdXJjZXM7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIFJl
ZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEOworICAgIFJl
ZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lOwor
I2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MmRmMWQ4ZTU5ZjBhOGY2ODAxZTI2NDZhODdmMGQ3NTBk
NjYxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDM4IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBDcmVhdGVTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgRGVsZXRlU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgU3RhcnQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisgICAgU3RvcChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9y
VENDRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhh
bmRsZUZvck1pY3JvcGhvbmUpCisgICAgUmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorI2VuZGlm
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcAppbmRleCAzZjM1MzE5NGEzMmMzZTY3OWJjYTI5ZmJlYTg1MDMxYzkyMWU0ZmM0Li5l
MGQyYTU5ODU1NWI5ODk3ODU4NThhYjZjNjRhNzU0YWZkYTExMDkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsMTAgQEAg
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24oU3BlZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0aGlzKTsKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KG1faWRlbnRpZmllciksIDApOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIH0KIAogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBjM2ZhODFlZGMwMGViNjkyNzczY2M3M2Y5ZjRhYWRj
Y2UxZGNjMTMyLi44NDc0OTU2YjM2YjA1NGQ3MWVhZTU1ZDFhOGNmMWM3OGQ5ZDdiZGM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAj
aW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RN
RmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5o
IgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKQEAgLTE5ODAsNiArMTk4
MSwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmVuYWJsZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzOjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpKSk7CisKKyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVm
IFJFTEVBU0VfTE9HX1NFU1NJT05fSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CmluZGV4IGU5YzQ3ZGI0YzQ0N2MwZjRhYjYyN2MwOTRiNWY2OGRiNTY1YTlhNmMuLjdlNWE0Y2Fh
NGM1ZDJlMjM3ODgxM2ViNGYyZjQyMjhiZGU0Y2M1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaApAQCAtMTQyLDYgKzE0MiwxMCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGls
aWFyeVByb2Nlc3MKIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM2MCw2ICsz
NjQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hyb25v
dXNseShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
KCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nl
c3MoKTsKQEAgLTY5Myw2ICs3MDEsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdnA5RGVjb2Rl
ckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV92cDlTV0RlY29kZXJFbmFibGVkIHsgZmFs
c2UgfTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9zcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjOGMwMzFlYjMxZmZjNjFhNjU3NGI4MThiYzg3
OGQ4ZDEwNzljNmY3Li41YjdmMGUxMzRkY2RlMDVkNjI3ODI5YmU4NzZhNDcxYzNiNGY5NjUzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMTItMDcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJl
Y29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVy
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24v
aW9zL2F1ZGlvLWNhcHR1cmUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdr
Mi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTEyLTA3ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50
ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLmh0bWwgaXMgZmxha3kgZmFpbGluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNDI3ODRkMjQ4YTA1YWZiZjg1NjQ2YmJhYjQxY2M5YzY0ODQ1NmVj
Mi4uNDExMDMzOWIyZTQ4ZjhmYWI4Yzk1OGRlYzY5MGM2MjkxNzFmZWZmMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0xODEsNiArMTgxLDcgQEAgaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2
YWN5LyBbIFNraXAgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9uLWVycm9yLmh0
bWwgWyBTa2lwIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhl
bi1zdG9wLmh0bWwgWyBTa2lwIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25k
LXJlY29nbml0aW9uLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zLyBb
IFNraXAgXQogCiAjIE9ubHkgcGFydGlhbCBzdXBwb3J0IG9uIENvY29hIHBsYXRmb3Jtcy4KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS8gWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1
cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3Mv
YXVkaW8tY2FwdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY4MzJhMTdjZmNmM2I4YWQy
ZGY4MDJkYTVlNzJjM2VkMDQwMmE1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1cmUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKK1ZlcmlmeSB0aGF0IGF1ZGlvIGNhcHR1cmUgb24gaU9TIGhhcHBlbnMgaW4g
d2ViIHByb2Nlc3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29n
bml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUmVj
ZWl2ZWQgc3RhcnQgZXZlbnQKK1JlY2VpdmVkIGF1ZGlvc3RhcnQgZXZlbnQKK1BBU1MgaW50ZXJu
YWxzLmF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgaXMgIlBsYXlBbmRSZWNvcmQiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE4YTBjNTc1MjhjYzM2MjlmNWFiMzUyMGRiYTIyYzk2ZGU2ZTA0MmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9h
dWRpby1jYXB0dXJlLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgYXVkaW8gY2FwdHVyZSBv
biBpT1MgaGFwcGVucyBpbiB3ZWIgcHJvY2Vzcy4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNv
Z25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworcmVjb2duaXRpb24ub25zdGFy
dCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBzdGFydCBldmVudCIpOworfQor
CityZWNvZ25pdGlvbi5vbmF1ZGlvc3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVj
ZWl2ZWQgYXVkaW9zdGFydCBldmVudCIpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJp
bnRlcm5hbHMuYXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSIsICJQbGF5QW5kUmVjb3JkIik7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdGFydCgp
Iik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA5NmU2NmIxNWIxOWRmMGU1YjUwZGFkYWYyYjI5MmU4OTcxMGQ2MDJiLi5hOWE5NDFhOTIz
YjE0MGRmNzJjYzQ5ZTIwODU3NWJjMzE2MDQxZGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNyw2ICsxNyw3IEBAIGNvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC5odG1sIFsgUGFzcyBdCiBmYXN0L2RldmljZS1vcmllbnRhdGlv
biBbIFBhc3MgXQogZmFzdC9oaXN0b3J5L2lvcyBbIFBhc3MgXQogZmFzdC9zY3JvbGxpbmcvaW9z
IFsgUGFzcyBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcyBbIFBhc3MgXQogZmFzdC92aWV3
cG9ydC9pb3MgWyBQYXNzIF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBQYXNzIF0KIHNj
cm9sbGluZ2Nvb3JkaW5hdG9yIFsgUGFzcyBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415583</attachid>
            <date>2020-12-07 14:10:15 -0800</date>
            <delta_ts>2020-12-08 17:21:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201207141014.patch</filename>
            <type>text/plain</type>
            <size>91288</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE5NTBmOTE5ZWNhMTA1
ZDk5Zjk2YWYzY2ExOTE5NjJhNDQ1M2ExZC4uNzg1Nzg0MDNmN2Q3OTdiZGQzMTcxM2Y4NjNjYjhl
NDVhZWM3Y2FiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTEyLTA3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgd2F5IHRvIHNldCBSZWFsdGltZU1lZGlhU291cmNlIG1lbWJlciBvZiBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc3Bl
ZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1cmUuaHRtbAorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpmaW5kQ2FwdHVyZURldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTItMDcgIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcywgZWFy
bHkgRGVjZW1iZXIgMjAyMCBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhiMWFjMmYyYTBlMWMxOWMwNTUz
ZjJlZDk3M2YwMmI1NTY4MmIyN2MuLmMwMDRiYzM3OWViYjE4YjUwOTRjYmZmMzY5ZGZjZGMwNmE2
ZmFhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjAtMTItMDcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUg
Zm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgy
NDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBP
biBpT1MsIGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJvY2Vzcy4gRm9yIHNwZWVjaCBy
ZWNvZ25pdGlvbiwgcmVjb2duaXplciBpcyBpbiBVSSBwcm9jZXNzLiBUaGVyZWZvcmUsCisgICAg
ICAgIFVJIHByb2Nlc3MgbmVlZHMgdG8gYXNrIHdlYiBwcm9jZXNzIHRvIGNhcHR1cmUgYXVkaW8g
YW5kIHNlbmQgYmFjayBkYXRhLiBUbyBpbXBsZW1lbnQgdGhpcywgdGhpcyBwYXRjaCBhZGRlZDoK
KyAgICAgICAgLSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6IHN1
YmNsYXNzIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgYW5kIGNvbm5lY3QgdG8gYSByZW1v
dGUgCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgKG93bmVkIGJ5IFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZSkgaW4gd2ViIHBy
b2Nlc3MuCisgICAgICAgIC0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjogbWFuYWdlIGFsbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcy4KKyAgICAg
ICAgLSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2Ug
YWxsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS4KKyAgICAgICAg
LSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6IG93
biBhbmQgbW9uaXRvciBhIGxvY2FsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UuCisKKyAg
ICAgICAgVGhpcyBzdHJ1Y3R1cmUgaXMgdmVyeSBzaW1pbGFyIHRvIGhvdyB3ZSBpbXBsZW1lbnQg
bWVkaWEgY2FwdHVyZSBvbiBtYWNPUyAoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSwgCisgICAg
ICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIGFuZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5KSwgd2hlcmUgd2Ugc2VuZCBkYXRhIGZyb20gVUkgcHJvY2VzcyB0byB3ZWIgcHJvY2Vzcwor
ICAgICAgICBpbnN0ZWFkLiBXZSBzaG91bGQgdW5pZnkgdGhlIGFyY2hpdGVjdHVyZSBpZiBwb3Nz
aWJsZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjptX3Jp
bmdCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnNldFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3RvcHBlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNl
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
cmVtb3RlQ2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVS
ZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6On5Tb3Vy
Y2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpTb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjpzdG9wKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291
cmNlOjpzdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJldm9rZVNhbmRib3hF
eHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6Y3JlYXRlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6ZGVsZXRlU291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAyMC0xMi0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBiYXNpYyBHUFVQcm9jZXNzIGNyYXNoIHJl
Y292ZXJ5IGxvZ2ljIHRvIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
aW5kZXggYjFmNTRmNjFjMmEzZGI5ZjFkZTE0ZjJkZWVjYzlkOTdmNDE4YWM4MS4uODI1NjI5OGZi
OWZhNmQwNzAwZWNlZGM5YjFkOGJiMzk4YmQwZTAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0x
MzQzLDYgKzEzNDMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5o
CiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCiAg
ICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmgKICAg
ICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAogICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJh
aW50cy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYzkzYjZmMzhiYzYyMzhk
YTFkYmE4NjhlMjllMWU1YjFlNmY2NmI2Yi4uZDdlY2U2NTlmMDg5MjlkZmJjNzdjMTcxMWE5NDRj
N2MxMTVlNjE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNCw5ICsz
NCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNr
JiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFj
aykKLXsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitPcHRpb25hbDxDYXB0dXJlRGV2aWNl
PiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKK3sK
ICAgICBPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlOwogICAgIGF1dG8gZGV2
aWNlcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsK
ICAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykgewpAQCAtNTEsMjYgKzUyLDE5IEBAIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlKFNwZWVjaFJlY29nbml0aW9uCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
IH0KKyAgICByZXR1cm4gY2FwdHVyZURldmljZTsKK30KIAotICAgIGlmICghY2FwdHVyZURldmlj
ZSkgewotICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxh
YmxlIGZvciBjYXB0dXJlIiB9OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOworfQogCi0gICAgYXV0byByZXN1
bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVG
YWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsg
fSk7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBy
ZXN1bHQuZXJyb3JNZXNzYWdlIH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9CitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFD
YWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2ssIFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAgICA6IG1faW1wbChtYWtlVW5pcXVlPFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1v
dmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShz
b3VyY2UpKSkKK3sKK30KIAotICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJh
Y2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOwotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50SWRlbnRpZmllcik7Ci0gICAgVU5VU0VEX1BBUkFN
KGRhdGFDYWxsYmFjayk7Ci0gICAgVU5VU0VEX1BBUkFNKHN0YXRlVXBkYXRlQ2FsbGJhY2spOwog
I2VuZGlmCi19CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmgKaW5kZXggNzM4NmNlZWUyNzQwN2NjNjEwNGUyOWVkNzNkZTdkYTBhNDlmNGUwYS4uNjlm
OWE4OGIyNjFlNzFmNjZlYzAwYmI5ZTcxZGEwZjNhYzgxOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmgKQEAgLTQyLDEwICs0MiwxNiBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlKCkgPSBkZWZhdWx0OwogICAgIH5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uo
KSA9IGRlZmF1bHQ7CiAgICAgdXNpbmcgRGF0YUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25z
dCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+OwogICAgIHVzaW5nIFN0YXRlVXBkYXRlQ2FsbGJh
Y2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OwotICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYm
KTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Q2Fw
dHVyZURldmljZT4gZmluZENhcHR1cmVEZXZpY2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJik7CisjZW5kaWYKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
emVyLmNwcAppbmRleCA1YmViNjA1NjQ3YjMyOWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li41
NTAwMjhjMzU1NmIzZWRlNzBjZWUzZGJhZGJkYTE5NjAxOWI0N2JjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtNTAsMTkg
KzUwLDI3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6cmVzZXQoKQogCiAgICAgYXV0byBlcnJv
ciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9OwogICAgIG1fZGVsZWdhdGVD
YWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRl
bnRpZmllciwgZXJyb3IpKTsKKworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IFdURjo6bnVsbG9w
dDsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgcmVzZXQoKTsKKyAg
ICBBU1NFUlQoIW1fc291cmNlKTsKIAogICAgIG1fY2xpZW50SWRlbnRpZmllciA9IGlkZW50aWZp
ZXI7CiAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFy
dCkpOworfQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotICAgIHN0YXJ0SW50ZXJuYWwo
KTsKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4m
JiBzb3VyY2UpCit7CisgICAgc3RhcnQoaWRlbnRpZmllcik7CisgICAgc2V0U291cmNlKFdURk1v
dmUoc291cmNlKSk7CiB9CiAKLXZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCgp
Cit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnNldFNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4mJiBzb3VyY2UpCiB7CiAgICAgYXV0byBkYXRhQ2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKV0oY29uc3QgYXV0byYgdGltZSwgY29uc3QgYXV0byYgZGF0YSwgY29uc3Qg
YXV0byYgZGVzY3JpcHRpb24sIGF1dG8gc2FtcGxlQ291bnQpIHsKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKQEAgLTkwLDkgKzk4LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRl
cm5hbCgpCiAgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CiAgICAgfTsKIAotICAgIG1f
c291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2Ns
aWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0
ZUNhbGxiYWNrKSk7CisgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2sp
LCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkpOwogfQogCisj
ZW5kaWYKKwogdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxS
ZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCkKIHsKICAgICBpZiAoIW1fY2xpZW50SWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml6ZXIuaAppbmRleCBlNmYxM2ZlZTg0YTUzM2FmMGYwNGUwNzY5YzFhZTA5NWJlNWJmZjNmLi41
YTNmYjFiNWEwM2M3YjM5M2ZkY2JiNDUwMzQ1NTc3YjMzODIxMzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0zOSwxNyArMzks
MjQgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml6
ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNoUmVjb2du
aXplcigpID0gZGVmYXVsdDsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXQoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIpOwogICAgIGVudW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3Vs
dCB7IE5vLCBZZXMgfTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJh
dGVGaW5hbFJlc3VsdCA9IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7CiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYpOworI2VuZGlmCisKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgcmVzZXQo
KTsKLSAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoKTsKICAgICB2b2lkIHN0b3BJbnRlcm5hbCgpOwog
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIHNldFNvdXJjZShSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJik7CisjZW5kaWYKKwogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAgICBE
ZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVDYWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNjY0ZjRjYzkx
MDM2NzYyOGQzOWM0Zjk3ZWM5ZWFkY2YzNzRkYWQ2Li5jMDRmYzliYWYyZmQwMzgwM2Q4NzI3YTg4
NThlN2E0OWUxYzAwOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzY2MSwxMyArMjM2NjEsNiBAQAogCQkJcGF0aCA9IGNv
Y29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJOTNGNkI4MEUyNTY2RURF
MTAwQTA4NDg4IC8qIGNvY29hICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJl
biA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4NEYgLyogcGFyc2VyICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1Njk4LDcgKzI1NjkxLDYgQEAK
IAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8q
IGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3crU3Bl
ZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9N
V2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVB
MjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCkBAIC0zMjE1OCw2ICszMjE1MCw3
IEBACiAJCQkJQ0RGNzQ4M0YxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEyQTEwNTAxNjY0NDRGRDAwOEZBMzExIC8qIEdyaWRU
cmFja1NpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMkRFNzE4MUU0Qjc0QTYwMEY5QUNDRiAv
KiBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxQkJBODY2
MjU3RTM3M0IwMEFDN0Y2RCAvKiBIMjY0VXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RUE4
OUE3MUI0RjJCNzUwMDhDNUZEMiAvKiBIYXNoYWJsZUFjdGlvbkxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0ODJCNzQ2MTE5OEMzNTQwMEJGQjAwNSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4NzQ4QkUwMTJDQkYyREMwMDFGQkE0MSAvKiBIYXNoVG9vbHMuaCBp
biBIZWFkZXJzICovLApAQCAtMzM4OTcsNyArMzM4OTAsNiBAQAogCQkJCTVFQkI4OTM5MUM3N0Mz
OTkwMEM2NUQ0MSAvKiBQZWVyTWVkaWFEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUzRkEzODY0MUQ3MTgxMkQwMEFBNTk1MCAvKiBQZW5kaW5nU2NyaXB0Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MUJCQTg2NjI1N0UzNzNCMDBBQzdGNkQgLyogSDI2NFV0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTg0NEQwNTExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9y
bWFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2QkUzNDAxMTUwNThDQjIwMENFMEZEOCAvKiBQ
ZXJmb3JtYW5jZUVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDVBMEMyNTFERUNBQ0NDMDA3
MDcwNTQgLyogUGVyZm9ybWFuY2VMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CmluZGV4IGJlMDg2NTEzMmJmNDU2ZTM1NWJlYjMxYjZkYzQ2NjNiZDJkMjQzYzUuLjA2YmU3
NjE1ZjQ3Y2JkZjkyMjJkZGUzZmI1YWVlOGQ4NjYwMmYyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApA
QCAtMTAzLDYgKzEwMyw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9S
ZXNvdXJjZUNhY2hlIgorICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3BlZWNoIgogICAg
ICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3RvcmFnZSIKICAgICAiJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL1VzZXJDb250ZW50IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQiCkBAIC0xODcsNiArMTg4LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9G
SUxFUwogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyCiAKICAgICBV
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eQorICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAgICAgVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKICAgICBVSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CkBAIC0yNTgsNiArMjYwLDggQEAgc2V0KFdlYktp
dF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkKIAor
ICAgIFdlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIKKwogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24K
ICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDI2
N2NkZDI5NDNlMTQ2ZjA1Y2M4ZTdjMzEwMjIzOWRiZjZiZTNiNTcuLjRjNjNjMjg3MzA1OTZlM2Yw
ZGYyZDcxZDljN2ZlYjBiMmQ2YTEyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwOCw2ICsxMDgsNyBAQCAkKFBST0pFQ1RfRElSKS9V
SVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveAogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KKyQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5p
bgpAQCAtMTY1LDYgKzE2Niw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNjBkNDQzMDI2
ZjM2ZDQ5M2FjYjYyNzlkOGY3YTBjMzFlYTJiNDYyOS4uOTE4YjAyYTgxMTk2MGI5MmVlNTcxODJl
ZjMzODUwMjM0MWNjMThjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CkBAIC0yNzIsNiArMjcyLDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNz
YWdlCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3Nh
Z2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJj
ZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDM1OGY3NGJiZDMyNTE2NGQyOTU3NjIwMTI3ZTRhNjAyZDkyZDdhNTYuLjNmOTU2ZTY0
NjEwOWI4ZjdmYjc4OTE5M2I3NzFjODVlYzlhOTBhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTY5LDYgKzY5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAg
ICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCisJJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL1NwZWVjaCBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudCBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uIFwKQEAgLTE2Nyw2ICsxNjgsNyBAQCBNRVNTQUdFX1JF
Q0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wgXAogCVVJUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRQcm94eSBcCiAJVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHkgXAorCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIgXAogCVdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIgXAogCVdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uIFwKQEAgLTIw
MSw2ICsyMDMsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIFwKKwlXZWJQcm9jZXNzL1NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvV2ViUHJvY2VzcyBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAppbmRleCBjYjc4YmIyMmI2NzMyNzQ0NTFjYTNjY2RjNTZhNWVmZWY2Nzc1OTgwLi4x
NWM5NTc4OTRiNzBhNGRjNzRmYjhiOWFjOGFkYmUxYTdlM2NiMDM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAg
LTI5MSw2ICsyOTEsOCBAQCBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKIFVJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cAogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCitVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCiBVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5
LmNwcAogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcApAQCAtNjM3LDYgKzYz
OSw4IEBAIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5j
cHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4u
Y3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
U3RyZWFtLmNwcCBAbm8tdW5pZnkKIAorV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKKwogV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxl
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWFlOTk2MDVkNzc2ODkzYTlmYmU3NzhiMzhjMmM1ZGU3ZjA0NmI2ZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZp
Y2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
OjpnZW5lcmF0ZSgpLCBtYW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZp
Y2UpCisgICAgOiBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkg
fSwgU3RyaW5nIHsgY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9KQorICAgICwgbV9pZGVu
dGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikp
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxDQVJp
bmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIp
KSkKKyNlbmRpZgoreworICAgIG1fbWFuYWdlci0+YWRkU291cmNlKCp0aGlzLCBjYXB0dXJlRGV2
aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKK3sKKyAgICBpZiAo
bV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnJlbW92ZVNvdXJjZSgqdGhpcyk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFBy
b2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+
c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6U3RhcnQgeyBtX2lkZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYg
KG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVudGlmaWVyIH0p
OworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFu
ZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIG1fZGVzY3JpcHRpb24g
PSBkZXNjcmlwdGlvbjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1lbW9yeTsKKyAgICBp
ZiAoIWhhbmRsZS5pc051bGwoKSkgeworICAgICAgICBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1h
cChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBM
T0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3IgcmVtb3RlIHNvdXJj
ZSIpOworICAgIH0KKworICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAgICBpZiAoIW1lbW9y
eSkgeworICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKKyAgICAgICAgc3RvcmFn
ZS5zZXRSZWFkT25seShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShudWxscHRy
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShtZW1v
cnkucmVsZWFzZU5vbk51bGwoKSk7CisgICAgc3RvcmFnZS5zZXRSZWFkT25seSh0cnVlKTsKKyAg
ICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cisg
ICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlmCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVk
aWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1l
LCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoIW1f
YnVmZmVyKSB7CisgICAgICAgIExPR19FUlJPUigiQnVmZmVyIGZvciByZW1vdGUgc291cmNlIGlz
IG51bGwiKTsKKyAgICAgICAgY2FwdHVyZUZhaWxlZCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9idWZmZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJhbWVzKTsKKyAgICBt
X3JpbmdCdWZmZXItPnNldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7
CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChtX2J1ZmZlci0+bGlzdCgpLCBudW1iZXJPZkZyYW1l
cywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsICpt
X2J1ZmZlciwgbV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0odGltZSk7CisgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJhbWVzKTsKKyAgICBV
TlVTRURfUEFSQU0oc3RhcnRGcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKGVuZEZyYW1lKTsKKyNl
bmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVtb3RlQ2FwdHVyZUZhaWxlZCgpCit7CisgICAgY2FwdHVyZUZhaWxlZCgpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291
cmNlU3RvcHBlZCgpCit7CisgICAgc3RvcCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY3YmMwZDEzMWYyY2RiMTVmOTI1Y2UwOTAxOTU3ZWZhNGQ0NDBjYmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2
aWNlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgflNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOworCisgICAgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRTdG9yYWdlKGNv
bnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICB2b2lk
IHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9p
ZCByZW1vdGVDYXB0dXJlRmFpbGVkKCk7CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKCk7
CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYpOworCisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAg
IHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5n
RGF0YSgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9
CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KKworICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBXZWFrUHRyPFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fbWFuYWdlcjsKKyAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVz
OworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOwor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1
ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRp
b0J1ZmZlckxpc3Q+IG1fYnVmZmVyOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViNGM3NjM2ZGE4YTE2Y2M0Y2ZlYmE2MDcyYzA1YzNl
N2E5M2I5NDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtMCww
ICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5l
Y3Rpb24pKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UmIHNvdXJjZSwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVy
ZURldmljZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOwor
ICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJj
ZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VXZWFrUHRyKHNvdXJjZSkpOworCisjaWYgRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAoIW1f
aGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBoYW5kbGVGb3JUQ0NEOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRB
dWRpdFRva2VuKCksIGhhbmRsZUZvclRDQ0QpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgaGFuZGxlRm9yTWljcm9waG9uZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yR2VuZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25l
Il9zLCBoYW5kbGVGb3JNaWNyb3Bob25lKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6R3JhbnRTYW5kYm94RXh0ZW5z
aW9ucyhoYW5kbGVGb3JUQ0NELCBoYW5kbGVGb3JNaWNyb3Bob25lKSk7CisgICAgICAgIG1faGFz
R3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKworICAgIHNl
bmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OkNyZWF0ZVNvdXJjZShpZGVudGlmaWVyLCBjYXB0dXJlRGV2aWNlKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291
cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQor
eworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJU
KG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikgPT0gJnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJl
bW92ZShpZGVudGlmaWVyKTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkgJiYgbV9o
YXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tlU2FuZGJveEV4
dGVuc2lvbnMoKSk7CisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gZmFs
c2U7CisgICAgfQorI2VuZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpEZWxldGVTb3VyY2UoaWRlbnRpZmllcikpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZy
YW1lKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikp
CisgICAgICAgIHNvdXJjZS0+cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJl
ck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxl
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAg
IHNvdXJjZS0+cmVtb3RlQ2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAg
ICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBz
b3VyY2UtPnJlbW90ZVNvdXJjZVN0b3BwZWQoKTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsK
K30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVy
biAwOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAo
YXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2Ut
PnNldFN0b3JhZ2UoaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVz
KTsKK30KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMTQ2YTliMzYzMDIzOTdiMWI4NjRmZjRmYThhNzM2YTU1M2FlNjU4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2hh
cmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsKKworI2lmIFBMQVRGT1JNKENPQ09B
KQorY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworI2VuZGlmCit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIgZmluYWwgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB2b2lk
IGFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJik7CisKK3ByaXZhdGU6Cisg
ICAgLy8gTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpOworICAgIHZvaWQgcmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICB2b2lkIHNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNz
YWdlU2VuZGVyLgorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgp
IGNvbnN0IGZpbmFsOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwor
ICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYWtQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2Vz
OworICAgIGJvb2wgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDA3MTAzOThiYzdjMmM0NzA0NGIwM2U2NWQwYWNjODU4MGExZWZlYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNSBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgUmVtb3RlQXVkaW9TYW1wbGVzQXZh
aWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRG
cmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCisgICAgUmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFJlbW90ZVNv
dXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyNlbmRpZgorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcAppbmRleCA5ZjYwMGQzZjVjZGM2YzMyYzU0OGEwYTA5YWIwMmJjMTQ1MzQ1MjQ0
Li4yMzI4NGZiZmQ2YjQ4NTY4ZThmODYxY2Y0ZmYzMmMwMjljNjlkMzJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0z
NiwxMiArMzYsMjIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNr
ZXImJiBwZXJtaXNzaW9uQ2hlY2tlciwgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9u
JiYgZnVuY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAg
ICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9wZXJtaXNzaW9uQ2hlY2tlcihX
VEZNb3ZlKHBlcm1pc3Npb25DaGVja2VyKSkKKyAgICAsIG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNy
ZWF0ZUZ1bmN0aW9uKFdURk1vdmUoZnVuY3Rpb24pKQoreworfQorI2Vsc2UKIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24sIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyJiYgcGVybWlzc2lvbkNoZWNr
ZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9wZXJtaXNzaW9uQ2hlY2tlcihXVEZNb3ZlKHBl
cm1pc3Npb25DaGVja2VyKSkKIHsKIH0KKyNlbmRpZgogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGludW91
cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mJiBvcmlnaW4pCiB7CkBAIC05Miw2ICsxMDIsMTkgQEAgdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24KICAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKICAgICAgICAg
fSk7CiAgICAgfQorICAgIAorICAgIG1fcmVjb2duaXplci0+cmVzZXQoKTsKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gbV9yZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb24oKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpIHsKKyAgICAg
ICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHNlbmRVcGRh
dGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElk
ZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBzb3VyY2VPckVycm9yLmVycm9y
TWVzc2FnZSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9yZWNvZ25pemVyLT5z
dGFydChjbGllbnRJZGVudGlmaWVyLCBzb3VyY2VPckVycm9yLnNvdXJjZSgpKTsKKyAgICByZXR1
cm47CisjZW5kaWYKIAogICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaAppbmRleCBhN2Y3NmQzOGVlNTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li5lZDY3
MjY0YWExMzFlMWUxNDIxZWFhNDE0ZDQxNzEzYzY5NWQ4MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTM2LDYgKzM2LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU7CitzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CiBzdHJ1Y3QgQ2xpZW50T3Jp
Z2luOwogfQogCkBAIC01MCw3ICs1MSwxMiBAQCB1c2luZyBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25DaGVja2VyID0gRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpDbGllbnRPcgogY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVzaW5nIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
KCk+OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYs
IFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2hlY2tlciYmLCBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJik7Cisj
ZWxzZQogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYs
IFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2hlY2tlciYmKTsKKyNlbmRpZgogCiAgICAgdm9pZCBzdGFydChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBi
b29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0
aXZlcywgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYpOwogICAgIHZvaWQgc3RvcChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKQEAgLTc1LDYgKzgx
LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAgICBTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVh
bHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDk3N2U0ZWFmNjhkNzNlMDRkM2ZkYTA1OGI1NDMxNDM5OGUyYWU0MzMuLjNiOThkMmI1NTE4NmYw
ZGY1NTQwM2NjZjBkNzk1OWUzODBmZjA4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtODcsNiArODcsOCBAQAogI2luY2x1ZGUgIlNhZmVCcm93c2luZ1dh
cm5pbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRl
ICJTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5o
IgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTEwMzAxLDYgKzEwMzAzLDI2IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlE
ZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvCiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25NYW5hZ2VyLT5kZWNpZGVCeURlZmF1bHRBY3Rpb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitXZWJDb3JlOjpD
YXB0dXJlU291cmNlT3JFcnJvciBXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpCit7CisgICAgaWYgKHByZWZlcmVuY2VzKCkuY2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgeyAiTm90IGltcGxlbWVudGVkIGZvciBHUFUgcHJvY2VzcyIgfTsKKworICAgIGF1
dG8gY2FwdHVyZURldmljZSA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENh
cHR1cmVEZXZpY2UoKTsKKyAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisgICAgICAgIHJldHVybiBD
YXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJl
IiB9OworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
ZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisjZWxzZQorICAgIHJldHVybiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
KmNhcHR1cmVEZXZpY2UpOworI2VuZGlmCit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjMyZWQzN2JkMWJmOTMwYWFmOGY5OTg0MzZkNjMwNTQy
ZWE5MzA4NS4uZDk2ODMxM2RkZDJkNjNjZDBhNTg3NmNiYmRjYWE3NTIwZWE4Mzg3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE4MzMsNiArMTgzMywxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRl
TmV3R3JvdXBGb3JIaWdobGlnaHQpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFT
b3VyY2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2Vi
UGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU3ZDljZGZlNTUzNWMy
N2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLjYxOGUzY2VmN2UwMmMxMDdkNjM5MTYyODk0NmY3
ZTI3NGNlNTVkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJUZXh0Q2hl
Y2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTE3MDIsOCArMTcwNCw4
IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlByb2Nlc3NQcm94eTo6c2Vzc2lvbklEKCkgY29uc3QKIAog
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVj
aFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIGF1dG8gc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChp
ZGVudGlmaWVyLCBudWxscHRyKTsKLSAgICBBU1NFUlQoc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aXNOZXdFbnRyeSk7CisgICAgQVNTRVJUKCFtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNv
bnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRvJiBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9
IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIsIG51bGxwdHIpLml0
ZXJhdG9yLT52YWx1ZTsKICAgICBXZWJQYWdlUHJveHkqIHRhcmdldFBhZ2UgPSBudWxscHRyOwog
ICAgIGZvciAoYXV0byogcGFnZSA6IHBhZ2VzKCkpIHsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFn
ZS0+d2ViUGFnZUlEKCkgPT0gaWRlbnRpZmllcikgewpAQCAtMTcxNSwxNSArMTcxNywyMSBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJJZGVudAogICAgIGlmICghdGFyZ2V0UGFnZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFr
ZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwg
aWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9y
aWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICBzcGVlY2hSZWNv
Z25pdGlvblNlcnZlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VS
ZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRh
cmdldFBhZ2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghd2Vha1BhZ2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotICAgIH0pOwotICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgfQorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oKSB7
CisgICAgICAgIHJldHVybiB3ZWFrUGFnZSA/IHdlYWtQYWdlLT5jcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKSA6IENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlBh
Z2UgaXMgaW52YWxpZCIgfTsKKyAgICB9CisjZW5kaWYKKyAgICApOworICAgIGFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgaWRlbnRpZmllciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyKTsKIH0KIAogdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKQEAgLTE3MzMsNiArMTc0MSwy
MCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbgogICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNYXAucmVtb3ZlKGlkZW50aWZpZXIpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2Vi
UHJvY2Vzc1Byb3h5OjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcikgeworICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24o
KSkpOworICAgICAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgKm1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik7
CisgICAgfQorCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykK
IAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVsbHNj
cmVlbklucHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggYzEwYjM5NDhkNzc2NzYzNzE0ZDE2NDc5YjU5MzYyODJhNjk3MzNkYS4uYTExYTM5NGU3YWE4
YjNmYzkzZTg3OGEyZTAxOThjODllMWUyNzNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgc3RydWN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKIHN0cnVjdCBXZWJz
aXRlRGF0YTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGVudW0gRm9y
ZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyVHlwZSB7IH07CiB0eXBlZGVmIFJlZkNvdW50ZXI8Rm9y
ZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyVHlwZT4gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVy
OwogdHlwZWRlZiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI6OlRva2VuIEZvcmVncm91bmRX
ZWJQcm9jZXNzVG9rZW47CkBAIC0zOTQsNiArMzk4LDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
SVBDX1RFU1RJTkdfQVBJKQogICAgIHZvaWQgc2V0SWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0
aW5nKCk7CiAjZW5kaWYKKyAgICAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgog
CiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0
ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKQEAgLTY0Myw2ICs2NTEsOSBAQCBwcml2YXRlOgog
CiAgICAgdXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNwZWVjaFJl
Y29nbml0aW9uU2VydmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0
aW9uU2VydmVyPj47CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1hcDsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5p
cXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
PiBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cisj
ZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzRkNzk3ZmZiNjlkMDY2NzI2M2Qw
NGY0MzA5ZGVhMTlmY2JiYTAzMi4uYjU5ZTkyODU4NGJiZGVhYzQ3YTQxYzQwZGY5M2RjYzMzZjYx
OWQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xNDM1LDYgKzE0MzUsMTEgQEAKIAkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8q
IFdlYkhpdFRlc3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0E4OEIzMTFCQzZFOUMwMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3Vs
dERhdGEuaCAqLzsgfTsKIAkJOTNBODhCM0IxQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RS
ZXN1bHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5h
bC5oICovOyB9OwogCQk5M0E4OEI0NjFCQzg4MjkzMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhC
NDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLzsgfTsKKwkJOTNBQjlC
NEMyNTc1NjNGMzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJCTkzQUI5QjREMjU3NTY3REMwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0NTI1NzQ5MjhE
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oICovOyB9OworCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi87IH07CisJCTkzQUI5QjU1
MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
KwkJOTNBQjlCNTYyNTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk5M0IyNjE0RDIyN0QxNDlFMDBCOTdBNzYgLyogU3Rv
cmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQjI2MTQ5MjI3RDE0NzIwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oICovOyB9Owog
CQk5M0IyNjE0RTIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ1MjI3RDE0
NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovOyB9OwogCQk5M0IyNjE0RjIy
N0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NjIyN0QxNDcxMDBC
OTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggKi87IH07CkBAIC00NjA1LDYg
KzQ2MTAsMjAgQEAKIAkJOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1
bHRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODhCNDIx
QkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzQTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVz
dWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDMyNTc0
OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDUyNTc0OTI4
RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0OTI1
NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRCMjU3NEM2MUYwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0
RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTAyNTc1
ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTIyNTc1ODkxMjAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MzI1NzU4OTEyMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Iy
NjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlRGF0YWJhc2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMjYxNDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3Rv
cmFnZURhdGFiYXNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
b2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNCMjYxNDcyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODk5OSw2
ICs5MDE4LDE2IEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8qIFNwZWVjaCAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNBQjlCNEIyNTc0QzYxRjAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICov
LAorCQkJCTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDkyNTc0QzYxRTAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFNwZWVjaDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCTkzQjI2MTQzMjI3RDE0MzEwMEI5N0E3NiAvKiBXZWJTdG9yYWdlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkyMDMsNiArOTIzMiw3
IEBACiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEw
OTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAogCQkJCTFB
NkZCN0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAorCQkJCTkzQUI5QjQ4MjU3NEM1
Q0UwMDk4QjEwRSAvKiBTcGVlY2ggKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8q
IFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJDb250ZW50
ICovLAogCQkJCTU3NjA4MjhBMjAyOTg0QzkwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdGlvbiAq
LywKQEAgLTk0MTYsNiArOTQ0NiwxMSBAQAogCQkJCTkzRDZCN0IwMjU1MjY4QTEwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5M0Q2QjdC
MjI1NTI2OEEyMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5o
ICovLAogCQkJCTkzRDZCN0FGMjU1MjY4QTEwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmggKi8sCisJCQkJOTNBQjlCNDMyNTc0OTI4QzAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJOTNB
QjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oICovLAorCQkJCTkzQUI5QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5
M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovLAogCQkJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAgKi8sCiAJCQkJOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyLmggKi8sCiAJCQkJOTNENkI3N0EyNTRDOTg0RDAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluICovLApAQCAtMTA1NzIsNiArMTA2
MDcsMTIgQEAKIAkJCQkxREQyQTY3MjI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUREMkE2NzMyNTYyMzI0RjAw
RkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oICovLAogCQkJCTFE
RDJBNjcxMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZXNSZXBsaWVzLmggKi8sCisJCQkJOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MDI1NzU4OTEx
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQk5M0FCOUI1MzI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJ
OTNBQjlCNTIyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk5M0Q2Qjc4MTI1
NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzLmggKi8sCiAJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMTY0MSw2ICsx
MTY4Miw5IEBACiAJCQkJNTdGRDMxODUyMkIzNTE2OTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlv
blNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I1MjU1MjY4RDcwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0Q2QjdCNDI1NTI2OEQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEMyNTc1NjNGMzAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjREMjU3
NTY3REMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzg0
MjU0Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTM0MTMsNiAr
MTM0NTcsOCBAQAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1
dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMx
NUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUREMkE2NzQyNTYyMzJBMTAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNB
QjlCNTUyNTc1QTI3NjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBQjlC
NTYyNTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNE
NkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAv
KiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzY4RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGZmNDQ4YmVmODk0MWFjNDk1
YmUwOGVmNTNiZmFjMWI4MDY2ZWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcApAQCAtMCwwICsxLDI1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNlbHNlCisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUF1ZGlvRGF0YS5oPgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlCisgICAgOiBwcml2YXRlIFJlYWx0
aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIHB1Ymxp
YyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisjZW5kaWYKK3sKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNl
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAg
ICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkp
CisjZW5kaWYKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7Cisg
ICAgICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisK
KyAgICB+U291cmNlKCkKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0b3Jh
Z2UoKS5pbnZhbGlkYXRlKCk7CisjZW5kaWYKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlv
U2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIo
KnRoaXMpOworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3Vy
Y2UtPnN0YXJ0KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1f
c291cmNlLT5zdG9wKCk7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7
CisgICAgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmlu
YWwKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgeworICAg
ICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRl
bnRpZmllciksIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAw
KTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRp
bWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZp
bmFsCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlwdGlv
biAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRm
b3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJl
YW1CYXNpY1R5cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2Ny
aXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0g
bV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVy
LmFsbG9jYXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZy
YW1lcyk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0
PihhdWRpb0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1
ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRp
bWVWYWx1ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0
X3QgZW5kRnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMo
c3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJl
bW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJh
bWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BB
UkFNKHRpbWUpOworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsKKyAgICAgICAgVU5V
U0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJh
bWVzKTsKKyNlbmRpZgorICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisgICAgdm9pZCBz
dG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsCisgICAgeworICAgICAg
ICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChzdG9yYWdlKQorICAg
ICAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhXSU5ET1dTKQorICAgICAg
ICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxzZQorICAgICAgICB1aW50
NjRfdCBkYXRhU2l6ZSA9IDA7CisjZW5kaWYKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpTZXRTdG9yYWdlKG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZN
b3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9LCBtX2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJhbWVz
KSwgMCk7CisgICAgfQorCisjZW5kaWYKKworICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkg
ZmluYWwKKyAgICB7CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgICAgIGF1dG8gYnVmZmVy
U2l6ZSA9IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOwor
ICAgICAgICBpZiAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVy
U2l6ZSgpID4gYnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7CisgICAgICAgIEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6UGxheUFu
ZFJlY29yZCwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyNlbmRpZgorICAgIH0KKwor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOworICAgIHVpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyNlbmRpZgorfTsKKwor
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgKnRoaXMpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjp+U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigp
Cit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0
aGlzKTsKK30KKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5z
aW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7Cisg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShX
VEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JUQ0NEKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNp
b25Gb3JUQ0NEKQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBl
eHRlbnNpb24gZm9yIHRjY2QiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lv
bkZvclRDQ0QtPmNvbnN1bWUoKTsKKworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhv
bmUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWlj
cm9waG9uZSkpOworICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAg
ICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBt
aWNyb3Bob25lIik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNy
b3Bob25lLT5jb25zdW1lKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmICht
X3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZv
clRDQ0QtPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVs
bHB0cjsKKyAgICB9CisKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkg
eworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAg
ICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQor
fQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpjcmVhdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAgIGF1dG8gcmVzdWx0ID0g
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNl
KGRldmljZSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0
dXJlRmFpbGVkKGlkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMu
YWRkKGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8U291cmNlPihpZGVudGlmaWVyLCByZXN1bHQuc291
cmNlKCksIG1ha2VSZWYoKm1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkpKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6ZGVsZXRlU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zb3Vy
Y2VzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRl
bnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RhcnQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3Vy
Y2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6
Q29ubmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rp
b24ucHRyKCk7Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZDQ1YzRiOTUwN2Y1MDBjMjdjMzliZDFiOTAyOWM0OGE2ZjhhZjY3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1l
c3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJT
YW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNl
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVz
c2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB+
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworCitwcml2YXRl
OgorICAgIC8vIE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyCisgICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIGRl
bGV0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyNpZiBF
TkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5zaW9u
cyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYp
OworICAgIHZvaWQgcmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKTsKKyNlbmRpZgorCisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29u
c3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKworICAg
IGNsYXNzIFNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgU291cmNlOworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb3Vy
Y2U+PiBtX3NvdXJjZXM7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIFJl
ZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEOworICAgIFJl
ZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lOwor
I2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MmRmMWQ4ZTU5ZjBhOGY2ODAxZTI2NDZhODdmMGQ3NTBk
NjYxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDM4IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBDcmVhdGVTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgRGVsZXRlU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgU3RhcnQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisgICAgU3RvcChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9y
VENDRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhh
bmRsZUZvck1pY3JvcGhvbmUpCisgICAgUmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorI2VuZGlm
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcAppbmRleCAzZjM1MzE5NGEzMmMzZTY3OWJjYTI5ZmJlYTg1MDMxYzkyMWU0ZmM0Li5l
MGQyYTU5ODU1NWI5ODk3ODU4NThhYjZjNjRhNzU0YWZkYTExMDkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsMTAgQEAg
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24oU3BlZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0aGlzKTsKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KG1faWRlbnRpZmllciksIDApOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIH0KIAogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBjM2ZhODFlZGMwMGViNjkyNzczY2M3M2Y5ZjRhYWRj
Y2UxZGNjMTMyLi44NDc0OTU2YjM2YjA1NGQ3MWVhZTU1ZDFhOGNmMWM3OGQ5ZDdiZGM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAj
aW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RN
RmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5o
IgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKQEAgLTE5ODAsNiArMTk4
MSwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmVuYWJsZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzOjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpKSk7CisKKyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVm
IFJFTEVBU0VfTE9HX1NFU1NJT05fSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CmluZGV4IGU5YzQ3ZGI0YzQ0N2MwZjRhYjYyN2MwOTRiNWY2OGRiNTY1YTlhNmMuLjdlNWE0Y2Fh
NGM1ZDJlMjM3ODgxM2ViNGYyZjQyMjhiZGU0Y2M1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaApAQCAtMTQyLDYgKzE0MiwxMCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGls
aWFyeVByb2Nlc3MKIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM2MCw2ICsz
NjQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hyb25v
dXNseShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
KCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nl
c3MoKTsKQEAgLTY5Myw2ICs3MDEsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdnA5RGVjb2Rl
ckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV92cDlTV0RlY29kZXJFbmFibGVkIHsgZmFs
c2UgfTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9zcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjOGMwMzFlYjMxZmZjNjFhNjU3NGI4MThiYzg3
OGQ4ZDEwNzljNmY3Li41YjdmMGUxMzRkY2RlMDVkNjI3ODI5YmU4NzZhNDcxYzNiNGY5NjUzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMTItMDcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJl
Y29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVy
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24v
aW9zL2F1ZGlvLWNhcHR1cmUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdr
Mi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTEyLTA3ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY2hhbm5lbG1lcmdlcm5vZGUtaW50
ZXJmYWNlL2FjdGl2ZS1wcm9jZXNzaW5nLmh0dHBzLmh0bWwgaXMgZmxha3kgZmFpbGluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNDI3ODRkMjQ4YTA1YWZiZjg1NjQ2YmJhYjQxY2M5YzY0ODQ1NmVj
Mi4uNDExMDMzOWIyZTQ4ZjhmYWI4Yzk1OGRlYzY5MGM2MjkxNzFmZWZmMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0xODEsNiArMTgxLDcgQEAgaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2
YWN5LyBbIFNraXAgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9uLWVycm9yLmh0
bWwgWyBTa2lwIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhl
bi1zdG9wLmh0bWwgWyBTa2lwIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25k
LXJlY29nbml0aW9uLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zLyBb
IFNraXAgXQogCiAjIE9ubHkgcGFydGlhbCBzdXBwb3J0IG9uIENvY29hIHBsYXRmb3Jtcy4KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS8gWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1
cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3Mv
YXVkaW8tY2FwdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY4MzJhMTdjZmNmM2I4YWQy
ZGY4MDJkYTVlNzJjM2VkMDQwMmE1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1cmUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKK1ZlcmlmeSB0aGF0IGF1ZGlvIGNhcHR1cmUgb24gaU9TIGhhcHBlbnMgaW4g
d2ViIHByb2Nlc3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29n
bml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUmVj
ZWl2ZWQgc3RhcnQgZXZlbnQKK1JlY2VpdmVkIGF1ZGlvc3RhcnQgZXZlbnQKK1BBU1MgaW50ZXJu
YWxzLmF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgaXMgIlBsYXlBbmRSZWNvcmQiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU4ZTUwOWMyOTEwYTYyMDY3NzU3ZjU3MTA3OTkxMTBhOWFiOGJmZDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9h
dWRpby1jYXB0dXJlLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgYXVkaW8gY2FwdHVy
ZSBvbiBpT1MgaGFwcGVucyBpbiB3ZWIgcHJvY2Vzcy4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cit9CisKK3Nob3VsZE5vdFRocm93KCJy
ZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworcmVjb2duaXRpb24ub25z
dGFydCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBzdGFydCBldmVudCIpOwor
fQorCityZWNvZ25pdGlvbi5vbmF1ZGlvc3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1Zygi
UmVjZWl2ZWQgYXVkaW9zdGFydCBldmVudCIpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJpbnRlcm5hbHMuYXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSIsICJQbGF5QW5kUmVjb3JkIik7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdGFy
dCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA5NmU2NmIxNWIxOWRmMGU1YjUwZGFkYWYyYjI5MmU4OTcxMGQ2MDJiLi5hOWE5NDFh
OTIzYjE0MGRmNzJjYzQ5ZTIwODU3NWJjMzE2MDQxZGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNyw2ICsxNyw3IEBAIGNvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC5odG1sIFsgUGFzcyBdCiBmYXN0L2RldmljZS1vcmllbnRh
dGlvbiBbIFBhc3MgXQogZmFzdC9oaXN0b3J5L2lvcyBbIFBhc3MgXQogZmFzdC9zY3JvbGxpbmcv
aW9zIFsgUGFzcyBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcyBbIFBhc3MgXQogZmFzdC92
aWV3cG9ydC9pb3MgWyBQYXNzIF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBQYXNzIF0K
IHNjcm9sbGluZ2Nvb3JkaW5hdG9yIFsgUGFzcyBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415693</attachid>
            <date>2020-12-08 17:21:38 -0800</date>
            <delta_ts>2020-12-08 22:47:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219371-20201208172137.patch</filename>
            <type>text/plain</type>
            <size>90759</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJiYjZiMGNkZmFhZmYy
YjY2N2U0NzQ3Y2UzYzA3Y2RhMWE2NGI3NS4uZjY0ZmUwNzhiMzE2YjA4YTljNjNjMGM4MTlkY2Rm
YzVlOWJjM2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTEyLTA4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAg
ICAgICBBZGQgYSB3YXkgdG8gc2V0IFJlYWx0aW1lTWVkaWFTb3VyY2UgbWVtYmVyIG9mIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuCisKKyAgICAgICAgVGVzdDogZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS5odG1sCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpyZXNldCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzZXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMi0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29uY3VycmVudCBEaXNwbGF5IExpc3RzXSBB
ZGQgYSB3YXkgZm9yIGRpc3BsYXkgbGlzdCBjbGllbnRzIHRvIGdldCBtaXNzaW5nIGNhY2hlZCBy
ZXNvdXJjZSBpZGVudGlmaWVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyZGJiMzU1YTFjNGIyNDc4ZmFkZGZjYjk3
MjljMWI3NTNjNjNkYzAzLi40MGNjNDQ3ZmU1NWNjNzMxNDY5OGM3YmY1MjJlMTgyMmJiNDU4NzA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIwLTEyLTA4ICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBT
cGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4MjQwNDk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBPbiBpT1Ms
IGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJvY2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25p
dGlvbiwgcmVjb2duaXplciBpcyBpbiBVSSBwcm9jZXNzLiBUaGVyZWZvcmUsCisgICAgICAgIFVJ
IHByb2Nlc3MgbmVlZHMgdG8gYXNrIHdlYiBwcm9jZXNzIHRvIGNhcHR1cmUgYXVkaW8gYW5kIHNl
bmQgYmFjayBkYXRhLiBUbyBpbXBsZW1lbnQgdGhpcywgdGhpcyBwYXRjaCBhZGRlZDoKKyAgICAg
ICAgLSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6IHN1YmNsYXNz
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgYW5kIGNvbm5lY3QgdG8gYSByZW1vdGUgCisg
ICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgKG93bmVkIGJ5IFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZSkgaW4gd2ViIHByb2Nlc3Mu
CisgICAgICAgIC0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjogbWFuYWdlIGFsbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcy4KKyAgICAgICAgLSBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS4KKyAgICAgICAgLSBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6IG93biBhbmQg
bW9uaXRvciBhIGxvY2FsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UuCisKKyAgICAgICAg
VGhpcyBzdHJ1Y3R1cmUgaXMgdmVyeSBzaW1pbGFyIHRvIGhvdyB3ZSBpbXBsZW1lbnQgbWVkaWEg
Y2FwdHVyZSBvbiBtYWNPUyAoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSwgCisgICAgICAgIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIGFuZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KSwg
d2hlcmUgd2Ugc2VuZCBkYXRhIGZyb20gVUkgcHJvY2VzcyB0byB3ZWIgcHJvY2VzcworICAgICAg
ICBpbnN0ZWFkLiBXZSBzaG91bGQgdW5pZnkgdGhlIGFyY2hpdGVjdHVyZSBpZiBwb3NzaWJsZS4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjptX3JpbmdCdWZm
ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNl
dFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3Rl
Q2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3RvcHBlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Rl
Q2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpj
cmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6On5Tb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpTb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjpz
dG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNp
b25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6Y3JlYXRlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6ZGVsZXRlU291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3Rh
cnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCBjb25zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaDoKKwogMjAyMC0xMi0wOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBEZW55IG1hY2gtbG9va3VwIHRvIHRoZSBzZXJ2
aWNlICdjb20uYXBwbGUuYXNzZXJ0aW9uZC5wcm9jZXNzYXNzZXJ0aW9uY29ubmVjdGlvbicgaW4g
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYjFmNTRmNjFjMmEz
ZGI5ZjFkZTE0ZjJkZWVjYzlkOTdmNDE4YWM4MS4uODI1NjI5OGZiOWZhNmQwNzAwZWNlZGM5YjFk
OGJiMzk4YmQwZTAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMzQzLDYgKzEzNDMsNyBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCiAgICAgcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorICAgIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAogICAgIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oCiAgICAgcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYzkzYjZmMzhiYzYyMzhkYTFkYmE4NjhlMjllMWU1YjFl
NmY2NmI2Yi4uZDdlY2U2NTlmMDg5MjlkZmJjNzdjMTcxMWE5NDRjN2MxMTVlNjE0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNCw5ICszNCwxMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBT
dGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaykKLXsKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCitPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKK3sKICAgICBPcHRpb25hbDxDYXB0
dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlOwogICAgIGF1dG8gZGV2aWNlcyA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKICAgICBmb3IgKGF1dG8gZGV2
aWNlIDogZGV2aWNlcykgewpAQCAtNTEsMjYgKzUyLDE5IEBAIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0
aW9uCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKyAgICByZXR1cm4gY2Fw
dHVyZURldmljZTsKK30KIAotICAgIGlmICghY2FwdHVyZURldmljZSkgewotICAgICAgICBhdXRv
IGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9
OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNhcHR1cmVE
ZXZpY2UpCit7CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVy
ZURldmljZSwgeyB9LCB7IH0pOworfQogCi0gICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7Ci0gICAgaWYgKCFyZXN1
bHQpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCByZXN1bHQuZXJyb3JNZXNzYWdl
IH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9CitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
IGNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRh
dGVDYWxsYmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2ssIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiYmIHNvdXJjZSkKKyAgICA6IG1faW1wbChtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwg
V1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShzb3VyY2UpKSkKK3sKK30KIAot
ICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRl
VXBkYXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0oY2xpZW50SWRlbnRpZmllcik7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGFDYWxsYmFjayk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHN0YXRlVXBkYXRlQ2FsbGJhY2spOwogI2VuZGlmCi19CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKaW5kZXggNzM4NmNl
ZWUyNzQwN2NjNjEwNGUyOWVkNzNkZTdkYTBhNDlmNGUwYS4uNjlmOWE4OGIyNjFlNzFmNjZlYzAw
YmI5ZTcxZGEwZjNhYzgxOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKQEAgLTQy
LDEwICs0MiwxNiBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKIGNsYXNzIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0
OwogICAgIH5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAg
dXNpbmcgRGF0YUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBXVEY6Ok1lZGlhVGltZSYs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHNpemVfdCk+OwogICAgIHVzaW5nIFN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lk
KGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OwotICAgIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmKTsKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0
ZVVwZGF0ZUNhbGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZmluZENh
cHR1cmVEZXZpY2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJik7Cisj
ZW5kaWYKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAppbmRleCA1YmVi
NjA1NjQ3YjMyOWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li5mOTE2ZDJiYTRkMjgwZjc1ODYx
MmI1N2NjMTIxOTRmOWI0ZDNiNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtNTAsMTkgKzUwLDIzIEBAIHZvaWQgU3Bl
ZWNoUmVjb2duaXplcjo6cmVzZXQoKQogCiAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIg
cmVxdWVzdCBpcyBzdGFydGVkIiB9OwogICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsK
KworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IFdURjo6bnVsbG9wdDsKIH0KIAotdm9pZCBTcGVl
Y2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwordm9pZCBTcGVl
Y2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKIHsK
LSAgICByZXNldCgpOworICAgIEFTU0VSVCghbV9zb3VyY2UpOwogCiAgICAgbV9jbGllbnRJZGVu
dGlmaWVyID0gaWRlbnRpZmllcjsKICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlN0YXJ0KSk7CiAKLSAgICBzdGFydEludGVybmFsKCk7CisgICAgc2V0U291
cmNlKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLXZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJ
bnRlcm5hbCgpCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnNldFNvdXJjZShSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiB7CiAgICAgYXV0byBkYXRhQ2FsbGJhY2sgPSBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29uc3QgYXV0byYgdGltZSwgY29uc3QgYXV0byYgZGF0
YSwgY29uc3QgYXV0byYgZGVzY3JpcHRpb24sIGF1dG8gc2FtcGxlQ291bnQpIHsKICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKQEAgLTkwLDkgKzk0LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6
c3RhcnRJbnRlcm5hbCgpCiAgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CiAgICAgfTsK
IAotICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShz
dGF0ZVVwZGF0ZUNhbGxiYWNrKSk7CisgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRh
Q2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkp
OwogfQogCisjZW5kaWYKKwogdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVy
YXRlRmluYWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCkKIHsKICAgICBpZiAoIW1f
Y2xpZW50SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuaAppbmRleCBlNmYxM2ZlZTg0YTUzM2FmMGYwNGUwNzY5YzFhZTA5NWJl
NWJmZjNmLi5lYzVhYzEzMGI4YTA0NzdkYTkxZmQxZTFlN2ZjMmM3MGE0YTMyNjNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0z
OSwxNyArMzksMjIgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVj
aFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+U3Bl
ZWNoUmVjb2duaXplcigpID0gZGVmYXVsdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Rh
cnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiYmKTsKKyNlbmRpZgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXQoKTsKICAgICBl
bnVtIGNsYXNzIFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgeyBObywgWWVzIH07CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPSBTaG91bGRH
ZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpOwogCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lk
IHJlc2V0KCk7Ci0gICAgdm9pZCBzdGFydEludGVybmFsKCk7CiAgICAgdm9pZCBzdG9wSW50ZXJu
YWwoKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBzZXRTb3VyY2UoUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworI2VuZGlmCisKICAgICBPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7
CiAgICAgRGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGFh
ZWM1NzU0OTcxOGVkNTE2ZDk3NjljMDJkY2RhMjg3YzNkNDcyZi4uYzA0ZmM5YmFmMmZkMDM4MDNk
ODcyN2E4ODU4ZTdhNDllMWMwMDhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2NjEsMTMgKzIzNjYxLDYgQEAKIAkJCXBh
dGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTkzRjZCODBF
MjU2NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkpOwotCQkJcGF0aCA9IGNvY29hOwotCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKLQkJfTsKIAkJOTQ2RDM3MjcxRDZDQjIyNTAwNzcwODRGIC8qIHBhcnNlciAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNTY5OCw3ICsyNTY5
MSw2IEBACiAJCUFBMkE1QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTkzRjZCODBFMjU2NkVERTEwMEEw
ODQ4OCAvKiBjb2NvYSAqLywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2lu
ZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1
IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQjkxNkE0ODVE
NTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQKaW5kZXggYmUwODY1MTMyYmY0NTZlMzU1YmViMzFiNmRjNDY2M2JkMmQyNDNjNS4uMDZiZTc2
MTVmNDdjYmRmOTIyMmRkZTNmYjVhZWU4ZDg2NjAyZjI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBA
IC0xMDMsNiArMTAzLDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TcGVlY2giCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TdG9yYWdlIgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvVXNlckNvbnRlbnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydCIKQEAgLTE4Nyw2ICsxODgsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5CisgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKICAgICBVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZQogICAgIFVJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkKQEAgLTI1OCw2ICsyNjAsOCBAQCBzZXQoV2ViS2l0
X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcgogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eQogCisg
ICAgV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcgorCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbgog
ICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMjY3
Y2RkMjk0M2UxNDZmMDVjYzhlN2MzMTAyMjM5ZGJmNmJlM2I1Ny4uNGM2M2MyODczMDU5NmUzZjBk
ZjJkNzFkOWM3ZmViMGIyZDZhMTJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTA4LDYgKzEwOCw3IEBAICQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFn
ZXJQcm94CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbgorJChQ
Uk9KRUNUX0RJUikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLm1lc3NhZ2VzLmlu
CkBAIC0xNjUsNiArMTY2LDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA2MGQ0NDMwMjZm
MzZkNDkzYWNiNjI3OWQ4ZjdhMGMzMWVhMmI0NjI5Li45MThiMDJhODExOTYwYjkyZWU1NzE4MmVm
MzM4NTAyMzQxY2MxOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKQEAgLTI3Miw2ICsyNzIsMTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3Nh
Z2UKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNl
QnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggMzU4Zjc0YmJkMzI1MTY0ZDI5NTc2MjAxMjdlNGE2MDJkOTJkN2E1Ni4uM2Y5NTZlNjQ2
MTA5YjhmN2ZiNzg5MTkzYjc3MWM4NWVjOWE5MGE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtNjksNiArNjksNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvT3JpZ2luRGF0YSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKKwkkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvU3BlZWNoIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50IFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24gXApAQCAtMTY3LDYgKzE2OCw3IEBAIE1FU1NBR0VfUkVD
RUlWRVJTID0gXAogCVVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbCBcCiAJVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5IFwKIAlVSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eSBcCisJVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgXAogCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlciBcCiAJV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlciBcCiAJV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gXApAQCAtMjAx
LDYgKzIwMyw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvV2ViUlRDUmVzb2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXAorCVdlYlByb2Nlc3MvU3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgXAogCVdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9XZWJQcm9jZXNzIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CmluZGV4IGNiNzhiYjIyYjY3MzI3NDQ1MWNhM2NjZGM1NmE1ZWZlZjY3NzU5ODAuLjE1
Yzk1Nzg5NGI3MGE0ZGM3NGZiOGI5YWM4YWRiZTFhN2UzY2IwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAt
MjkxLDYgKzI5MSw4IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9jZXNz
L1Byb2Nlc3NUaHJvdHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3Bw
CiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCitVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHku
Y3BwCiBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCkBAIC02MzcsNiArNjM5
LDggQEAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNw
cCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5j
cHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5T
dHJlYW0uY3BwIEBuby11bmlmeQogCitXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYWU5OTYwNWQ3NzY4OTNhOWZiZTc3OGIzOGMyYzVkZTdmMDQ2YjZkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcApAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZS5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmlj
ZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6
OmdlbmVyYXRlKCksIG1hbmFnZXIsIGNhcHR1cmVEZXZpY2UpKTsKK30KKworU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmlj
ZSkKKyAgICA6IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UubGFiZWwoKSB9
LCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0pCisgICAgLCBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPENBUmlu
Z0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0cikp
KQorI2VuZGlmCit7CisgICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNhcHR1cmVEZXZp
Y2UpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQoreworICAgIGlmICht
X21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlzKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJv
ZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5z
ZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpTdGFydCB7IG1faWRlbnRpZmllciB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAo
bV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0b3AgeyBtX2lkZW50aWZpZXIgfSk7
Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5k
bGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgbV9kZXNjcmlwdGlvbiA9
IGRlc2NyaXB0aW9uOworCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5OworICAgIGlm
ICghaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFw
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IGZvciByZW1vdGUgc291cmNl
Iik7CisgICAgfQorCisgICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOworICAgIGlmICghbWVtb3J5
KSB7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOworICAgICAgICBzdG9yYWdl
LnNldFJlYWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG51bGxwdHIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9y
eS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBzdG9yYWdlLnNldFJlYWRPbmx5KHRydWUpOworICAg
IG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAg
ICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwg
bnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRp
YVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUs
IHVpbnQ2NF90IGVuZEZyYW1lKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9i
dWZmZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJCdWZmZXIgZm9yIHJlbW90ZSBzb3VyY2UgaXMg
bnVsbCIpOworICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1f
cmluZ0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsK
KyAgICBtX3JpbmdCdWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVz
LCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1f
YnVmZmVyLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTSh0aW1lKTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworICAgIFVO
VVNFRF9QQVJBTShzdGFydEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZW5kRnJhbWUpOworI2Vu
ZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpyZW1vdGVDYXB0dXJlRmFpbGVkKCkKK3sKKyAgICBjYXB0dXJlRmFpbGVkKCk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3Vy
Y2VTdG9wcGVkKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjdiYzBkMTMxZjJjZGIxNWY5MjVjZTA5MDE5NTdlZmE0ZDQ0MGNiZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZp
Y2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB+U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoY29u
c3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKworICAgIHZvaWQg
cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lk
IHJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsK
KworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJik7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCisgICAg
dm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdE
YXRhKCkgZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0K
KyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdz
KCkgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQorCisgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8U3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9tYW5hZ2VyOworICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7
CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24gbV9kZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVm
ZmVyPiBtX3JpbmdCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlv
QnVmZmVyTGlzdD4gbV9idWZmZXI7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI0Yzc2MzZkYThhMTZjYzRjZmViYTYwNzJjMDVjM2U3
YTkzYjk0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAg
KzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVj
dGlvbikpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZSYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJl
RGV2aWNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7Cisg
ICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNl
cy5hZGQoaWRlbnRpZmllciwgbWFrZVdlYWtQdHIoc291cmNlKSk7CisKKyNpZiBFTkFCTEUoU0FO
REJPWF9FWFRFTlNJT05TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIGlmICghbV9o
YXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIGhhbmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX2Nvbm5lY3Rpb24tPmdldEF1
ZGl0VG9rZW4oKSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBoYW5kbGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhvbmUi
X3MsIGhhbmRsZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpHcmFudFNhbmRib3hFeHRlbnNp
b25zKGhhbmRsZUZvclRDQ0QsIGhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyAgICAgICAgbV9oYXNH
cmFudGVkU2FuZGJveEV4dGVuc2lvbnMgPSB0cnVlOworICAgIH0KKyNlbmRpZgorCisgICAgc2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
Q3JlYXRlU291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3Vy
Y2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7
CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQo
bV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAgICBtX3NvdXJjZXMucmVt
b3ZlKGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykgJiYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAobV9zb3VyY2VzLmlzRW1wdHkoKSAmJiBtX2hh
c0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZXZva2VTYW5kYm94RXh0
ZW5zaW9ucygpKTsKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgPSBmYWxz
ZTsKKyAgICB9CisjZW5kaWYKKworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkRlbGV0ZVNvdXJjZShpZGVudGlmaWVyKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVy
T2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVk
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAg
c291cmNlLT5yZW1vdGVDYXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291cmNlU3RvcHBlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOwor
fQorCit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IDA7Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIGlmIChh
dXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+
c2V0U3RvcmFnZShpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OworfQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIxNDZhOWIzNjMwMjM5N2IxYjg2NGZmNGZhOGE3MzZhNTUzYWU2NTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFy
ZWRNZW1vcnkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworCisjaWYgUExBVEZPUk0oQ09DT0Ep
CitjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciBmaW5hbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2Vp
dmVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIHZvaWQg
YWRkU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcgorICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFt
ZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IHZvaWQgc2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
Y29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKworICAg
IC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
Y29uc3QgZmluYWw7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cisg
ICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2Vha1B0
cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+PiBtX3NvdXJjZXM7
CisgICAgYm9vbCBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyB7IGZhbHNlIH07Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMDcxMDM5OGJjN2MyYzQ3MDQ0YjAzZTY1ZDBhY2M4NTgwYTFlZmVhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM1IEBACisj
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBSZW1vdGVBdWRpb1NhbXBsZXNBdmFp
bGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
TWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICBSZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgUmVtb3RlU291
cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24gZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorI2VuZGlmCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwCmluZGV4IDlmNjAwZDNmNWNkYzZjMzJjNTQ4YTBhMDlhYjAyYmMxNDUzNDUyNDQu
LmQ2ZmE4OWM1NDgzMjYyYzEwMWEyNmQwMzAzMjM1NTcyMDZiMTJmNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTM2
LDEyICszNiwyMiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCitTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tl
ciYmIHBlcm1pc3Npb25DaGVja2VyLCBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24m
JiBmdW5jdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAg
ICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX3Blcm1pc3Npb25DaGVja2VyKFdU
Rk1vdmUocGVybWlzc2lvbkNoZWNrZXIpKQorICAgICwgbV9yZWFsdGltZU1lZGlhU291cmNlQ3Jl
YXRlRnVuY3Rpb24oV1RGTW92ZShmdW5jdGlvbikpCit7Cit9CisjZWxzZQogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXImJiBwZXJtaXNzaW9uQ2hlY2tl
cikKICAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICwgbV9pZGVu
dGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX3Blcm1pc3Npb25DaGVja2VyKFdURk1vdmUocGVy
bWlzc2lvbkNoZWNrZXIpKQogewogfQorI2VuZGlmCiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3RyaW5nJiYgbGFuZywgYm9vbCBjb250aW51b3Vz
LCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMsIFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYmIG9yaWdpbikKIHsKQEAgLTkyLDggKzEwMiwyMSBAQCB2b2lkIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbgogICAgICAgICAgICAgc2VuZFVwZGF0ZSh1cGRhdGUpOwogICAgICAgICB9
KTsKICAgICB9Ci0KLSAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwor
ICAgIAorICAgIG1fcmVjb2duaXplci0+cmVzZXQoKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb24oKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpIHsKKyAgICAgICAgbV9yZXF1ZXN0
cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHNlbmRVcGRhdGUoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSB9KSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJ
ZGVudGlmaWVyLCBzb3VyY2VPckVycm9yLnNvdXJjZSgpKTsKKyNlbHNlCisgICAgbV9yZXF1ZXN0
cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlm
aWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGU6OkF1ZGlvQ2FwdHVyZSwgIkF1ZGlvIGNhcHR1cmUgaXMgbm90IGltcGxlbWVudGVkIn0p
OworI2VuZGlmCiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmgKaW5kZXggYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNy4u
ZWQ2NzI2NGFhMTMxZTFlMTQyMWVhYTQxNGQ0MTcxM2M2OTVkODMyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0zNiw2ICsz
Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGVudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOworc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOwogc3RydWN0IENsaWVu
dE9yaWdpbjsKIH0KIApAQCAtNTAsNyArNTEsMTIgQEAgdXNpbmcgU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uQ2hlY2tlciA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3IK
IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2
YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB1c2luZyBSZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb24gPSBGdW5jdGlvbjxXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JF
cnJvcigpPjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9u
PiYmLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbkNoZWNrZXImJiwgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYp
OworI2Vsc2UKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9u
PiYmLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbkNoZWNrZXImJik7CisjZW5kaWYKIAogICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3RyaW5nJiYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMsIFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmKTsKICAgICB2b2lkIHN0b3AoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CkBAIC03NSw2
ICs4MSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBt
X3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBhYjg3ZDAwZDc5Y2EyZTcyMmMzOGJhNzk0NTQ3YTk2ZmEzYmI5ZmQ3Li5jYzJkOWFiMmZi
ZGE0ZmIxZGRkZTBjY2EzNzdiMzlhNTZkNTk2NDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg3LDYgKzg3LDggQEAKICNpbmNsdWRlICJTYWZlQnJvd3Np
bmdXYXJuaW5nLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC0xMDMwMSw2ICsxMDMwMywy
NiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDbwogICAgIG1fc3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uTWFuYWdlci0+ZGVjaWRlQnlEZWZhdWx0QWN0aW9uKG9yaWdpbiwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgV2ViUGFnZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGlmIChwcmVmZXJlbmNlcygpLmNh
cHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIENhcHR1cmVT
b3VyY2VPckVycm9yIHsgIk5vdCBpbXBsZW1lbnRlZCBmb3IgR1BVIHByb2Nlc3MiIH07CisKKyAg
ICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZp
bmRDYXB0dXJlRGV2aWNlKCk7CisgICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICByZXR1
cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2Fw
dHVyZSIgfTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgcmV0dXJuIENhcHR1cmVT
b3VyY2VPckVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjcmVhdGUobV9wcm9jZXNzLT5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlKSB9OworI2Vsc2UKKyAgICByZXR1
cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyNlbmRpZgorfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDIzMmVkMzdiZDFiZjkzMGFhZjhmOTk4NDM2ZDYz
MDU0MmVhOTMwODUuLmQ5NjgzMTNkZGQyZDYzY2QwYTU4NzZjYmJkY2FhNzUyMGVhODM4NzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xODMzLDYgKzE4MzMsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENy
ZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1l
ZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlN2Q5Y2RmZTU1
MzVjMjdjNDUwNGYwMTBhNmVkZjhlNGM1ZTNjYTZhLi5hZGVlNWZiOWU3YmJkODhjMDg4ZTY5ZWY0
ZTU1NmVmM2E4ZDBkNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVGV4
dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC0xNzAyLDggKzE3
MDQsNiBAQCBQQUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgpIGNvbnN0
CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBhdXRv
IHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5h
ZGQoaWRlbnRpZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLmlzTmV3RW50cnkpOwogICAgIFdlYlBhZ2VQcm94eSogdGFyZ2V0UGFnZSA9IG51bGxwdHI7
CiAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMoKSkgewogICAgICAgICBpZiAocGFnZSAmJiBw
YWdlLT53ZWJQYWdlSUQoKSA9PSBpZGVudGlmaWVyKSB7CkBAIC0xNzE1LDE1ICsxNzE1LDIzIEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBt
YWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkp
LCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYg
b3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIEFTU0VSVCgh
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAg
YXV0byYgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVy
TWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CisgICAgc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPiht
YWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0
cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11
dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdlKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICB3ZWFrUGFnZS0+cmVxdWVzdFNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICB9KTsKLSAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUpOworICAgIH0KKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgICwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFnZSld
KCkgeworICAgICAgICByZXR1cm4gd2Vha1BhZ2UgPyB3ZWFrUGFnZS0+Y3JlYXRlUmVhbHRpbWVN
ZWRpYVNvdXJjZUZvclNwZWVjaFJlY29nbml0aW9uKCkgOiBDYXB0dXJlU291cmNlT3JFcnJvciB7
ICJQYWdlIGlzIGludmFsaWQiIH07CisgICAgfQorI2VuZGlmCisgICAgKTsKKyAgICBhZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlcik7CiB9CiAK
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xNzMzLDYgKzE3
NDEsMjAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW4KICAgICBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
IFdlYlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpjb25uZWN0
aW9uKCkpKTsKKyAgICAgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIpOworICAgIH0KKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENI
T1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1
bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CmluZGV4IGMxMGIzOTQ4ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLmExMWEzOTRl
N2FhOGIzZmM5M2U4NzhhMmUwMTk4Yzg5ZTFlMjczYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3Qg
V2Vic2l0ZURhdGE7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBlbnVt
IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBSZWZDb3VudGVy
PEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQcm9jZXNzQ291
bnRlcjsKIHR5cGVkZWYgRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBGb3JlZ3Jv
dW5kV2ViUHJvY2Vzc1Rva2VuOwpAQCAtMzk0LDYgKzM5OCwxMCBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKElQQ19URVNUSU5HX0FQSSkKICAgICB2b2lkIHNldElnbm9yZUludmFsaWRNZXNzYWdlRm9y
VGVzdGluZygpOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5k
aWYKIAogcHJvdGVjdGVkOgogICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdl
YnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7CkBAIC02NDMsNiArNjUxLDkgQEAgcHJpdmF0
ZToKIAogICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFlM2I0M2U1YzE3NDcxMDE0
NDU1ODc5YTc1OWZkNDBkNmMxNWRhMTQuLmY2MzMwMzM1YWRiNjFjODBlODJjOTgxYTQ0NTY1ZWNk
OGQ5NmNjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTQ0Niw2ICsxNDQ2LDExIEBACiAJCTkzQTg4QjMzMUJDNkU5Q0QwMEFCQTVD
MiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RS
ZXN1bHREYXRhLmggKi87IH07CiAJCTkzQTg4QjNCMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRU
ZXN0UmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVzdWx0SW50
ZXJuYWwuaCAqLzsgfTsKIAkJOTNBODhCNDYxQkM4ODI5MzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RS
ZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggKi87IH07CisJCTkz
QUI5QjRDMjU3NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0RDI1NzU2N0RDMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDUyNTc0
OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OworCQk5M0FC
OUI1NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CisJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjUxMjU3NTg5MTEwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNCMjYxNEQyMjdEMTQ5RTAwQjk3QTc2IC8q
IFN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuaCAqLzsg
fTsKIAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NTIy
N0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsgfTsKIAkJOTNCMjYx
NEYyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDYyMjdEMTQ3
MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICovOyB9OwpAQCAtNDYx
Niw2ICs0NjIxLDIwIEBACiAJCTkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSGl0
VGVzdFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4
QjQyMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIgLyogQVBJSGl0VGVz
dFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElIaXRUZXN0UmVz
dWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQyMjU3NDkyOEMwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQz
MjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ1MjU3
NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlC
NDkyNTc0QzYxRTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
QjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUw
MjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTEyNTc1ODkxMTAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUyMjU3NTg5
MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTMyNTc1ODkx
MjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTQyNTc1ODkxMjAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQjI2MTQ3MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxTdG9y
YWdlRGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkw
MTAsNiArOTAyOSwxNiBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVlY2ggKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzQUI5QjRCMjU3NEM2MUYw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cCAqLywKKwkJCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBTcGVlY2g7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQk5M0IyNjE0MzIyN0QxNDMxMDBCOTdBNzYgLyogV2ViU3RvcmFnZSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MjE0LDYgKzky
NDMsNyBAQAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAogCQkJ
CTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywKIAkJ
CQkxQTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKKwkJCQk5M0FCOUI0ODI1
NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovLAogCQkJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlG
NSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29u
dGVudCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRp
b24gKi8sCkBAIC05NDI3LDYgKzk0NTcsMTEgQEAKIAkJCQk5M0Q2QjdCMDI1NTI2OEExMDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOTNE
NkI3QjIyNTUyNjhBMjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFn
ZXIuaCAqLywKIAkJCQk5M0Q2QjdBRjI1NTI2OEExMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTkzQUI5QjQzMjU3NDkyOEMwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJ
CTkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJ
CQkJOTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLywKIAkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwICovLAogCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKQEAgLTEwNTgzLDYg
KzEwNjE4LDEyIEBACiAJCQkJMUREMkE2NzIyNTYyMzI0RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFERDJBNjczMjU2MjMy
NEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCAqLywKIAkJ
CQkxREQyQTY3MTI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1l
c3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKKwkJCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNBQjlCNTAyNTc1
ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTMyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAor
CQkJCTkzQUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJOTNENkI3
ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovLAogCQkJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTE2NTIs
NiArMTE2OTMsOSBAQAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6
YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdCNTI1NTI2OEQ3MDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTNENkI3QjQyNTUyNjhENTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjRDMjU3NTYzRjMwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0
RDI1NzU2N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzIyNTRCQjUxOTAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2
Qjc4NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODUyNTRDQ0Q0MzAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEzNDQ2
LDYgKzEzNDkwLDggQEAKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxhdGVk
SW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNEMThCRDJBNjgw
MDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJBNjc0MjU2MjMyQTEwMEZGN0I2RiAvKiBTb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTkzQUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkz
QUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzRDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMzNERFRDE2REU4Rjg4MDA2QThF
MzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBmZjQ0OGJlZjg5NDFh
YzQ5NWJlMDhlZjUzYmZhYzFiODA2NmVmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAKQEAgLTAsMCArMSwyNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisjZWxzZQorI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUGxhdGZvcm1BdWRpb0RhdGEuaD4KKyNlbmRpZgorCisjaWYgVVNFKEFVRElPX1NFU1NJT04p
CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZQorICAgIDogcHJpdmF0ZSBS
ZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlh
U291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBw
dWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudAorI2VuZGlmCit7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNv
dXJjZSwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgICAgICA6IG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQorICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkK
KyAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhp
cykpKQorI2VuZGlmCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMp
OworICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAg
fQorCisgICAgflNvdXJjZSgpCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBz
dG9yYWdlKCkuaW52YWxpZGF0ZSgpOworI2VuZGlmCisgICAgICAgIG1fc291cmNlLT5yZW1vdmVB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2Vy
dmVyKCp0aGlzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KCkKKyAgICB7CisgICAgICAgIG1f
c291cmNlLT5zdGFydCgpOworICAgIH0KKworICAgIHZvaWQgc3RvcCgpCisgICAgeworICAgICAg
ICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdl
KCkpOworICAgIH0KKyNlbmRpZgorCitwcml2YXRlOgorICAgIHZvaWQgc291cmNlU3RvcHBlZCgp
IGZpbmFsCisgICAgeworICAgICAgICBpZiAobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpIHsK
KyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQ2FwdHVyZUZhaWxlZCht
X2lkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZVNvdXJjZVN0b3BwZWQobV9pZGVudGlmaWVy
KSwgMCk7CisgICAgfQorCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVk
aWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVz
KSBmaW5hbAorICAgIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKG1fZGVzY3Jp
cHRpb24gIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5w
bGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlv
U3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgbV9udW1iZXJPZkZyYW1l
cyA9IG1fZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgICAgIG1fcmluZ0J1
ZmZlci5hbGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVy
T2ZGcmFtZXMpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVy
TGlzdD4oYXVkaW9EYXRhKSk7CisgICAgICAgIG1fcmluZ0J1ZmZlci5zdG9yZShkb3duY2FzdDxX
ZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGlt
ZS50aW1lVmFsdWUoKSk7CisgICAgICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgICAgIHVp
bnQ2NF90IGVuZEZyYW1lOworICAgICAgICBtX3JpbmdCdWZmZXIuZ2V0Q3VycmVudEZyYW1lQm91
bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpSZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUobV9pZGVudGlmaWVyLCB0aW1lLCBudW1iZXJP
ZkZyYW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpLCAwKTsKKyNlbHNlCisgICAgICAgIFVOVVNF
RF9QQVJBTSh0aW1lKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGF1ZGlvRGF0YSk7CisgICAgICAg
IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7CisgICAgICAgIFVOVVNFRF9QQVJBTShudW1iZXJP
ZkZyYW1lcyk7CisjZW5kaWYKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKworICAgIHZv
aWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKSBmaW5hbAorICAgIHsKKyAg
ICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoc3RvcmFnZSkK
KyAgICAgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6
UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworI2lmIE9TKERBUldJTikgfHwgT1MoV0lORE9XUykKKyAg
ICAgICAgdWludDY0X3QgZGF0YVNpemUgPSBoYW5kbGUuc2l6ZSgpOworI2Vsc2UKKyAgICAgICAg
dWludDY0X3QgZGF0YVNpemUgPSAwOworI2VuZGlmCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6U2V0U3RvcmFnZShtX2lkZW50aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsg
V1RGTW92ZShoYW5kbGUpLCAgZGF0YVNpemUgfSwgbV9kZXNjcmlwdGlvbiwgbV9udW1iZXJPZkZy
YW1lcyksIDApOworICAgIH0KKworI2VuZGlmCisKKyAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFy
dCgpIGZpbmFsCisgICAgeworI2lmIFVTRShBVURJT19TRVNTSU9OKQorICAgICAgICBhdXRvIGJ1
ZmZlclNpemUgPSBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCkgLyA1
MDsKKyAgICAgICAgaWYgKEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnByZWZlcnJlZEJ1
ZmZlclNpemUoKSA+IGJ1ZmZlclNpemUpCisgICAgICAgICAgICBBdWRpb1Nlc3Npb246OnNoYXJl
ZFNlc3Npb24oKS5zZXRQcmVmZXJyZWRCdWZmZXJTaXplKGJ1ZmZlclNpemUpOworICAgICAgICBB
dWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5zZXRDYXRlZ29yeShBdWRpb1Nlc3Npb246OlBs
YXlBbmRSZWNvcmQsIFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7CisjZW5kaWYKKyAgICB9
CisKKyAgICBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAg
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIFJlZjxJUEM6OkNvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbjsKKyAgICB1aW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9Owor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgQ0FSaW5nQnVmZmVyIG1fcmluZ0J1ZmZlcjsKKyAg
ICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CisjZW5kaWYKK307
CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4m
JiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCit7
CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cigqdGhpcyk7Cit9CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmdyYW50U2FuZGJveEV4
dGVuc2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZvclRDQ0Qs
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JNaWNyb3Bob25lKQor
eworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yVENDRCkpOworICAgIGlmICghbV9zYW5kYm94RXh0
ZW5zaW9uRm9yVENDRCkKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRi
b3ggZXh0ZW5zaW9uIGZvciB0Y2NkIik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRl
bnNpb25Gb3JUQ0NELT5jb25zdW1lKCk7CisKKyAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNy
b3Bob25lID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2FuZGJveEhhbmRsZUZv
ck1pY3JvcGhvbmUpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUp
CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBm
b3IgbWljcm9waG9uZSIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9y
TWljcm9waG9uZS0+Y29uc3VtZSgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKK3sKKyAgICBp
ZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCkgeworICAgICAgICBtX3NhbmRib3hFeHRlbnNp
b25Gb3JUQ0NELT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9
IG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhv
bmUpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZS0+cmV2b2tlKCk7
CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBudWxscHRyOworICAg
IH0KK30KKworI2VuZGlmCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6Y3JlYXRlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSkKK3sKKyAgICBhdXRvIHJlc3Vs
dCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNv
dXJjZShkZXZpY2UpOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGNyZWF0ZSByZWFsdGltZSBzb3VyY2UiKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3Rl
Q2FwdHVyZUZhaWxlZChpZGVudGlmaWVyKSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3Vy
Y2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFNvdXJjZT4oaWRlbnRpZmllciwgcmVzdWx0
LnNvdXJjZSgpLCBtYWtlUmVmKCptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKSkpOworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmRlbGV0ZVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1f
c291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RhcnQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0
KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0YXJ0KCk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3RvcChSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1f
c291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RvcCgpOworfQorCitJ
UEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25u
ZWN0aW9uLnB0cigpOworfQorCit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGQ0NWM0Yjk1MDdmNTAwYzI3YzM5YmQxYjkwMjljNDhhNmY4YWY2NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURl
dmljZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgZmluYWwgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7Cisg
ICAgflNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKworcHJp
dmF0ZToKKyAgICAvLyBNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcgorICAgIHZvaWQgY3JlYXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgdm9p
ZCBkZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgc3RvcChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7Cisj
aWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVu
c2lvbnMoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYmKTsKKyAgICB2b2lkIHJldm9rZVNhbmRib3hFeHRlbnNpb25zKCk7CisjZW5kaWYKKworICAg
IC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
Y29uc3QgZmluYWw7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisK
KyAgICBjbGFzcyBTb3VyY2U7CisgICAgZnJpZW5kIGNsYXNzIFNvdXJjZTsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8
U291cmNlPj4gbV9zb3VyY2VzOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKyAg
ICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRDsKKyAg
ICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9u
ZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODJkZjFkOGU1OWYwYThmNjgwMWUyNjQ2YTg3ZjBk
NzUwZDY2MWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgQ3JlYXRl
U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlKQorICAgIERlbGV0ZVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFN0YXJ0KFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworICAgIFN0
b3AoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisK
KyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIEdyYW50U2FuZGJveEV4dGVuc2lv
bnMoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRs
ZUZvclRDQ0QsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNp
b25IYW5kbGVGb3JNaWNyb3Bob25lKQorICAgIFJldm9rZVNhbmRib3hFeHRlbnNpb25zKCkKKyNl
bmRpZgorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5jcHAKaW5kZXggM2YzNTMxOTRhMzJjM2U2NzliY2EyOWZiZWE4NTAzMWM5MjFlNGZj
NC4uZTBkMmE1OTg1NTViOTg5Nzg1ODU4YWI2YzY0YTc1NGFmZGExMTA5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDEw
IEBAIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKFNwZWVjaFJlY29nbml0aW9uCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLCAqdGhpcyk7CiAgICAg
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpDcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihtX2lkZW50aWZpZXIpLCAwKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiB9CiAKIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6fldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzNmYTgxZWRjMDBlYjY5Mjc3M2NjNzNmOWY0
YWFkY2NlMWRjYzEzMi4uODQ3NDk1NmIzNmIwNTRkNzFlYWU1NWQxYThjZjFjNzhkOWQ3YmRjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDYsNiArNDYsNyBA
QAogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2Fj
eUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAjaW5jbHVkZSAiVXNlckRh
dGEuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgiCkBAIC0xOTgwLDYg
KzE5ODEsMTYgQEAgdm9pZCBXZWJQcm9jZXNzOjplbmFibGVWUDlTV0RlY29kZXIoKQogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlciYgV2ViUHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4obWFrZVJlZigqcGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKSkpOworCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1
bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9OX0lECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAppbmRleCBlOWM0N2RiNGM0NDdjMGY0YWI2MjdjMDk0YjVmNjhkYjU2NWE5YTZjLi43ZTVh
NGNhYTRjNWQyZTIzNzg4MTNlYjRmMmY0MjI4YmRlNGNjNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE0Miw2ICsxNDIsMTAgQEAgc3RydWN0IFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKICNlbmRpZgogCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKKwogY2xhc3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBB
dXhpbGlhcnlQcm9jZXNzCiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0zNjAs
NiArMzY0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFdyaXRlVG9QYXN0ZWJvYXJkQXN5bmNo
cm9ub3VzbHkoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogICAgIH5XZWJQ
cm9jZXNzKCk7CkBAIC02OTMsNiArNzAxLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ZwOURl
Y29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fdnA5U1dEZWNvZGVyRW5hYmxlZCB7
IGZhbHNlIH07CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1
bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1f
c3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGIwMjQyOGQzZjVjNzQ3ZTc2NWY5ZTdm
N2E0YWVjMDVjMjNmNDRkMi4uNDNiYTIwZWJhMDVkMDMyZWZmZjMwNzBhODM5OTI1NTBmYjYxNjk3
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEyLTA4ICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVl
Y2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4MjQwNDk+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFRlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2Fw
dHVyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRp
b24vaW9zL2F1ZGlvLWNhcHR1cmUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9z
LXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTEyLTA4ICBSb2IgQnVpcyAgPHJidWlzQGln
YWxpYS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBhc3BlY3QtcmF0aW8gb24gbm9uLXJlcGxhY2Vk
IGVsZW1lbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzMDA4NDVmYTIyNjNiMDEzOWQ4ZWQ2YTlh
ODkyZDZjOTY0N2JkNzZkLi44MmUyY2Y5NTQwMTI1NzRjMTU0MDNlY2M5OTRmMmIxMDQ3OGEwYzZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4MSw2ICsxODEsNyBAQCBodHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvIFsgU2tpcCBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1p
c3Npb24tZXJyb3IuaHRtbCBbIFNraXAgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1y
ZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbCBbIFNraXAgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlv
bi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBbIFNraXAgXQorZmFzdC9zcGVlY2hyZWNv
Z25pdGlvbi9pb3MvIFsgU2tpcCBdCiAKICMgT25seSBwYXJ0aWFsIHN1cHBvcnQgb24gQ29jb2Eg
cGxhdGZvcm1zLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpLyBb
IFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9p
b3MvYXVkaW8tY2FwdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJl
Y29nbml0aW9uL2lvcy9hdWRpby1jYXB0dXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzUz
ZjZjODgzYWVjYzU5MjEwY2UwNTg3MGEwMzI2MmNjNTdmMzExCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVmVyaWZ5IHRoYXQgYXVkaW8gY2FwdHVyZSBvbiBp
T1MgaGFwcGVucyBpbiB3ZWIgcHJvY2Vzcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgcmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCitQQVNTIGludGVybmFscy5hdWRpb1Nlc3Npb25DYXRlZ29yeSgpID09
ICdQbGF5QW5kUmVjb3JkJyBpcyBmYWxzZQorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUmVjZWl2ZWQgc3RhcnQgZXZlbnQKK1JlY2VpdmVkIGF1ZGlv
c3RhcnQgZXZlbnQKK1BBU1MgaW50ZXJuYWxzLmF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkgPT0gJ1Bs
YXlBbmRSZWNvcmQnIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL2lvcy9hdWRpby1jYXB0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJl
Y29nbml0aW9uL2lvcy9hdWRpby1jYXB0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFhZDM5YmVkMjZm
NWQ2NWExMzYxNmIwMzg2YjBlNzA0NmZmNzdjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1cmUuaHRtbApAQCAtMCww
ICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJWZXJpZnkgdGhhdCBhdWRpbyBjYXB0dXJlIG9uIGlPUyBoYXBwZW5zIGluIHdlYiBw
cm9jZXNzLiIpOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKK30KKworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJl
Y29nbml0aW9uKCk7Iik7CitzaG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuYXVkaW9TZXNzaW9uQ2F0
ZWdvcnkoKSA9PSAnUGxheUFuZFJlY29yZCciKTsKKworcmVjb2duaXRpb24ub25zdGFydCA9IChl
dmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBzdGFydCBldmVudCIpOworfQorCityZWNv
Z25pdGlvbi5vbmF1ZGlvc3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQg
YXVkaW9zdGFydCBldmVudCIpOworCisgICAgc2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMuYXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkoKSA9PSAnUGxheUFuZFJlY29yZCciKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30KKworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDk2ZTY2YjE1
YjE5ZGYwZTViNTBkYWRhZjJiMjkyZTg5NzEwZDYwMmIuLmE5YTk0MWE5MjNiMTQwZGY3MmNjNDll
MjA4NTc1YmMzMTYwNDFkYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13
azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTE3LDYgKzE3LDcgQEAgY29udGFjdC1waWNrZXIvY29udGFjdHMt
c2VsZWN0Lmh0bWwgWyBQYXNzIF0KIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBm
YXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KK2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vaW9zIFsgUGFzcyBdCiBmYXN0L3ZpZXdwb3J0L2lvcyBbIFBh
c3MgXQogZmFzdC92aXN1YWwtdmlld3BvcnQvaW9zLyBbIFBhc3MgXQogc2Nyb2xsaW5nY29vcmRp
bmF0b3IgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415719</attachid>
            <date>2020-12-08 22:47:58 -0800</date>
            <delta_ts>2020-12-08 23:16:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219371-20201208224756.patch</filename>
            <type>text/plain</type>
            <size>90719</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJiYjZiMGNkZmFhZmYy
YjY2N2U0NzQ3Y2UzYzA3Y2RhMWE2NGI3NS4uZjY0ZmUwNzhiMzE2YjA4YTljNjNjMGM4MTlkY2Rm
YzVlOWJjM2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTEyLTA4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAg
ICAgICBBZGQgYSB3YXkgdG8gc2V0IFJlYWx0aW1lTWVkaWFTb3VyY2UgbWVtYmVyIG9mIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuCisKKyAgICAgICAgVGVzdDogZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS5odG1sCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpyZXNldCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzZXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMi0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29uY3VycmVudCBEaXNwbGF5IExpc3RzXSBB
ZGQgYSB3YXkgZm9yIGRpc3BsYXkgbGlzdCBjbGllbnRzIHRvIGdldCBtaXNzaW5nIGNhY2hlZCBy
ZXNvdXJjZSBpZGVudGlmaWVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyZGJiMzU1YTFjNGIyNDc4ZmFkZGZjYjk3
MjljMWI3NTNjNjNkYzAzLi40MGNjNDQ3ZmU1NWNjNzMxNDY5OGM3YmY1MjJlMTgyMmJiNDU4NzA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIwLTEyLTA4ICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBT
cGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzE4MjQwNDk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBPbiBpT1Ms
IGF1ZGlvIGNhcHR1cmUgaXMgZG9uZSBpbiB3ZWIgcHJvY2Vzcy4gRm9yIHNwZWVjaCByZWNvZ25p
dGlvbiwgcmVjb2duaXplciBpcyBpbiBVSSBwcm9jZXNzLiBUaGVyZWZvcmUsCisgICAgICAgIFVJ
IHByb2Nlc3MgbmVlZHMgdG8gYXNrIHdlYiBwcm9jZXNzIHRvIGNhcHR1cmUgYXVkaW8gYW5kIHNl
bmQgYmFjayBkYXRhLiBUbyBpbXBsZW1lbnQgdGhpcywgdGhpcyBwYXRjaCBhZGRlZDoKKyAgICAg
ICAgLSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6IHN1YmNsYXNz
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgYW5kIGNvbm5lY3QgdG8gYSByZW1vdGUgCisg
ICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgKG93bmVkIGJ5IFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZSkgaW4gd2ViIHByb2Nlc3Mu
CisgICAgICAgIC0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjogbWFuYWdlIGFsbCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlcy4KKyAgICAgICAgLSBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS4KKyAgICAgICAgLSBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6IG93biBhbmQg
bW9uaXRvciBhIGxvY2FsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UuCisKKyAgICAgICAg
VGhpcyBzdHJ1Y3R1cmUgaXMgdmVyeSBzaW1pbGFyIHRvIGhvdyB3ZSBpbXBsZW1lbnQgbWVkaWEg
Y2FwdHVyZSBvbiBtYWNPUyAoUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSwgCisgICAgICAgIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIGFuZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KSwg
d2hlcmUgd2Ugc2VuZCBkYXRhIGZyb20gVUkgcHJvY2VzcyB0byB3ZWIgcHJvY2VzcworICAgICAg
ICBpbnN0ZWFkLiBXZSBzaG91bGQgdW5pZnkgdGhlIGFyY2hpdGVjdHVyZSBpZiBwb3NzaWJsZS4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjptX3JpbmdCdWZm
ZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6On5TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNl
dFN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3Rl
Q2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3RvcHBlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6YWRkU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3Rl
Q2FwdHVyZUZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpj
cmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6On5Tb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjpTb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjpz
dG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI6On5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToK
KyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJldm9rZVNhbmRib3hFeHRlbnNp
b25zKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6Y3JlYXRlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6ZGVsZXRlU291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6c3Rh
cnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCBjb25zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaDoKKwogMjAyMC0xMi0wOCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBEZW55IG1hY2gtbG9va3VwIHRvIHRoZSBzZXJ2
aWNlICdjb20uYXBwbGUuYXNzZXJ0aW9uZC5wcm9jZXNzYXNzZXJ0aW9uY29ubmVjdGlvbicgaW4g
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYjFmNTRmNjFjMmEz
ZGI5ZjFkZTE0ZjJkZWVjYzlkOTdmNDE4YWM4MS4uODI1NjI5OGZiOWZhNmQwNzAwZWNlZGM5YjFk
OGJiMzk4YmQwZTAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMzQzLDYgKzEzNDMsNyBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCiAgICAgcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCiAgICAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorICAgIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAogICAgIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oCiAgICAgcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYzkzYjZmMzhiYzYyMzhkYTFkYmE4NjhlMjllMWU1YjFl
NmY2NmI2Yi4uZDdlY2U2NTlmMDg5MjlkZmJjNzdjMTcxMWE5NDRjN2MxMTVlNjE0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0zNCw5ICszNCwxMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBT
dGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaykKLXsKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCitPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKCkKK3sKICAgICBPcHRpb25hbDxDYXB0
dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlOwogICAgIGF1dG8gZGV2aWNlcyA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKICAgICBmb3IgKGF1dG8gZGV2
aWNlIDogZGV2aWNlcykgewpAQCAtNTEsMjYgKzUyLDE5IEBAIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJlY29nbml0
aW9uCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKyAgICByZXR1cm4gY2Fw
dHVyZURldmljZTsKK30KIAotICAgIGlmICghY2FwdHVyZURldmljZSkgewotICAgICAgICBhdXRv
IGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9
OwotICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNhcHR1cmVE
ZXZpY2UpCit7CisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVy
ZURldmljZSwgeyB9LCB7IH0pOworfQogCi0gICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7Ci0gICAgaWYgKCFyZXN1
bHQpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCByZXN1bHQuZXJyb3JNZXNzYWdl
IH07Ci0gICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9CitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
IGNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRh
dGVDYWxsYmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2ssIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiYmIHNvdXJjZSkKKyAgICA6IG1faW1wbChtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwg
V1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShzb3VyY2UpKSkKK3sKK30KIAot
ICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRl
VXBkYXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0oY2xpZW50SWRlbnRpZmllcik7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGFDYWxsYmFjayk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHN0YXRlVXBkYXRlQ2FsbGJhY2spOwogI2VuZGlmCi19CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKaW5kZXggNzM4NmNl
ZWUyNzQwN2NjNjEwNGUyOWVkNzNkZTdkYTBhNDlmNGUwYS4uNjlmOWE4OGIyNjFlNzFmNjZlYzAw
YmI5ZTcxZGEwZjNhYzgxOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKQEAgLTQy
LDEwICs0MiwxNiBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKIGNsYXNzIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0
OwogICAgIH5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAg
dXNpbmcgRGF0YUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBXVEY6Ok1lZGlhVGltZSYs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYs
IHNpemVfdCk+OwogICAgIHVzaW5nIFN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lk
KGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OwotICAgIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFjayYmKTsKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0
ZVVwZGF0ZUNhbGxiYWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZmluZENh
cHR1cmVEZXZpY2UoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJik7Cisj
ZW5kaWYKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAppbmRleCA1YmVi
NjA1NjQ3YjMyOWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Li5mOTE2ZDJiYTRkMjgwZjc1ODYx
MmI1N2NjMTIxOTRmOWI0ZDNiNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtNTAsMTkgKzUwLDIzIEBAIHZvaWQgU3Bl
ZWNoUmVjb2duaXplcjo6cmVzZXQoKQogCiAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIg
cmVxdWVzdCBpcyBzdGFydGVkIiB9OwogICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsK
KworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IFdURjo6bnVsbG9wdDsKIH0KIAotdm9pZCBTcGVl
Y2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwordm9pZCBTcGVl
Y2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKIHsK
LSAgICByZXNldCgpOworICAgIEFTU0VSVCghbV9zb3VyY2UpOwogCiAgICAgbV9jbGllbnRJZGVu
dGlmaWVyID0gaWRlbnRpZmllcjsKICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OlN0YXJ0KSk7CiAKLSAgICBzdGFydEludGVybmFsKCk7CisgICAgc2V0U291
cmNlKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLXZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRJ
bnRlcm5hbCgpCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnNldFNvdXJjZShSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiB7CiAgICAgYXV0byBkYXRhQ2FsbGJhY2sgPSBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29uc3QgYXV0byYgdGltZSwgY29uc3QgYXV0byYgZGF0
YSwgY29uc3QgYXV0byYgZGVzY3JpcHRpb24sIGF1dG8gc2FtcGxlQ291bnQpIHsKICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKQEAgLTkwLDkgKzk0LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6
c3RhcnRJbnRlcm5hbCgpCiAgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CiAgICAgfTsK
IAotICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShz
dGF0ZVVwZGF0ZUNhbGxiYWNrKSk7CisgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oKm1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRh
Q2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkp
OwogfQogCisjZW5kaWYKKwogdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVy
YXRlRmluYWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCkKIHsKICAgICBpZiAoIW1f
Y2xpZW50SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuaAppbmRleCBlNmYxM2ZlZTg0YTUzM2FmMGYwNGUwNzY5YzFhZTA5NWJl
NWJmZjNmLi5lYzVhYzEzMGI4YTA0NzdkYTkxZmQxZTFlN2ZjMmM3MGE0YTMyNjNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0z
OSwxNyArMzksMjIgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVj
aFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+U3Bl
ZWNoUmVjb2duaXplcigpID0gZGVmYXVsdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Rh
cnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiYmKTsKKyNlbmRpZgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXQoKTsKICAgICBl
bnVtIGNsYXNzIFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgeyBObywgWWVzIH07CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPSBTaG91bGRH
ZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpOwogCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lk
IHJlc2V0KCk7Ci0gICAgdm9pZCBzdGFydEludGVybmFsKCk7CiAgICAgdm9pZCBzdG9wSW50ZXJu
YWwoKTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgdm9pZCBzZXRTb3VyY2UoUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworI2VuZGlmCisKICAgICBPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7
CiAgICAgRGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGFh
ZWM1NzU0OTcxOGVkNTE2ZDk3NjljMDJkY2RhMjg3YzNkNDcyZi4uYzA0ZmM5YmFmMmZkMDM4MDNk
ODcyN2E4ODU4ZTdhNDllMWMwMDhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2NjEsMTMgKzIzNjYxLDYgQEAKIAkJCXBh
dGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTkzRjZCODBF
MjU2NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkpOwotCQkJcGF0aCA9IGNvY29hOwotCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKLQkJfTsKIAkJOTQ2RDM3MjcxRDZDQjIyNTAwNzcwODRGIC8qIHBhcnNlciAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNTY5OCw3ICsyNTY5
MSw2IEBACiAJCUFBMkE1QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTkzRjZCODBFMjU2NkVERTEwMEEw
ODQ4OCAvKiBjb2NvYSAqLywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2lu
ZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1
IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQjkxNkE0ODVE
NTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQKaW5kZXggYmUwODY1MTMyYmY0NTZlMzU1YmViMzFiNmRjNDY2M2JkMmQyNDNjNS4uMDZiZTc2
MTVmNDdjYmRmOTIyMmRkZTNmYjVhZWU4ZDg2NjAyZjI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBA
IC0xMDMsNiArMTAzLDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TcGVlY2giCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9TdG9yYWdlIgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvVXNlckNvbnRlbnQiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydCIKQEAgLTE4Nyw2ICsxODgsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5CisgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKICAgICBVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZQogICAgIFVJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkKQEAgLTI1OCw2ICsyNjAsOCBAQCBzZXQoV2ViS2l0
X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcgogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eQogCisg
ICAgV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcgorCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbgog
ICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMjY3
Y2RkMjk0M2UxNDZmMDVjYzhlN2MzMTAyMjM5ZGJmNmJlM2I1Ny4uNGM2M2MyODczMDU5NmUzZjBk
ZjJkNzFkOWM3ZmViMGIyZDZhMTJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTA4LDYgKzEwOCw3IEBAICQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFn
ZXJQcm94CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbgorJChQ
Uk9KRUNUX0RJUikvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLm1lc3NhZ2VzLmlu
CkBAIC0xNjUsNiArMTY2LDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA2MGQ0NDMwMjZm
MzZkNDkzYWNiNjI3OWQ4ZjdhMGMzMWVhMmI0NjI5Li45MThiMDJhODExOTYwYjkyZWU1NzE4MmVm
MzM4NTAyMzQxY2MxOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKQEAgLTI3Miw2ICsyNzIsMTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3Nh
Z2UKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNl
QnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggMzU4Zjc0YmJkMzI1MTY0ZDI5NTc2MjAxMjdlNGE2MDJkOTJkN2E1Ni4uM2Y5NTZlNjQ2
MTA5YjhmN2ZiNzg5MTkzYjc3MWM4NWVjOWE5MGE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtNjksNiArNjksNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvT3JpZ2luRGF0YSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKKwkkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvU3BlZWNoIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50IFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24gXApAQCAtMTY3LDYgKzE2OCw3IEBAIE1FU1NBR0VfUkVD
RUlWRVJTID0gXAogCVVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbCBcCiAJVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5IFwKIAlVSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eSBcCisJVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgXAogCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlciBcCiAJV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlciBcCiAJV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gXApAQCAtMjAx
LDYgKzIwMyw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvV2ViUlRDUmVzb2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXAorCVdlYlByb2Nlc3MvU3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgXAogCVdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9XZWJQcm9jZXNzIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CmluZGV4IGNiNzhiYjIyYjY3MzI3NDQ1MWNhM2NjZGM1NmE1ZWZlZjY3NzU5ODAuLjE1
Yzk1Nzg5NGI3MGE0ZGM3NGZiOGI5YWM4YWRiZTFhN2UzY2IwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAt
MjkxLDYgKzI5MSw4IEBAIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9jZXNz
L1Byb2Nlc3NUaHJvdHRsZXIuY3BwCiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3Bw
CiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCitVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHku
Y3BwCiBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRyb2xsZXIuY3BwCkBAIC02MzcsNiArNjM5
LDggQEAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNw
cCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5j
cHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5T
dHJlYW0uY3BwIEBuby11bmlmeQogCitXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYWU5OTYwNWQ3NzY4OTNhOWZiZTc3OGIzOGMyYzVkZTdmMDQ2YjZkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcApAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZS5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmlj
ZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6
OmdlbmVyYXRlKCksIG1hbmFnZXIsIGNhcHR1cmVEZXZpY2UpKTsKK30KKworU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmlj
ZSkKKyAgICA6IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZyB7IGNhcHR1cmVEZXZpY2UubGFiZWwoKSB9
LCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0pCisgICAgLCBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPENBUmlu
Z0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0cikp
KQorI2VuZGlmCit7CisgICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNhcHR1cmVEZXZp
Y2UpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6On5T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQoreworICAgIGlmICht
X21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+cmVtb3ZlU291cmNlKCp0aGlzKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0UHJv
ZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5z
ZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpTdGFydCB7IG1faWRlbnRpZmllciB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBpZiAo
bV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0b3AgeyBtX2lkZW50aWZpZXIgfSk7
Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5k
bGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgbV9kZXNjcmlwdGlvbiA9
IGRlc2NyaXB0aW9uOworCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5OworICAgIGlm
ICghaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFw
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IGZvciByZW1vdGUgc291cmNl
Iik7CisgICAgfQorCisgICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOworICAgIGlmICghbWVtb3J5
KSB7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOworICAgICAgICBzdG9yYWdl
LnNldFJlYWRPbmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG51bGxwdHIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9y
eS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBzdG9yYWdlLnNldFJlYWRPbmx5KHRydWUpOworICAg
IG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAg
ICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwg
bnVtYmVyT2ZGcmFtZXMpOworfQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRp
YVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUs
IHVpbnQ2NF90IGVuZEZyYW1lKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9i
dWZmZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJCdWZmZXIgZm9yIHJlbW90ZSBzb3VyY2UgaXMg
bnVsbCIpOworICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBtX2J1ZmZlci0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOworICAgIG1f
cmluZ0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsK
KyAgICBtX3JpbmdCdWZmZXItPmZldGNoKG1fYnVmZmVyLT5saXN0KCksIG51bWJlck9mRnJhbWVz
LCB0aW1lLnRpbWVWYWx1ZSgpKTsKKyAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgKm1f
YnVmZmVyLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTSh0aW1lKTsKKyAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworICAgIFVO
VVNFRF9QQVJBTShzdGFydEZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZW5kRnJhbWUpOworI2Vu
ZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpyZW1vdGVDYXB0dXJlRmFpbGVkKCkKK3sKKyAgICBjYXB0dXJlRmFpbGVkKCk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3Vy
Y2VTdG9wcGVkKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjdiYzBkMTMxZjJjZGIxNWY5MjVjZTA5MDE5NTdlZmE0ZDQ0MGNiZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZp
Y2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB+U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3JhZ2UoY29u
c3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKworICAgIHZvaWQg
cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsKKyAgICB2b2lk
IHJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoKTsK
KworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJik7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCisgICAg
dm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdE
YXRhKCkgZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0K
KyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdz
KCkgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQorCisgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYWtQdHI8U3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9tYW5hZ2VyOworICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7
CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24gbV9kZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVm
ZmVyPiBtX3JpbmdCdWZmZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OldlYkF1ZGlv
QnVmZmVyTGlzdD4gbV9idWZmZXI7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI0Yzc2MzZkYThhMTZjYzRjZmViYTYwNzJjMDVjM2U3
YTkzYjk0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAg
KzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVj
dGlvbikpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjo6YWRkU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZSYgc291cmNlLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJl
RGV2aWNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7Cisg
ICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNl
cy5hZGQoaWRlbnRpZmllciwgbWFrZVdlYWtQdHIoc291cmNlKSk7CisKKyNpZiBFTkFCTEUoU0FO
REJPWF9FWFRFTlNJT05TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIGlmICghbV9o
YXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMpIHsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIGhhbmRsZUZvclRDQ0Q7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS50Y2NkIl9zLCBtX2Nvbm5lY3Rpb24tPmdldEF1
ZGl0VG9rZW4oKSwgaGFuZGxlRm9yVENDRCk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBoYW5kbGVGb3JNaWNyb3Bob25lOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKCJjb20uYXBwbGUud2Via2l0Lm1pY3JvcGhvbmUi
X3MsIGhhbmRsZUZvck1pY3JvcGhvbmUpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpHcmFudFNhbmRib3hFeHRlbnNp
b25zKGhhbmRsZUZvclRDQ0QsIGhhbmRsZUZvck1pY3JvcGhvbmUpKTsKKyAgICAgICAgbV9oYXNH
cmFudGVkU2FuZGJveEV4dGVuc2lvbnMgPSB0cnVlOworICAgIH0KKyNlbmRpZgorCisgICAgc2Vu
ZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
Q3JlYXRlU291cmNlKGlkZW50aWZpZXIsIGNhcHR1cmVEZXZpY2UpKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdmVTb3Vy
Y2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7
CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQo
bV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSA9PSAmc291cmNlKTsKKyAgICBtX3NvdXJjZXMucmVt
b3ZlKGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykgJiYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAobV9zb3VyY2VzLmlzRW1wdHkoKSAmJiBtX2hh
c0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZXZva2VTYW5kYm94RXh0
ZW5zaW9ucygpKTsKKyAgICAgICAgbV9oYXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgPSBmYWxz
ZTsKKyAgICB9CisjZW5kaWYKKworICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkRlbGV0ZVNvdXJjZShpZGVudGlmaWVyKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCB1aW50
NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5yZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgbnVtYmVy
T2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVk
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAg
c291cmNlLT5yZW1vdGVDYXB0dXJlRmFpbGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291cmNlU3RvcHBlZChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNv
dXJjZS0+cmVtb3RlU291cmNlU3RvcHBlZCgpOworfQorCitJUEM6OkNvbm5lY3Rpb24qIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOwor
fQorCit1aW50NjRfdCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IDA7Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIGlmIChh
dXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+
c2V0U3RvcmFnZShpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OworfQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIxNDZhOWIzNjMwMjM5N2IxYjg2NGZmNGZhOGE3MzZhNTUzYWU2NTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTaGFy
ZWRNZW1vcnkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworCisjaWYgUExBVEZPUk0oQ09DT0Ep
CitjbGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CisjZW5kaWYKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlciBmaW5hbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2Vp
dmVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIHZvaWQg
YWRkU291cmNlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcgorICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFt
ZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IHZvaWQgc2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwg
Y29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7CisjZW5kaWYKKworICAg
IC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIuCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
Y29uc3QgZmluYWw7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cisg
ICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2Vha1B0
cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+PiBtX3NvdXJjZXM7
CisgICAgYm9vbCBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyB7IGZhbHNlIH07Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMDcxMDM5OGJjN2MyYzQ3MDQ0YjAzZTY1ZDBhY2M4NTgwYTFlZmVhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM1IEBACisj
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBSZW1vdGVBdWRpb1NhbXBsZXNBdmFp
bGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
TWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKKyAgICBSZW1vdGVDYXB0dXJlRmFpbGVkKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgUmVtb3RlU291
cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24gZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorI2VuZGlmCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwCmluZGV4IDlmNjAwZDNmNWNkYzZjMzJjNTQ4YTBhMDlhYjAyYmMxNDUzNDUyNDQu
LmQ2ZmE4OWM1NDgzMjYyYzEwMWEyNmQwMzAzMjM1NTcyMDZiMTJmNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTM2
LDEyICszNiwyMiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCitTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tl
ciYmIHBlcm1pc3Npb25DaGVja2VyLCBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24m
JiBmdW5jdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAg
ICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX3Blcm1pc3Npb25DaGVja2VyKFdU
Rk1vdmUocGVybWlzc2lvbkNoZWNrZXIpKQorICAgICwgbV9yZWFsdGltZU1lZGlhU291cmNlQ3Jl
YXRlRnVuY3Rpb24oV1RGTW92ZShmdW5jdGlvbikpCit7Cit9CisjZWxzZQogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXImJiBwZXJtaXNzaW9uQ2hlY2tl
cikKICAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICwgbV9pZGVu
dGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX3Blcm1pc3Npb25DaGVja2VyKFdURk1vdmUocGVy
bWlzc2lvbkNoZWNrZXIpKQogewogfQorI2VuZGlmCiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3RyaW5nJiYgbGFuZywgYm9vbCBjb250aW51b3Vz
LCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMsIFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYmIG9yaWdpbikKIHsKQEAgLTkyLDggKzEwMiwyMSBAQCB2b2lkIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbgogICAgICAgICAgICAgc2VuZFVwZGF0ZSh1cGRhdGUpOwogICAgICAgICB9
KTsKICAgICB9Ci0KLSAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOwor
ICAgIAorICAgIG1fcmVjb2duaXplci0+cmVzZXQoKTsKKworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgYXV0byBzb3VyY2VPckVycm9yID0gbV9yZWFsdGltZU1lZGlhU291cmNlQ3JlYXRl
RnVuY3Rpb24oKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpIHsKKyAgICAgICAgbV9yZXF1ZXN0
cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIHNlbmRVcGRhdGUoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSB9KSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJ
ZGVudGlmaWVyLCBzb3VyY2VPckVycm9yLnNvdXJjZSgpKTsKKyNlbHNlCisgICAgbV9yZXF1ZXN0
cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlm
aWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGU6OkF1ZGlvQ2FwdHVyZSwgIkF1ZGlvIGNhcHR1cmUgaXMgbm90IGltcGxlbWVudGVkIn0p
OworI2VuZGlmCiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmgKaW5kZXggYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNy4u
ZWQ2NzI2NGFhMTMxZTFlMTQyMWVhYTQxNGQ0MTcxM2M2OTVkODMyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0zNiw2ICsz
Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGVudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOworc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOwogc3RydWN0IENsaWVu
dE9yaWdpbjsKIH0KIApAQCAtNTAsNyArNTEsMTIgQEAgdXNpbmcgU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uQ2hlY2tlciA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3IK
IGNsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2
YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB1c2luZyBSZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb24gPSBGdW5jdGlvbjxXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JF
cnJvcigpPjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9u
PiYmLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbkNoZWNrZXImJiwgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYp
OworI2Vsc2UKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9u
PiYmLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbkNoZWNrZXImJik7CisjZW5kaWYKIAogICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3RyaW5nJiYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMsIFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmKTsKICAgICB2b2lkIHN0b3AoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CkBAIC03NSw2
ICs4MSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiBt
X3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbjsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBhYjg3ZDAwZDc5Y2EyZTcyMmMzOGJhNzk0NTQ3YTk2ZmEzYmI5ZmQ3Li5jYzJkOWFiMmZi
ZGE0ZmIxZGRkZTBjY2EzNzdiMzlhNTZkNTk2NDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg3LDYgKzg3LDggQEAKICNpbmNsdWRlICJTYWZlQnJvd3Np
bmdXYXJuaW5nLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC0xMDMwMSw2ICsxMDMwMywy
NiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDbwogICAgIG1fc3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uTWFuYWdlci0+ZGVjaWRlQnlEZWZhdWx0QWN0aW9uKG9yaWdpbiwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgV2ViUGFnZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGlmIChwcmVmZXJlbmNlcygpLmNh
cHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIENhcHR1cmVT
b3VyY2VPckVycm9yIHsgIk5vdCBpbXBsZW1lbnRlZCBmb3IgR1BVIHByb2Nlc3MiIH07CisKKyAg
ICBhdXRvIGNhcHR1cmVEZXZpY2UgPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmZp
bmRDYXB0dXJlRGV2aWNlKCk7CisgICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICByZXR1
cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2Fw
dHVyZSIgfTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgcmV0dXJuIENhcHR1cmVT
b3VyY2VPckVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpjcmVhdGUobV9wcm9jZXNzLT5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKCksICpjYXB0dXJlRGV2aWNlKSB9OworI2Vsc2UKKyAgICByZXR1
cm4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyNlbmRpZgorfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDIzMmVkMzdiZDFiZjkzMGFhZjhmOTk4NDM2ZDYz
MDU0MmVhOTMwODUuLmQ5NjgzMTNkZGQyZDYzY2QwYTU4NzZjYmJkY2FhNzUyMGVhODM4NzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xODMzLDYgKzE4MzMsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENy
ZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVSZWFsdGltZU1l
ZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlN2Q5Y2RmZTU1
MzVjMjdjNDUwNGYwMTBhNmVkZjhlNGM1ZTNjYTZhLi5hZGVlNWZiOWU3YmJkODhjMDg4ZTY5ZWY0
ZTU1NmVmM2E4ZDBkNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlByb3Zpc2lvbmFsUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiVGV4
dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCkBAIC0xNzAyLDggKzE3
MDQsNiBAQCBQQUw6OlNlc3Npb25JRCBXZWJQcm9jZXNzUHJveHk6OnNlc3Npb25JRCgpIGNvbnN0
CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBhdXRv
IHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5h
ZGQoaWRlbnRpZmllciwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLmlzTmV3RW50cnkpOwogICAgIFdlYlBhZ2VQcm94eSogdGFyZ2V0UGFnZSA9IG51bGxwdHI7
CiAgICAgZm9yIChhdXRvKiBwYWdlIDogcGFnZXMoKSkgewogICAgICAgICBpZiAocGFnZSAmJiBw
YWdlLT53ZWJQYWdlSUQoKSA9PSBpZGVudGlmaWVyKSB7CkBAIC0xNzE1LDE1ICsxNzE1LDIzIEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAgICAgaWYgKCF0YXJnZXRQYWdlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUgPSBt
YWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPihtYWtlUmVmKCpjb25uZWN0aW9uKCkp
LCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYg
b3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgIEFTU0VSVCgh
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAg
YXV0byYgc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVy
TWFwLmFkZChpZGVudGlmaWVyLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CisgICAgc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uU2VydmVyPiht
YWtlUmVmKCpjb25uZWN0aW9uKCkpLCBpZGVudGlmaWVyLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0
cih0YXJnZXRQYWdlKV0oYXV0byYgb3JpZ2luLCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11
dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdlKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICB3ZWFrUGFnZS0+cmVxdWVzdFNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICB9KTsKLSAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5pdGVyYXRvci0+dmFsdWUpOworICAgIH0KKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgICwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFnZSld
KCkgeworICAgICAgICByZXR1cm4gd2Vha1BhZ2UgPyB3ZWFrUGFnZS0+Y3JlYXRlUmVhbHRpbWVN
ZWRpYVNvdXJjZUZvclNwZWVjaFJlY29nbml0aW9uKCkgOiBDYXB0dXJlU291cmNlT3JFcnJvciB7
ICJQYWdlIGlzIGludmFsaWQiIH07CisgICAgfQorI2VuZGlmCisgICAgKTsKKyAgICBhZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIsICpzcGVlY2hSZWNvZ25pdGlvblNlcnZlcik7CiB9CiAK
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xNzMzLDYgKzE3
NDEsMjAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW4KICAgICBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmVyTWFwLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
IFdlYlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpIHsKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpjb25uZWN0
aW9uKCkpKTsKKyAgICAgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIpOworICAgIH0KKworICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworfQorCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENI
T1MpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzdGFydEJhY2tncm91bmRBY3Rpdml0eUZvckZ1
bGxzY3JlZW5JbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CmluZGV4IGMxMGIzOTQ4ZDc3Njc2MzcxNGQxNjQ3OWI1OTM2MjgyYTY5NzMzZGEuLmExMWEzOTRl
N2FhOGIzZmM5M2U4NzhhMmUwMTk4Yzg5ZTFlMjczYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIHN0cnVjdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3Qg
V2Vic2l0ZURhdGE7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBlbnVt
IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGUgeyB9OwogdHlwZWRlZiBSZWZDb3VudGVy
PEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+IEZvcmVncm91bmRXZWJQcm9jZXNzQ291
bnRlcjsKIHR5cGVkZWYgRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBGb3JlZ3Jv
dW5kV2ViUHJvY2Vzc1Rva2VuOwpAQCAtMzk0LDYgKzM5OCwxMCBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKElQQ19URVNUSU5HX0FQSSkKICAgICB2b2lkIHNldElnbm9yZUludmFsaWRNZXNzYWdlRm9y
VGVzdGluZygpOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBlbnN1cmVT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5k
aWYKIAogcHJvdGVjdGVkOgogICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdl
YnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7CkBAIC02NDMsNiArNjUxLDkgQEAgcHJpdmF0
ZToKIAogICAgIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwID0gSGFzaE1hcDxTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcj4+OwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwIG1fc3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNYXA7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFlM2I0M2U1YzE3NDcxMDE0
NDU1ODc5YTc1OWZkNDBkNmMxNWRhMTQuLmY2MzMwMzM1YWRiNjFjODBlODJjOTgxYTQ0NTY1ZWNk
OGQ5NmNjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTQ0Niw2ICsxNDQ2LDExIEBACiAJCTkzQTg4QjMzMUJDNkU5Q0QwMEFCQTVD
MiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RS
ZXN1bHREYXRhLmggKi87IH07CiAJCTkzQTg4QjNCMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRU
ZXN0UmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVzdWx0SW50
ZXJuYWwuaCAqLzsgfTsKIAkJOTNBODhCNDYxQkM4ODI5MzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RS
ZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggKi87IH07CisJCTkz
QUI5QjRDMjU3NTYzRjMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oICovOyB9OworCQk5M0FCOUI0RDI1NzU2N0RDMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDUyNTc0
OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovOyB9OworCQk5M0FC
OUI1NTI1NzVBMjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CisJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjUxMjU3NTg5MTEwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJOTNCMjYxNEQyMjdEMTQ5RTAwQjk3QTc2IC8q
IFN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuaCAqLzsg
fTsKIAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NTIy
N0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsgfTsKIAkJOTNCMjYx
NEYyMjdEMTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDYyMjdEMTQ3
MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oICovOyB9OwpAQCAtNDYx
Niw2ICs0NjIxLDIwIEBACiAJCTkzQTg4QjNBMUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSGl0
VGVzdFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4
QjQyMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIgLyogQVBJSGl0VGVz
dFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElIaXRUZXN0UmVz
dWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQyMjU3NDkyOEMwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQz
MjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ1MjU3
NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlC
NDkyNTc0QzYxRTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
QjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUw
MjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTEyNTc1ODkxMTAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUyMjU3NTg5
MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTMyNTc1ODkx
MjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTQyNTc1ODkxMjAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQjI2MTQ3MjI3RDE0NzEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jYWxTdG9y
YWdlRGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkw
MTAsNiArOTAyOSwxNiBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTkzQUI5QjQ4MjU3NEM1Q0UwMDk4QjEwRSAvKiBTcGVlY2ggKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTkzQUI5QjRCMjU3NEM2MUYw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNw
cCAqLywKKwkJCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovLAorCQkJKTsKKwkJCXBhdGggPSBTcGVlY2g7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQk5M0IyNjE0MzIyN0QxNDMxMDBCOTdBNzYgLyogV2ViU3RvcmFnZSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05MjE0LDYgKzky
NDMsNyBAQAogCQkJCTUxMDVCMEQyMTYyRjdBNUUwMEUyNzcwOSAvKiBOZXR3b3JrICovLAogCQkJ
CTMxMDk5OTc0MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLywKIAkJ
CQkxQTZGQjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKKwkJCQk5M0FCOUI0ODI1
NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovLAogCQkJCTUxMThFOTk4MUYyOTUyNTkwMDNFRjlG
NSAvKiBTdG9yYWdlICovLAogCQkJCTFBQUYwOEFBMTkyNjkzMEIwMEI2MzkwQyAvKiBVc2VyQ29u
dGVudCAqLywKIAkJCQk1NzYwODI4QTIwMjk4NEM5MDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRp
b24gKi8sCkBAIC05NDI3LDYgKzk0NTcsMTEgQEAKIAkJCQk5M0Q2QjdCMDI1NTI2OEExMDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJOTNE
NkI3QjIyNTUyNjhBMjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFn
ZXIuaCAqLywKIAkJCQk5M0Q2QjdBRjI1NTI2OEExMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTkzQUI5QjQzMjU3NDkyOEMwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwICovLAorCQkJ
CTkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCAqLywKKwkJCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJ
CQkJOTNBQjlCNDUyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLywKIAkJCQk5M0Q2Qjc2QjI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwICovLAogCQkJCTkzRDZCNzZDMjU0Qjg5NTgwMDU4REQzQSAvKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oICovLAogCQkJCTkzRDZCNzdBMjU0Qzk4NEQwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlci5tZXNzYWdlcy5pbiAqLywKQEAgLTEwNTgzLDYg
KzEwNjE4LDEyIEBACiAJCQkJMUREMkE2NzIyNTYyMzI0RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFERDJBNjczMjU2MjMy
NEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCAqLywKIAkJ
CQkxREQyQTY3MTI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1l
c3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKKwkJCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJOTNBQjlCNTAyNTc1
ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCisJCQkJOTNBQjlCNTMyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAor
CQkJCTkzQUI5QjUyMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJOTNENkI3
ODEyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQk5M0Q2Qjc4MDI1NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlcy5oICovLAogCQkJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovLApAQCAtMTE2NTIs
NiArMTE2OTMsOSBAQAogCQkJCTU3RkQzMTg1MjJCMzUxNjkwMDhEMEU4QiAvKiBTT0F1dGhvcml6
YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2QjdCNTI1NTI2OEQ3MDA1OERE
M0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTNENkI3QjQyNTUyNjhENTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjRDMjU3NTYzRjMwMDk4QjEw
RSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0
RDI1NzU2N0RDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzIyNTRCQjUxOTAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2
Qjc4NDI1NENDRDBFMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODUyNTRDQ0Q0MzAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEzNDQ2
LDYgKzEzNDkwLDggQEAKIAkJCQk1NzVCMUJCOTIzQ0U5QzBCMDAyMDYzOUEgLyogU2ltdWxhdGVk
SW5wdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJERTY5NDNEMThCRDJBNjgw
MDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFERDJBNjc0MjU2MjMyQTEwMEZGN0I2RiAvKiBTb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTkzQUI5QjU1MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkz
QUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzRDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMzNERFRDE2REU4Rjg4MDA2QThF
MzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJmZmY3YmI0NGYwYTlm
YjZhYWUyYjFjM2ZjMjY4NzY1YjhlOWEzZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5jcHAKQEAgLTAsMCArMSwyNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisjZWxzZQorI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUGxhdGZvcm1BdWRpb0RhdGEuaD4KKyNlbmRpZgorCisjaWYgVVNFKEFVRElPX1NFU1NJT04p
CisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZQorICAgIDogcHJpdmF0ZSBS
ZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlh
U291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLCBw
dWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudAorI2VuZGlmCit7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNv
dXJjZSwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgICAgICA6IG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQorICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkK
KyAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZT4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4odGhp
cykpKQorI2VuZGlmCisgICAgeworICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMp
OworICAgICAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAg
fQorCisgICAgflNvdXJjZSgpCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBz
dG9yYWdlKCkuaW52YWxpZGF0ZSgpOworI2VuZGlmCisgICAgICAgIG1fc291cmNlLT5yZW1vdmVB
dWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2Vy
dmVyKCp0aGlzKTsKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0Q2F0
ZWdvcnkoQXVkaW9TZXNzaW9uOjpOb25lLCBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOwor
ICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0YXJ0
KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5z
dG9wKCk7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7CisgICAgfQor
I2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwKKyAgICB7
CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgeworICAgICAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRlbnRpZmllciks
IDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAwKTsKKyAgICB9
CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZpbmFsCisgICAg
eworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNj
cmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3Jp
cHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5
cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCku
ZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlw
dGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVyLmFsbG9jYXRl
KG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7Cisg
ICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0Rh
dGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVy
TGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgp
KTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0X3QgZW5kRnJh
bWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFt
ZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFy
dEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRpbWUp
OworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsKKyAgICAgICAgVU5VU0VEX1BBUkFN
KGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJhbWVzKTsKKyNl
bmRpZgorICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisgICAgdm9pZCBzdG9yYWdlQ2hh
bmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsCisgICAgeworICAgICAgICBTaGFyZWRN
ZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChzdG9yYWdlKQorICAgICAgICAgICAg
c3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpS
ZWFkT25seSk7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhXSU5ET1dTKQorICAgICAgICB1aW50NjRf
dCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxzZQorICAgICAgICB1aW50NjRfdCBkYXRh
U2l6ZSA9IDA7CisjZW5kaWYKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTZXRTdG9y
YWdlKG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRs
ZSksICBkYXRhU2l6ZSB9LCBtX2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJhbWVzKSwgMCk7Cisg
ICAgfQorCisjZW5kaWYKKworICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkgZmluYWwKKyAg
ICB7CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgICAgIGF1dG8gYnVmZmVyU2l6ZSA9IEF1
ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOworICAgICAgICBp
ZiAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVyU2l6ZSgpID4g
YnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNl
dFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7CisgICAgICAgIEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZCwg
Um91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyNlbmRpZgorICAgIH0KKworICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworICAgIHVpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyNlbmRpZgorfTsKKworU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24p
CisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
KnRoaXMpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Ojp+U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpCit7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30K
KworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7CisgICAgbV9zYW5k
Ym94RXh0ZW5zaW9uRm9yVENDRCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNh
bmRib3hIYW5kbGVGb3JUQ0NEKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NE
KQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24g
Zm9yIHRjY2QiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Qt
PmNvbnN1bWUoKTsKKworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUgPSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkp
OworICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAgICAgICAgTE9H
X0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBtaWNyb3Bob25l
Iik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5j
b25zdW1lKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmIChtX3NhbmRib3hF
eHRlbnNpb25Gb3JUQ0NEKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QtPnJl
dm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVsbHB0cjsKKyAg
ICB9CisKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkgeworICAgICAg
ICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAgICAgICAgbV9z
YW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQorfQorCisjZW5k
aWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpj
cmVhdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAgIGF1dG8gcmVzdWx0ID0gU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGRldmljZSk7
CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRl
IHJlYWx0aW1lIHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVk
KGlkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVCgh
bV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50
aWZpZXIsIG1ha2VVbmlxdWU8U291cmNlPihpZGVudGlmaWVyLCByZXN1bHQuc291cmNlKCksIG1h
a2VSZWYoKm1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkpKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6ZGVsZXRlU291cmNlKFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zb3VyY2VzLnJlbW92
ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpzdGFydChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikp
CisgICAgICAgIHNvdXJjZS0+c3RhcnQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChp
ZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlv
biogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7
Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDQ1YzRi
OTUwN2Y1MDBjMjdjMzliZDFiOTAyOWM0OGE2ZjhhZjY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTYW5kYm94RXh0
ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2Vp
dmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB+U3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworCitwcml2YXRlOgorICAgIC8v
IE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCisg
ICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIGRlbGV0ZVNvdXJj
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdGFy
dChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9w
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUoU0FO
REJPWF9FWFRFTlNJT05TKQorICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJiwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpOworICAgIHZv
aWQgcmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKTsKKyNlbmRpZgorCisgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlci4KKyAg
ICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7
CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsK
KworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKworICAgIGNsYXNzIFNv
dXJjZTsKKyAgICBmcmllbmQgY2xhc3MgU291cmNlOworICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb3VyY2U+PiBtX3Nv
dXJjZXM7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIFJlZlB0cjxTYW5k
Ym94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEOworICAgIFJlZlB0cjxTYW5k
Ym94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lOworI2VuZGlmCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjM4MmRmMWQ4ZTU5ZjBhOGY2ODAxZTI2NDZhODdmMGQ3NTBkNjYxZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsx
LDM4IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBDcmVhdGVTb3VyY2UoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSBkZXZpY2UpCisgICAgRGVsZXRlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgU3RhcnQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisgICAgU3RvcChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKworI2lmIEVOQUJMRShT
QU5EQk9YX0VYVEVOU0lPTlMpCisgICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yVENDRCwgV2Vi
S2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZUZvck1p
Y3JvcGhvbmUpCisgICAgUmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorI2VuZGlmCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApp
bmRleCAzZjM1MzE5NGEzMmMzZTY3OWJjYTI5ZmJlYTg1MDMxYzkyMWU0ZmM0Li5lMGQyYTU5ODU1
NWI5ODk3ODU4NThhYjZjNjRhNzU0YWZkYTExMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsMTAgQEAgV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oU3Bl
ZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0aGlzKTsKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKG1faWRlbnRp
ZmllciksIDApOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyKCk7CisjZW5kaWYKIH0KIAogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjp+V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAppbmRleCBjM2ZhODFlZGMwMGViNjkyNzczY2M3M2Y5ZjRhYWRjY2UxZGNjMTMy
Li44NDc0OTU2YjM2YjA1NGQ3MWVhZTU1ZDFhOGNmMWM3OGQ5ZDdiZGM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAi
UmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5o
IgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgogI2luY2x1
ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKQEAgLTE5ODAsNiArMTk4MSwxNiBAQCB2
b2lkIFdlYlByb2Nlc3M6OmVuYWJsZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyJiBXZWJQcm9jZXNzOjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKSk7CisK
KyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0Vf
TE9HX1NFU1NJT05fSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGU5
YzQ3ZGI0YzQ0N2MwZjRhYjYyN2MwOTRiNWY2OGRiNTY1YTlhNmMuLjdlNWE0Y2FhNGM1ZDJlMjM3
ODgxM2ViNGYyZjQyMjhiZGU0Y2M1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaApAQCAtMTQyLDYgKzE0MiwxMCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcjsKKyNlbmRpZgorCiBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nl
c3MKIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM2MCw2ICszNjQsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hyb25vdXNseShjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBl
bnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisjZW5k
aWYKKwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nlc3MoKTsKQEAg
LTY5Myw2ICs3MDEsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdnA5RGVjb2RlckVuYWJsZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV92cDlTV0RlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICNl
bmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA4YjAyNDI4ZDNmNWM3NDdlNzY1ZjllN2Y3YTRhZWMwNWMyM2Y0
NGQyLi40M2JhMjBlYmEwNWQwMzJlZmZmMzA3MGE4Mzk5MjU1MGZiNjE2OTc3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjAtMTItMDggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9u
IG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9hdWRpby1jYXB0dXJlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8t
Y2FwdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMjAtMTItMDggIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBTdXBwb3J0IGFzcGVjdC1yYXRpbyBvbiBub24tcmVwbGFjZWQgZWxlbWVudHMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDMwMDg0NWZhMjI2M2IwMTM5ZDhlZDZhOWE4OTJkNmM5NjQ3YmQ3
NmQuLjgyZTJjZjk1NDAxMjU3NGMxNTQwM2VjYzk5NGYyYjEwNDc4YTBjNmEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTgxLDYgKzE4MSw3IEBAIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJp
dmFjeS8gWyBTa2lwIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlzc2lvbi1lcnJvci5o
dG1sIFsgU2tpcCBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRo
ZW4tc3RvcC5odG1sIFsgU2tpcCBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29u
ZC1yZWNvZ25pdGlvbi5odG1sIFsgU2tpcCBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy8g
WyBTa2lwIF0KIAogIyBPbmx5IHBhcnRpYWwgc3VwcG9ydCBvbiBDb2NvYSBwbGF0Zm9ybXMuCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvIFsgU2tpcCBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9hdWRpby1jYXB0
dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9z
L2F1ZGlvLWNhcHR1cmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2ODMyYTE3Y2ZjZjNiOGFk
MmRmODAyZGE1ZTcyYzNlZDA0MDJhNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9hdWRpby1jYXB0dXJlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitWZXJpZnkgdGhhdCBhdWRpbyBjYXB0dXJlIG9uIGlPUyBoYXBwZW5zIGlu
IHdlYiBwcm9jZXNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWNv
Z25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1Jl
Y2VpdmVkIHN0YXJ0IGV2ZW50CitSZWNlaXZlZCBhdWRpb3N0YXJ0IGV2ZW50CitQQVNTIGludGVy
bmFscy5hdWRpb1Nlc3Npb25DYXRlZ29yeSgpIGlzICJQbGF5QW5kUmVjb3JkIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1cmUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1cmUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lOGU1MDljMjkxMGE2MjA2Nzc1N2Y1NzEwNzk5MTEwYTlhYjhiZmQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3Mv
YXVkaW8tY2FwdHVyZS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGF1ZGlvIGNhcHR1
cmUgb24gaU9TIGhhcHBlbnMgaW4gd2ViIHByb2Nlc3MuIik7CisKK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworfQorCitzaG91bGROb3RUaHJvdygi
cmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3JlY29nbml0aW9uLm9u
c3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgc3RhcnQgZXZlbnQiKTsK
K30KKworcmVjb2duaXRpb24ub25hdWRpb3N0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWco
IlJlY2VpdmVkIGF1ZGlvc3RhcnQgZXZlbnQiKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiaW50ZXJuYWxzLmF1ZGlvU2Vzc2lvbkNhdGVnb3J5KCkiLCAiUGxheUFuZFJlY29yZCIpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24uc3Rh
cnQoKSIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggOTZlNjZiMTViMTlkZjBlNWI1MGRhZGFmMmIyOTJlODk3MTBkNjAyYi4uYTlhOTQx
YTkyM2IxNDBkZjcyY2M0OWUyMDg1NzViYzMxNjA0MWRhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTcsNiArMTcsNyBAQCBjb250YWN0
LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbCBbIFBhc3MgXQogZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24gWyBQYXNzIF0KIGZhc3QvaGlzdG9yeS9pb3MgWyBQYXNzIF0KIGZhc3Qvc2Nyb2xsaW5n
L2lvcyBbIFBhc3MgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MgWyBQYXNzIF0KIGZhc3Qv
dmlld3BvcnQvaW9zIFsgUGFzcyBdCiBmYXN0L3Zpc3VhbC12aWV3cG9ydC9pb3MvIFsgUGFzcyBd
CiBzY3JvbGxpbmdjb29yZGluYXRvciBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415722</attachid>
            <date>2020-12-08 23:16:51 -0800</date>
            <delta_ts>2020-12-08 23:55:55 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219371-20201208231650.patch</filename>
            <type>text/plain</type>
            <size>90586</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEzNzFjYWNlMTVkMGVh
NWI4YTEwYWY4YTBlNTg1NjBiMzMxOTFmNS4uMjNlMWQ4NTA4OGJjMDg4NjZkMjcyMDlkZTk2ZWZm
ZmNhNzJiNDgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTEyLTA4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAg
ICAgICBBZGQgYSB3YXkgdG8gc2V0IFJlYWx0aW1lTWVkaWFTb3VyY2UgbWVtYmVyIG9mIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuCisKKyAgICAgICAgVGVzdDogZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS5odG1sCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpyZXNldCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzZXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMi0wOCAgRGllZ28gUGlubyBHYXJjaWEgIDxk
cGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBSRUdSRVNTSU9OKHIyNzA1MjYpOiBT
ZXZlcmFsIFVSTCByZWxhdGVkIHRlc3RzIGFyZSBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVmZjk3MTc2
OGI4ODc3MzJmNTYxYWIzNmFhZTc3YjQwN2Q1N2EyYmYuLjM2MTgxNTkzOGUwNTcwYWM0MTQ0M2Rk
MjE5MzNlOTcyNjdlZmM1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjAtMTItMDgg
IFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1
ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MTgyNDA0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0Lgor
CisgICAgICAgIE9uIGlPUywgYXVkaW8gY2FwdHVyZSBpcyBkb25lIGluIHdlYiBwcm9jZXNzLiBG
b3Igc3BlZWNoIHJlY29nbml0aW9uLCByZWNvZ25pemVyIGlzIGluIFVJIHByb2Nlc3MuIFRoZXJl
Zm9yZSwKKyAgICAgICAgVUkgcHJvY2VzcyBuZWVkcyB0byBhc2sgd2ViIHByb2Nlc3MgdG8gY2Fw
dHVyZSBhdWRpbyBhbmQgc2VuZCBiYWNrIGRhdGEuIFRvIGltcGxlbWVudCB0aGlzLCB0aGlzIHBh
dGNoIGFkZGVkOgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTogc3ViY2xhc3MgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSBhbmQgY29ubmVj
dCB0byBhIHJlbW90ZSAKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSAob3du
ZWQgYnkgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNl
KSBpbiB3ZWIgcHJvY2Vzcy4KKyAgICAgICAgLSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOiBtYW5hZ2UgYWxsIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VzLgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6IG1hbmFnZSBhbGwgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LgorICAgICAgICAtIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OlNvdXJjZTogb3duIGFuZCBtb25pdG9yIGEgbG9jYWwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZS4KKworICAgICAgICBUaGlzIHN0cnVjdHVyZSBpcyB2ZXJ5IHNpbWlsYXIgdG8gaG93IHdl
IGltcGxlbWVudCBtZWRpYSBjYXB0dXJlIG9uIG1hY09TIChSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLCAKKyAgICAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgYW5kIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkpLCB3aGVyZSB3ZSBzZW5kIGRhdGEgZnJvbSBVSSBwcm9jZXNzIHRvIHdl
YiBwcm9jZXNzCisgICAgICAgIGluc3RlYWQuIFdlIHNob3VsZCB1bmlmeSB0aGUgYXJjaGl0ZWN0
dXJlIGlmIHBvc3NpYmxlLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChX
ZWJLaXQ6Om1fcmluZ0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVj
aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxh
YmxlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdGVTb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjphZGRTb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgor
ICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpyZW1vdGVDYXB0dXJlRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlU291cmNl
U3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpz
ZXRTdG9yYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JTcGVl
Y2hSZWNvZ25pdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6OlNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNv
dXJjZTo6flNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2U6OnN0b3Ap
OgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpTb3VyY2U6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6flNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmV2
b2tlU2FuZGJveEV4dGVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpjcmVhdGVTb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpkZWxldGVT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEIGNvbnN0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvU3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTEyLTA4ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb25jdXJyZW50IERpc3Bs
YXkgTGlzdHNdIEFkZCBhIG5ldyB0eXBlIHRvIHJlcHJlc2VudCBhIHNldCBvZiBHUFUgcHJvY2Vz
cyB3YWtldXAgYXJndW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiMWY1NGY2MWMyYTNkYjlm
MWRlMTRmMmRlZWNjOWQ5N2Y0MThhYzgxLi44MjU2Mjk4ZmI5ZmE2ZDA3MDBlY2VkYzliMWQ4YmIz
OThiZDBlMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEzNDMsNiArMTM0Myw3IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCisgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgKICAgICBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmNwcAppbmRleCBjOTNiNmYzOGJjNjIzOGRhMWRiYTg2OGUyOWUxZTViMWU2ZjY2
YjZiLi5kN2VjZTY1OWYwODkyOWRmYmM3N2MxNzExYTk0NGM3YzExNWU2MTQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTM0LDkgKzM0LDEwIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRl
VXBkYXRlQ2FsbGJhY2smJiBzdGF0ZVVwZGF0ZUNhbGxiYWNrKQotewogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKK09wdGlvbmFsPENhcHR1cmVEZXZpY2U+IFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZTo6ZmluZENhcHR1cmVEZXZpY2UoKQorewogICAgIE9wdGlvbmFsPENhcHR1cmVE
ZXZpY2U+IGNhcHR1cmVEZXZpY2U7CiAgICAgYXV0byBkZXZpY2VzID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOwogICAgIGZvciAoYXV0byBkZXZpY2Ug
OiBkZXZpY2VzKSB7CkBAIC01MSwyNiArNTIsMTkgQEAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb24K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBjYXB0dXJl
RGV2aWNlOworfQogCi0gICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gZXJy
b3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
OkF1ZGlvQ2FwdHVyZSwgIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH07Ci0g
ICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0
ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
CitDYXB0dXJlU291cmNlT3JFcnJvciBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNy
ZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmlj
ZSkKK3sKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
YXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2
aWNlLCB7IH0sIHsgfSk7Cit9CiAKLSAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoKmNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKLSAgICBpZiAoIXJlc3VsdCkg
ewotICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJlc3VsdC5lcnJvck1lc3NhZ2UgfTsK
LSAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xp
ZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNh
bGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYg
c291cmNlKQorICAgIDogbV9pbXBsKG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZN
b3ZlKHN0YXRlVXBkYXRlQ2FsbGJhY2spLCBXVEZNb3ZlKHNvdXJjZSkpKQoreworfQogCi0gICAg
bV9pbXBsID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihj
bGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRh
dGVDYWxsYmFjayksIHJlc3VsdC5zb3VyY2UoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShj
bGllbnRJZGVudGlmaWVyKTsKLSAgICBVTlVTRURfUEFSQU0oZGF0YUNhbGxiYWNrKTsKLSAgICBV
TlVTRURfUEFSQU0oc3RhdGVVcGRhdGVDYWxsYmFjayk7CiAjZW5kaWYKLX0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAppbmRleCA3Mzg2Y2VlZTI3
NDA3Y2M2MTA0ZTI5ZWQ3M2RlN2RhMGE0OWY0ZTBhLi42OWY5YTg4YjI2MWU3MWY2NmVjMDBiYjll
NzFkYTBmM2FjODE5NDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtNDIsMTAg
KzQyLDE2IEBAIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOwogY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoKSA9IGRlZmF1bHQ7CiAg
ICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB1c2lu
ZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6
ZV90KT47CiAgICAgdXNpbmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29u
c3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47Ci0gICAgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERh
dGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYpOworCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYsIFN0YXRlVXBk
YXRlQ2FsbGJhY2smJiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBmaW5kQ2FwdHVy
ZURldmljZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyNlbmRp
ZgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCmluZGV4IDViZWI2MDU2
NDdiMzI5ZTI2NGY4M2MyNDlmNTdjMmEyMDgxYzJmZDcuLmY5MTZkMmJhNGQyODBmNzU4NjEyYjU3
Y2MxMjE5NGY5YjRkM2I1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCkBAIC01MCwxOSArNTAsMjMgQEAgdm9pZCBTcGVlY2hS
ZWNvZ25pemVyOjpyZXNldCgpCiAKICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25F
cnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLCAiQW5vdGhlciByZXF1
ZXN0IGlzIHN0YXJ0ZWQiIH07CiAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOworCisg
ICAgbV9jbGllbnRJZGVudGlmaWVyID0gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIFNwZWVjaFJl
Y29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIgaWRlbnRpZmllcikKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCit2b2lkIFNwZWVjaFJl
Y29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIgaWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogewotICAg
IHJlc2V0KCk7CisgICAgQVNTRVJUKCFtX3NvdXJjZSk7CiAKICAgICBtX2NsaWVudElkZW50aWZp
ZXIgPSBpZGVudGlmaWVyOwogICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6U3RhcnQpKTsKIAotICAgIHN0YXJ0SW50ZXJuYWwoKTsKKyAgICBzZXRTb3VyY2Uo
V1RGTW92ZShzb3VyY2UpKTsKIH0KIAotdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVy
bmFsKCkKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiYmIHNvdXJjZSkKIHsKICAgICBhdXRvIGRhdGFDYWxsYmFjayA9IFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBhdXRvJiB0aW1lLCBjb25zdCBhdXRvJiBkYXRhLCBj
b25zdCBhdXRvJiBkZXNjcmlwdGlvbiwgYXV0byBzYW1wbGVDb3VudCkgewogICAgICAgICBpZiAo
IXdlYWtUaGlzKQpAQCAtOTAsOSArOTQsMTEgQEAgdm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFy
dEludGVybmFsKCkKICAgICAgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKICAgICB9OwogCi0g
ICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4o
Km1fY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXRl
VXBkYXRlQ2FsbGJhY2spKTsKKyAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxs
YmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjayksIFdURk1vdmUoc291cmNlKSk7CiB9
CiAKKyNlbmRpZgorCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVG
aW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KQogewogICAgIGlmICghbV9jbGll
bnRJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5oCmluZGV4IGU2ZjEzZmVlODRhNTMzYWYwZjA0ZTA3NjljMWFlMDk1YmU1YmZm
M2YuLmVjNWFjMTMwYjhhMDQ3N2RhOTFmZDFlMWU3ZmMyYzcwYTRhMzI2M2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTM5LDE3
ICszOSwyMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVj
b2duaXplcihEZWxlZ2F0ZUNhbGxiYWNrJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5TcGVlY2hS
ZWNvZ25pemVyKCkgPSBkZWZhdWx0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
JiYpOworI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNldCgpOwogICAgIGVudW0g
Y2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7IE5vLCBZZXMgfTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9IFNob3VsZEdlbmVy
YXRlRmluYWxSZXN1bHQ6Olllcyk7CiAKICAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgcmVz
ZXQoKTsKLSAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoKTsKICAgICB2b2lkIHN0b3BJbnRlcm5hbCgp
OwogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB2b2lkIHNldFNvdXJjZShSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4mJik7CisjZW5kaWYKKwogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKICAg
ICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVDYWxsYmFjazsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyYzdjZDg3
YzgzYjIzMGFlOTRjN2NlMzAxYWNlMTUwM2E5ZmM2YjgyLi5iNGI4ZTk4ZGRkODJhMjFmYzY4ZjAy
NTg0MDIyNmQyYjc2ODg3NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzY2NCwxMyArMjM2NjQsNiBAQAogCQkJcGF0aCA9
IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJOTNGNkI4MEUyNTY2
RURFMTAwQTA4NDg4IC8qIGNvY29hICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGls
ZHJlbiA9ICgKLQkJCSk7Ci0JCQlwYXRoID0gY29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwotCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4NEYgLyogcGFyc2VyICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI1NzAxLDcgKzI1Njk0LDYg
QEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4
IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3cr
U3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyog
RE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5
NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApp
bmRleCBiZTA4NjUxMzJiZjQ1NmUzNTViZWIzMWI2ZGM0NjYzYmQyZDI0M2M1Li4wNmJlNzYxNWY0
N2NiZGY5MjIyZGRlM2ZiNWFlZThkODY2MDJmMjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTEw
Myw2ICsxMDMsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvUmVzb3Vy
Y2VDYWNoZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1NwZWVjaCIKICAgICAiJHtX
RUJLSVRfRElSfS9XZWJQcm9jZXNzL1N0b3JhZ2UiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9Vc2VyQ29udGVudCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0IgpAQCAtMTg3LDYgKzE4OCw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMK
ICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlcgogCiAgICAgVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkKKyAgICBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgogICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlCiAgICAgVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eQpAQCAtMjU4LDYgKzI2MCw4IEBAIHNldChXZWJLaXRfTUVT
U0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5CiAKKyAgICBX
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyCisKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uCiAgICAg
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCAyNjdjZGQy
OTQzZTE0NmYwNWNjOGU3YzMxMDIyMzlkYmY2YmUzYjU3Li40YzYzYzI4NzMwNTk2ZTNmMGRmMmQ3
MWQ5YzdmZWIwYjJkNmExMmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDgsNiArMTA4LDcgQEAgJChQUk9KRUNUX0RJUikvVUlQcm9j
ZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclBy
b3gKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KQEAg
LTE2NSw2ICsxNjYsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
eHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDYwZDQ0MzAyNmYzNmQ0
OTNhY2I2Mjc5ZDhmN2EwYzMxZWEyYjQ2MjkuLjkxOGIwMmE4MTE5NjBiOTJlZTU3MTgyZWYzMzg1
MDIzNDFjYzE4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdApAQCAtMjcyLDYgKzI3MiwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZQog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZm
ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCAzNThmNzRiYmQzMjUxNjRkMjk1NzYyMDEyN2U0YTYwMmQ5MmQ3YTU2Li4zZjk1NmU2NDYxMDli
OGY3ZmI3ODkxOTNiNzcxYzg1ZWM5YTkwYThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC02OSw2ICs2OSw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9P
cmlnaW5EYXRhIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9TcGVlY2ggXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKICAgICAkKFdl
YktpdDIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbiBcCkBAIC0xNjcsNiArMTY4LDcgQEAgTUVTU0FHRV9SRUNFSVZF
UlMgPSBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sIFwKIAlVSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkgXAogCVVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5IFwKKwlVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlciBcCiAJVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
IFwKIAlXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbiBcCkBAIC0yMDEsNiAr
MjAzLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJSVENSZXNvbHZlciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCisJV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1dlYlByb2Nlc3MgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKaW5kZXggY2I3OGJiMjJiNjczMjc0NDUxY2EzY2NkYzU2YTVlZmVmNjc3NTk4MC4uMTVjOTU3
ODk0YjcwYTRkYzc0ZmI4YjlhYzhhZGJlMWE3ZTNjYjAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yOTEs
NiArMjkxLDggQEAgVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCiBVSVByb2Nlc3MvUHJv
Y2Vzc1Rocm90dGxlci5jcHAKIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKIFVJ
UHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAorVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKK1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcAogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcAogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAK
IFVJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5jcHAKQEAgLTYzNyw2ICs2MzksOCBA
QCBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwIEBu
by11bmlmeQogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCBA
bm8tdW5pZnkKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVh
bS5jcHAgQG5vLXVuaWZ5CiAKK1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCisKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFh
ZTk5NjA1ZDc3Njg5M2E5ZmJlNzc4YjM4YzJjNWRlN2YwNDZiNmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIK
KworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6
OmNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
JiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSwgbWFuYWdlciwgY2FwdHVyZURldmljZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
JiBtYW5hZ2VyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQor
ICAgIDogV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbywgU3RyaW5nIHsgY2FwdHVyZURldmljZS5sYWJlbCgpIH0sIFN0
cmluZyB7IGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCkgfSkKKyAgICAsIG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQorICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVm
ZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCisj
ZW5kaWYKK3sKKyAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgqdGhpcywgY2FwdHVyZURldmljZSk7
Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpCit7CisgICAgaWYgKG1fbWFu
YWdlcikKKyAgICAgICAgbV9tYW5hZ2VyLT5yZW1vdmVTb3VyY2UoKnRoaXMpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNp
bmdEYXRhKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAgICAgICBtX21hbmFnZXItPnNlbmQo
TWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlN0
YXJ0IHsgbV9pZGVudGlmaWVyIH0pOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX21h
bmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RvcCB7IG1faWRlbnRpZmllciB9KTsKK30K
KworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYg
aGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0
aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVz
Y3JpcHRpb247CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7CisgICAgaWYgKCFo
YW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFu
ZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICAgICAgTE9HX0VS
Uk9SKCJVbmFibGUgdG8gY3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIHJlbW90ZSBzb3VyY2UiKTsK
KyAgICB9CisKKyAgICBhdXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7CisgICAgaWYgKCFtZW1vcnkpIHsK
KyAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2Uuc2V0
UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9yYWdlLnNldFN0b3JhZ2UobnVsbHB0cik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdG9yYWdlLnNldFN0b3JhZ2UobWVtb3J5LnJl
bGVhc2VOb25OdWxsKCkpOworICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkodHJ1ZSk7CisgICAgbV9y
aW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1f
YnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7Cit9CisKKyNlbmRpZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGlt
ZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWlu
dDY0X3QgZW5kRnJhbWUpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKCFtX2J1ZmZl
cikgeworICAgICAgICBMT0dfRVJST1IoIkJ1ZmZlciBmb3IgcmVtb3RlIHNvdXJjZSBpcyBudWxs
Iik7CisgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIG1fYnVmZmVyLT5zZXRTYW1wbGVDb3VudChudW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5n
QnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAg
IG1fcmluZ0J1ZmZlci0+ZmV0Y2gobV9idWZmZXItPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRp
bWUudGltZVZhbHVlKCkpOworICAgIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCAqbV9idWZm
ZXIsIG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHRpbWUpOworICAgIFVOVVNFRF9QQVJBTShudW1iZXJPZkZyYW1lcyk7CisgICAgVU5VU0VE
X1BBUkFNKHN0YXJ0RnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShlbmRGcmFtZSk7CisjZW5kaWYK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJl
bW90ZUNhcHR1cmVGYWlsZWQoKQoreworICAgIGNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJjZVN0
b3BwZWQoKQoreworICAgIHN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
N2JjMGQxMzFmMmNkYjE1ZjkyNWNlMDkwMTk1N2VmYTRkNDQwY2JlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FwdHVyZURldmljZTsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+
IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
JiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIH5TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0U3RvcmFnZShjb25zdCBT
aGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgdm9pZCByZW1v
dGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQgcmVt
b3RlQ2FwdHVyZUZhaWxlZCgpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZCgpOworCitw
cml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmKTsKKworICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2b2lk
IHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEo
KSBmaW5hbDsKKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAg
IGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBm
aW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX21hbmFnZXI7CisgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKKyAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBt
X2Rlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
IG1fcmluZ0J1ZmZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6V2ViQXVkaW9CdWZm
ZXJMaXN0PiBtX2J1ZmZlcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lYjRjNzYzNmRhOGExNmNjNGNmZWJhNjA3MmMwNWMzZTdhOTNi
OTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwx
MTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9u
KSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjphZGRTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlJiBzb3VyY2UsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZp
Y2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLmlkZW50aWZpZXIoKTsKKyAgICBB
U1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFk
ZChpZGVudGlmaWVyLCBtYWtlV2Vha1B0cihzb3VyY2UpKTsKKworI2lmIEVOQUJMRShTQU5EQk9Y
X0VYVEVOU0lPTlMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgaWYgKCFtX2hhc0dy
YW50ZWRTYW5kYm94RXh0ZW5zaW9ucykgeworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgaGFuZGxlRm9yVENDRDsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnRjY2QiX3MsIG1fY29ubmVjdGlvbi0+Z2V0QXVkaXRU
b2tlbigpLCBoYW5kbGVGb3JUQ0NEKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IGhhbmRsZUZvck1pY3JvcGhvbmU7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvckdlbmVyaWNFeHRlbnNpb24oImNvbS5hcHBsZS53ZWJraXQubWljcm9waG9uZSJfcywg
aGFuZGxlRm9yTWljcm9waG9uZSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkdyYW50U2FuZGJveEV4dGVuc2lvbnMo
aGFuZGxlRm9yVENDRCwgaGFuZGxlRm9yTWljcm9waG9uZSkpOworICAgICAgICBtX2hhc0dyYW50
ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IHRydWU7CisgICAgfQorI2VuZGlmCisKKyAgICBzZW5kKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpDcmVh
dGVTb3VyY2UoaWRlbnRpZmllciwgY2FwdHVyZURldmljZSkpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSkKK3sKKyAg
ICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVChtX3Nv
dXJjZXMuZ2V0KGlkZW50aWZpZXIpID09ICZzb3VyY2UpOworICAgIG1fc291cmNlcy5yZW1vdmUo
aWRlbnRpZmllcik7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKSAmJiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorICAgIGlmIChtX3NvdXJjZXMuaXNFbXB0eSgpICYmIG1faGFzR3Jh
bnRlZFNhbmRib3hFeHRlbnNpb25zKSB7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJldm9rZVNhbmRib3hFeHRlbnNp
b25zKCkpOworICAgICAgICBtX2hhc0dyYW50ZWRTYW5kYm94RXh0ZW5zaW9ucyA9IGZhbHNlOwor
ICAgIH0KKyNlbmRpZgorCisgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6RGVsZXRlU291cmNlKGlkZW50aWZpZXIpKTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpy
ZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkK
K3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAg
ICAgICBzb3VyY2UtPnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBudW1iZXJPZkZy
YW1lcywgc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUNhcHR1cmVGYWlsZWQoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBp
ZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3Vy
Y2UtPnJlbW90ZUNhcHR1cmVGYWlsZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNl
LT5yZW1vdGVTb3VyY2VTdG9wcGVkKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVNlbmRlckNv
bm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7Cit9CisK
K3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsK
K30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNldFN0b3JhZ2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENI
YW5kbGUmIGlwY0hhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgaWYgKGF1dG8g
c291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zZXRT
dG9yYWdlKGlwY0hhbmRsZS5oYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9
CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE0
NmE5YjM2MzAyMzk3YjFiODY0ZmY0ZmE4YTczNmE1NTNhZTY1OAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNoYXJlZE1l
bW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIu
aD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7CisKKyNpZiBQTEFURk9STShDT0NPQSkKK2Ns
YXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKKyNlbmRpZgorfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyIGZpbmFsIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIs
IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgdm9pZCBhZGRT
b3VyY2UoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlKFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOworCitwcml2YXRlOgorICAgIC8v
IE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyCisgICAgdm9pZCByZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgdWludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsK
KyAgICB2b2lkIHJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3RlU291cmNlU3RvcHBlZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9p
ZCBzZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25z
dCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29u
c3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWFrUHRyPFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZT4+IG1fc291cmNlczsKKyAg
ICBib29sIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zIHsgZmFsc2UgfTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQwNzEwMzk4YmM3YzJjNDcwNDRiMDNlNjVkMGFjYzg1ODBhMWVmZWEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzUgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIFJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBNZWRp
YVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUs
IHVpbnQ2NF90IGVuZEZyYW1lKQorICAgIFJlbW90ZUNhcHR1cmVGYWlsZWQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBSZW1vdGVTb3VyY2VT
dG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIp
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBk
ZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisjZW5kaWYKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHAKaW5kZXggOWY2MDBkM2Y1Y2RjNmMzMmM1NDhhMGEwOWFiMDJiYzE0NTM0NTI0NC4uZDZm
YTg5YzU0ODMyNjJjMTAxYTI2ZDAzMDMyMzU1NzIwNmIxMmY2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtMzYsMTIg
KzM2LDIyIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKK1NwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8
SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRl
bnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyJiYg
cGVybWlzc2lvbkNoZWNrZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmIGZ1
bmN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBt
X2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fcGVybWlzc2lvbkNoZWNrZXIoV1RGTW92
ZShwZXJtaXNzaW9uQ2hlY2tlcikpCisgICAgLCBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVG
dW5jdGlvbihXVEZNb3ZlKGZ1bmN0aW9uKSkKK3sKK30KKyNlbHNlCiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uLCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciYmIHBlcm1pc3Npb25DaGVja2VyKQog
ICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAgLCBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKICAgICAsIG1fcGVybWlzc2lvbkNoZWNrZXIoV1RGTW92ZShwZXJtaXNz
aW9uQ2hlY2tlcikpCiB7CiB9CisjZW5kaWYKIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJv
b2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcywgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJiYgb3JpZ2luKQogewpAQCAtOTIsOCArMTAyLDIxIEBAIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uCiAgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CiAgICAgICAgIH0pOwog
ICAgIH0KLQotICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7CisgICAg
CisgICAgbV9yZWNvZ25pemVyLT5yZXNldCgpOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBtX3JlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5j
dGlvbigpOworICAgIGlmICghc291cmNlT3JFcnJvcikgeworICAgICAgICBtX3JlcXVlc3RzLnJl
bW92ZShjbGllbnRJZGVudGlmaWVyKTsKKyAgICAgICAgc2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJy
b3JUeXBlOjpBdWRpb0NhcHR1cmUsIHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlIH0pKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50
aWZpZXIsIHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOworI2Vsc2UKKyAgICBtX3JlcXVlc3RzLnJl
bW92ZShjbGllbnRJZGVudGlmaWVyKTsKKyAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIs
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlw
ZTo6QXVkaW9DYXB0dXJlLCAiQXVkaW8gY2FwdHVyZSBpcyBub3QgaW1wbGVtZW50ZWQifSk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaAppbmRleCBhN2Y3NmQzOGVlNTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3Li5lZDY3
MjY0YWExMzFlMWUxNDIxZWFhNDE0ZDQxNzEzYzY5NWQ4MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTM2LDYgKzM2LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU7CitzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CiBzdHJ1Y3QgQ2xpZW50T3Jp
Z2luOwogfQogCkBAIC01MCw3ICs1MSwxMiBAQCB1c2luZyBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25DaGVja2VyID0gRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpDbGllbnRPcgogY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHVzaW5nIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDcmVhdGVGdW5jdGlvbiA9IEZ1bmN0aW9uPFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
KCk+OworICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYs
IFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2hlY2tlciYmLCBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24mJik7Cisj
ZWxzZQogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYs
IFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2hlY2tlciYmKTsKKyNlbmRpZgogCiAgICAgdm9pZCBzdGFydChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBi
b29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0
aXZlcywgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYpOwogICAgIHZvaWQgc3RvcChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKQEAgLTc1LDYgKzgx
LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAgICBTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uIG1fcmVh
bHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDQyMmMxMDg0ZDBhNzM1YWI1YWUyZWVmZjY5YjBkYTVjOGI2ZjEzNTAuLjJlYjU4ZGUzMjkyM2Vm
OTA4MWQwYWIxMmRmMjg2OTkwMWI4Zjk2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtODcsNiArODcsOCBAQAogI2luY2x1ZGUgIlNhZmVCcm93c2luZ1dh
cm5pbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRl
ICJTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5o
IgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTEwMzA0LDYgKzEwMzA2LDI2IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlE
ZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvCiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25NYW5hZ2VyLT5kZWNpZGVCeURlZmF1bHRBY3Rpb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitXZWJDb3JlOjpD
YXB0dXJlU291cmNlT3JFcnJvciBXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpCit7CisgICAgaWYgKHByZWZlcmVuY2VzKCkuY2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgeyAiTm90IGltcGxlbWVudGVkIGZvciBHUFUgcHJvY2VzcyIgfTsKKworICAgIGF1
dG8gY2FwdHVyZURldmljZSA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6ZmluZENh
cHR1cmVEZXZpY2UoKTsKKyAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisgICAgICAgIHJldHVybiBD
YXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJl
IiB9OworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNy
ZWF0ZShtX3Byb2Nlc3MtPmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIoKSwgKmNhcHR1cmVEZXZpY2UpIH07CisjZWxzZQorICAgIHJldHVybiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2Uo
KmNhcHR1cmVEZXZpY2UpOworI2VuZGlmCit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjMyZWQzN2JkMWJmOTMwYWFmOGY5OTg0MzZkNjMwNTQy
ZWE5MzA4NS4uZDk2ODMxM2RkZDJkNjNjZDBhNTg3NmNiYmRjYWE3NTIwZWE4Mzg3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE4MzMsNiArMTgzMywxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRl
TmV3R3JvdXBGb3JIaWdobGlnaHQpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJlYWx0aW1lTWVkaWFT
b3VyY2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2Vi
UGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU3ZDljZGZlNTUzNWMy
N2M0NTA0ZjAxMGE2ZWRmOGU0YzVlM2NhNmEuLmFkZWU1ZmI5ZTdiYmQ4OGMwODhlNjllZjRlNTU2
ZWYzYThkMGQ1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJUZXh0Q2hl
Y2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTE3MDIsOCArMTcwNCw2
IEBAIFBBTDo6U2Vzc2lvbklEIFdlYlByb2Nlc3NQcm94eTo6c2Vzc2lvbklEKCkgY29uc3QKIAog
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVj
aFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIGF1dG8gc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChp
ZGVudGlmaWVyLCBudWxscHRyKTsKLSAgICBBU1NFUlQoc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aXNOZXdFbnRyeSk7CiAgICAgV2ViUGFnZVByb3h5KiB0YXJnZXRQYWdlID0gbnVsbHB0cjsKICAg
ICBmb3IgKGF1dG8qIHBhZ2UgOiBwYWdlcygpKSB7CiAgICAgICAgIGlmIChwYWdlICYmIHBhZ2Ut
PndlYlBhZ2VJRCgpID09IGlkZW50aWZpZXIpIHsKQEAgLTE3MTUsMTUgKzE3MTUsMjMgQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJl
Y29nbml0aW9uU2VydmVySWRlbnQKICAgICBpZiAoIXRhcmdldFBhZ2UpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHNwZWVjaFJlY29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VV
bmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24oKSksIGlk
ZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXShhdXRvJiBvcmln
aW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CisgICAgQVNTRVJUKCFtX3Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBhdXRv
JiBzcGVlY2hSZWNvZ25pdGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAu
YWRkKGlkZW50aWZpZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBzcGVlY2hSZWNv
Z25pdGlvblNlcnZlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+KG1ha2VS
ZWYoKmNvbm5lY3Rpb24oKSksIGlkZW50aWZpZXIsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRh
cmdldFBhZ2UpXShhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghd2Vha1BhZ2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIHdlYWtQYWdlLT5yZXF1ZXN0U3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotICAgIH0pOwotICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgaWRlbnRpZmllciwgKnNwZWVjaFJl
Y29nbml0aW9uU2VydmVyLml0ZXJhdG9yLT52YWx1ZSk7CisgICAgfQorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisgICAgLCBbd2Vha1BhZ2UgPSBtYWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oKSB7
CisgICAgICAgIHJldHVybiB3ZWFrUGFnZSA/IHdlYWtQYWdlLT5jcmVhdGVSZWFsdGltZU1lZGlh
U291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKSA6IENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlBh
Z2UgaXMgaW52YWxpZCIgfTsKKyAgICB9CisjZW5kaWYKKyAgICApOworICAgIGFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgaWRlbnRpZmllciwgKnNwZWVjaFJlY29nbml0aW9uU2VydmVyKTsKIH0KIAogdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmRlc3Ryb3lTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKQEAgLTE3MzMsNiArMTc0MSwy
MCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbgogICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJNYXAucmVtb3ZlKGlkZW50aWZpZXIpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgV2Vi
UHJvY2Vzc1Byb3h5OjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcikgeworICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+KG1ha2VSZWYoKmNvbm5lY3Rpb24o
KSkpOworICAgICAgICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgKm1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik7
CisgICAgfQorCisgICAgcmV0dXJuICptX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI7Cit9CisKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykK
IAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0QmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVsbHNj
cmVlbklucHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggYzEwYjM5NDhkNzc2NzYzNzE0ZDE2NDc5YjU5MzYyODJhNjk3MzNkYS4uYTExYTM5NGU3YWE4
YjNmYzkzZTg3OGEyZTAxOThjODllMWUyNzNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgc3RydWN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKIHN0cnVjdCBXZWJz
aXRlRGF0YTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCisKIGVudW0gRm9y
ZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyVHlwZSB7IH07CiB0eXBlZGVmIFJlZkNvdW50ZXI8Rm9y
ZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyVHlwZT4gRm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVy
OwogdHlwZWRlZiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI6OlRva2VuIEZvcmVncm91bmRX
ZWJQcm9jZXNzVG9rZW47CkBAIC0zOTQsNiArMzk4LDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
SVBDX1RFU1RJTkdfQVBJKQogICAgIHZvaWQgc2V0SWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0
aW5nKCk7CiAjZW5kaWYKKyAgICAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVuc3VyZVNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRpZgog
CiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0
ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKQEAgLTY0Myw2ICs2NTEsOSBAQCBwcml2YXRlOgog
CiAgICAgdXNpbmcgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgPSBIYXNoTWFwPFNwZWVjaFJl
Y29nbml0aW9uU2VydmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0
aW9uU2VydmVyPj47CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAgbV9zcGVlY2hSZWNv
Z25pdGlvblNlcnZlck1hcDsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5p
cXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
PiBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7Cisj
ZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWVlZjQxZjMzMmNiNTE5Y2RiMmQ5
ODJhZTJiOTg4OWQ5MGQwNWI1NC4uM2Y1MDMwNjU0Mzk1MzY0MzhiOGNkOWYyMThkZDM0MTE0ZTIw
NDIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xNDQ2LDYgKzE0NDYsMTEgQEAKIAkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8q
IFdlYkhpdFRlc3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0E4OEIzMTFCQzZFOUMwMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3Vs
dERhdGEuaCAqLzsgfTsKIAkJOTNBODhCM0IxQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RS
ZXN1bHRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHRJbnRlcm5h
bC5oICovOyB9OwogCQk5M0E4OEI0NjFCQzg4MjkzMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhC
NDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLzsgfTsKKwkJOTNBQjlC
NEMyNTc1NjNGMzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyLmggKi87IH07CisJCTkzQUI5QjREMjU3NTY3REMwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0NTI1NzQ5MjhE
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oICovOyB9OworCQk5M0FCOUI0RTI1NzU2N0UyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi87IH07CisJCTkzQUI5QjU1
MjU3NUEyNzYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQUI5QjRGMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
KwkJOTNBQjlCNTYyNTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk5M0IyNjE0RDIyN0QxNDlFMDBCOTdBNzYgLyogU3Rv
cmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQjI2MTQ5MjI3RDE0NzIwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oICovOyB9Owog
CQk5M0IyNjE0RTIyN0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ1MjI3RDE0
NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovOyB9OwogCQk5M0IyNjE0RjIy
N0QxNEIxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NjIyN0QxNDcxMDBC
OTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmggKi87IH07CkBAIC00NjE3LDYg
KzQ2MjIsMjAgQEAKIAkJOTNBODhCM0ExQkM3MTBEOTAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1
bHRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0
UmVzdWx0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODhCNDIx
QkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzQTg4QjQzMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVz
dWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUhpdFRlc3RSZXN1bHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDIyNTc0OTI4QzAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDMyNTc0
OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5M0FCOUI0NDI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNDUyNTc0OTI4
RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0FCOUI0NjI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0OTI1
NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0FCOUI0QTI1NzRDNjFGMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRCMjU3NEM2MUYwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0
RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTAyNTc1
ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNTIyNTc1ODkxMjAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MzI1NzU4OTEyMDA5
OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1NDI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Iy
NjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlRGF0YWJhc2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMjYxNDYyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3Rv
cmFnZURhdGFiYXNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
b2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNCMjYxNDcyMjdEMTQ3MTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTAxMyw2
ICs5MDMyLDE2IEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBFIC8qIFNwZWVjaCAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNBQjlCNEIyNTc0QzYxRjAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICov
LAorCQkJCTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDkyNTc0QzYxRTAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW4gKi8sCisJCQkpOworCQkJcGF0aCA9IFNwZWVjaDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCTkzQjI2MTQzMjI3RDE0MzEwMEI5N0E3NiAvKiBXZWJTdG9yYWdlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkyMTcsNiArOTI0Niw3
IEBACiAJCQkJNTEwNUIwRDIxNjJGN0E1RTAwRTI3NzA5IC8qIE5ldHdvcmsgKi8sCiAJCQkJMzEw
OTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAogCQkJCTFB
NkZCN0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAorCQkJCTkzQUI5QjQ4MjU3NEM1
Q0UwMDk4QjEwRSAvKiBTcGVlY2ggKi8sCiAJCQkJNTExOEU5OTgxRjI5NTI1OTAwM0VGOUY1IC8q
IFN0b3JhZ2UgKi8sCiAJCQkJMUFBRjA4QUExOTI2OTMwQjAwQjYzOTBDIC8qIFVzZXJDb250ZW50
ICovLAogCQkJCTU3NjA4MjhBMjAyOTg0QzkwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdGlvbiAq
LywKQEAgLTk0MzAsNiArOTQ2MCwxMSBAQAogCQkJCTkzRDZCN0IwMjU1MjY4QTEwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcCAqLywKIAkJCQk5M0Q2QjdC
MjI1NTI2OEEyMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5o
ICovLAogCQkJCTkzRDZCN0FGMjU1MjY4QTEwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmggKi8sCisJCQkJOTNBQjlCNDMyNTc0OTI4QzAwOThCMTBFIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJOTNB
QjlCNDIyNTc0OTI4QzAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oICovLAorCQkJCTkzQUI5QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLywKKwkJCQk5
M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlci5oICovLAorCQkJCTkzQUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovLAogCQkJCTkzRDZCNzZCMjU0Qjg5NTgwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAgKi8sCiAJCQkJOTNENkI3NkMyNTRCODk1ODAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyLmggKi8sCiAJCQkJOTNENkI3N0EyNTRDOTg0RDAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLm1lc3NhZ2VzLmluICovLApAQCAtMTA1ODYsNiArMTA2
MjEsMTIgQEAKIAkJCQkxREQyQTY3MjI1NjIzMjRGMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUREMkE2NzMyNTYyMzI0RjAw
RkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oICovLAogCQkJCTFE
RDJBNjcxMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZXNSZXBsaWVzLmggKi8sCisJCQkJOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MDI1NzU4OTEx
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQk5M0FCOUI1MzI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJ
OTNBQjlCNTIyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk5M0Q2Qjc4MTI1
NENDQUJDMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTkzRDZCNzgwMjU0Q0NBQkMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlck1lc3NhZ2VzLmggKi8sCiAJCQkJOTNENkI3N0YyNTRDQ0FCQjAwNThERDNBIC8qIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBsaWVzLmggKi8sCkBAIC0xMTY1Niw2ICsx
MTY5Nyw5IEBACiAJCQkJNTdGRDMxODUyMkIzNTE2OTAwOEQwRThCIC8qIFNPQXV0aG9yaXphdGlv
blNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I1MjU1MjY4RDcwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0Q2QjdCNDI1NTI2OEQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEMyNTc1NjNGMzAwOThCMTBFIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUI5QjREMjU3
NTY3REMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MjI1NEJCNTE5MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzg0
MjU0Q0NEMEUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc4NTI1NENDRDQzMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTM0NTAsNiAr
MTM0OTQsOCBAQAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1
dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMx
NUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUREMkE2NzQyNTYyMzJBMTAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZl
clByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNB
QjlCNTUyNTc1QTI3NjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBQjlC
NTYyNTc1QTI4QjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNE
NkI3ODIyNTRDQ0NGNDAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzM0REVEMTZERThGODgwMDZBOEUzOCAv
KiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzY4RUVERTIzMDNBOTAyMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGZmNDQ4YmVmODk0MWFjNDk1
YmUwOGVmNTNiZmFjMWI4MDY2ZWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmNwcApAQCAtMCwwICsxLDI1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKyNlbHNlCisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUF1ZGlvRGF0YS5oPgorI2VuZGlmCisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlCisgICAgOiBwcml2YXRlIFJlYWx0
aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAsIHB1Ymxp
YyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisjZW5kaWYKK3sKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNl
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCisgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAg
ICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkp
CisjZW5kaWYKKyAgICB7CisgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7Cisg
ICAgICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICB9CisK
KyAgICB+U291cmNlKCkKKyAgICB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHN0b3Jh
Z2UoKS5pbnZhbGlkYXRlKCk7CisjZW5kaWYKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlv
U2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIo
KnRoaXMpOworICAgIH0KKworICAgIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgbV9zb3Vy
Y2UtPnN0YXJ0KCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wKCkKKyAgICB7CisgICAgICAgIG1f
c291cmNlLT5zdG9wKCk7CisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7
CisgICAgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmlu
YWwKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSkgeworICAg
ICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlRmFpbGVkKG1faWRl
bnRpZmllciksIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlU291cmNlU3RvcHBlZChtX2lkZW50aWZpZXIpLCAw
KTsKKyAgICB9CisKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRp
bWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpIGZp
bmFsCisgICAgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAobV9kZXNjcmlwdGlv
biAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRm
b3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJl
YW1CYXNpY1R5cGUpOworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2Ny
aXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBtX251bWJlck9mRnJhbWVzID0g
bV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICAgICAgbV9yaW5nQnVmZmVy
LmFsbG9jYXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZy
YW1lcyk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0
PihhdWRpb0RhdGEpKTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLnN0b3JlKGRvd25jYXN0PFdlYkF1
ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRp
bWVWYWx1ZSgpKTsKKyAgICAgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICAgICAgdWludDY0
X3QgZW5kRnJhbWU7CisgICAgICAgIG1fcmluZ0J1ZmZlci5nZXRDdXJyZW50RnJhbWVCb3VuZHMo
c3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJl
bW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShtX2lkZW50aWZpZXIsIHRpbWUsIG51bWJlck9mRnJh
bWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSksIDApOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BB
UkFNKHRpbWUpOworICAgICAgICBVTlVTRURfUEFSQU0oYXVkaW9EYXRhKTsKKyAgICAgICAgVU5V
U0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJh
bWVzKTsKKyNlbmRpZgorICAgIH0KKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisgICAgdm9pZCBz
dG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpIGZpbmFsCisgICAgeworICAgICAg
ICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmIChzdG9yYWdlKQorICAg
ICAgICAgICAgc3RvcmFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7CisjaWYgT1MoREFSV0lOKSB8fCBPUyhXSU5ET1dTKQorICAgICAg
ICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7CisjZWxzZQorICAgICAgICB1aW50
NjRfdCBkYXRhU2l6ZSA9IDA7CisjZW5kaWYKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OjpTZXRTdG9yYWdlKG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZN
b3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9LCBtX2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJhbWVz
KSwgMCk7CisgICAgfQorCisjZW5kaWYKKworICAgIHZvaWQgYXVkaW9Vbml0V2lsbFN0YXJ0KCkg
ZmluYWwKKyAgICB7CisjaWYgVVNFKEFVRElPX1NFU1NJT04pCisgICAgICAgIGF1dG8gYnVmZmVy
U2l6ZSA9IEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKSAvIDUwOwor
ICAgICAgICBpZiAoQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVy
U2l6ZSgpID4gYnVmZmVyU2l6ZSkKKyAgICAgICAgICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpLnNldFByZWZlcnJlZEJ1ZmZlclNpemUoYnVmZmVyU2l6ZSk7CisgICAgICAgIEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6UGxheUFu
ZFJlY29yZCwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKKyNlbmRpZgorICAgIH0KKwor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOworICAgIHVpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBDQVJpbmdCdWZmZXIgbV9yaW5nQnVmZmVyOworICAgIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyNlbmRpZgorfTsKKwor
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgKnRoaXMpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjp+U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigp
Cit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0
aGlzKTsKK30KKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6Z3JhbnRTYW5kYm94RXh0ZW5z
aW9ucyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yVENDRCwgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEhhbmRsZUZvck1pY3JvcGhvbmUpCit7Cisg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShX
VEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JUQ0NEKSk7CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNp
b25Gb3JUQ0NEKQorICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBl
eHRlbnNpb24gZm9yIHRjY2QiKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lv
bkZvclRDQ0QtPmNvbnN1bWUoKTsKKworICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhv
bmUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoV1RGTW92ZShzYW5kYm94SGFuZGxlRm9yTWlj
cm9waG9uZSkpOworICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkKKyAg
ICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHNhbmRib3ggZXh0ZW5zaW9uIGZvciBt
aWNyb3Bob25lIik7CisgICAgZWxzZQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNy
b3Bob25lLT5jb25zdW1lKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6cmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQoreworICAgIGlmICht
X3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEKSB7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZv
clRDQ0QtPnJldm9rZSgpOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEID0gbnVs
bHB0cjsKKyAgICB9CisKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSkg
eworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lLT5yZXZva2UoKTsKKyAg
ICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IG51bGxwdHI7CisgICAgfQor
fQorCisjZW5kaWYKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpjcmVhdGVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlKQoreworICAgIGF1dG8gcmVzdWx0ID0g
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNl
KGRldmljZSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gY3JlYXRlIHJlYWx0aW1lIHNvdXJjZSIpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpSZW1vdGVDYXB0
dXJlRmFpbGVkKGlkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMu
YWRkKGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8U291cmNlPihpZGVudGlmaWVyLCByZXN1bHQuc291
cmNlKCksIG1ha2VSZWYoKm1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkpKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6ZGVsZXRlU291cmNl
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zb3Vy
Y2VzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdGFydChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRl
bnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+c3RhcnQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpzdG9wKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3Vy
Y2VzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAgc291cmNlLT5zdG9wKCk7Cit9CisKK0lQQzo6
Q29ubmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2Nvbm5lY3Rp
b24ucHRyKCk7Cit9CisKK3VpbnQ2NF90IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZDQ1YzRiOTUwN2Y1MDBjMjdjMzliZDFiOTAyOWM0OGE2ZjhhZjY3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1l
c3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJT
YW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNl
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiwgcHVibGljIElQQzo6TWVz
c2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB+
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworCitwcml2YXRl
OgorICAgIC8vIE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyCisgICAgdm9pZCBjcmVhdGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIGRl
bGV0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBzdGFydChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAg
dm9pZCBzdG9wKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyNpZiBF
TkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5zaW9u
cyhTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYp
OworICAgIHZvaWQgcmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKTsKKyNlbmRpZgorCisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVNl
bmRlci4KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29u
c3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dCBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKworICAg
IGNsYXNzIFNvdXJjZTsKKyAgICBmcmllbmQgY2xhc3MgU291cmNlOworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb3Vy
Y2U+PiBtX3NvdXJjZXM7CisKKyNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQorICAgIFJl
ZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JUQ0NEOworICAgIFJl
ZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lOwor
I2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MmRmMWQ4ZTU5ZjBhOGY2ODAxZTI2NDZhODdmMGQ3NTBk
NjYxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDM4IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBDcmVhdGVTb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UpCisgICAgRGVsZXRlU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgU3RhcnQoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcik7CisgICAgU3RvcChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKworI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9y
VENDRCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhh
bmRsZUZvck1pY3JvcGhvbmUpCisgICAgUmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKQorI2VuZGlm
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcAppbmRleCAzZjM1MzE5NGEzMmMzZTY3OWJjYTI5ZmJlYTg1MDMxYzkyMWU0ZmM0Li5l
MGQyYTU5ODU1NWI5ODk3ODU4NThhYjZjNjRhNzU0YWZkYTExMDkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsMTAgQEAg
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24oU3BlZWNoUmVjb2duaXRpb24KIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIsICp0aGlzKTsKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVy
KG1faWRlbnRpZmllciksIDApOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKCk7CisjZW5kaWYKIH0KIAogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjp+V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBjM2ZhODFlZGMwMGViNjkyNzczY2M3M2Y5ZjRhYWRj
Y2UxZGNjMTMyLi44NDc0OTU2YjM2YjA1NGQ3MWVhZTU1ZDFhOGNmMWM3OGQ5ZDdiZGM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAj
aW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RN
RmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5o
IgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCIKQEAgLTE5ODAsNiArMTk4
MSwxNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmVuYWJsZVZQOVNXRGVjb2RlcigpCiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzOjplbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPihtYWtlUmVmKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpKSk7CisKKyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlcjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVm
IFJFTEVBU0VfTE9HX1NFU1NJT05fSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CmluZGV4IGU5YzQ3ZGI0YzQ0N2MwZjRhYjYyN2MwOTRiNWY2OGRiNTY1YTlhNmMuLjdlNWE0Y2Fh
NGM1ZDJlMjM3ODgxM2ViNGYyZjQyMjhiZGU0Y2M1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaApAQCAtMTQyLDYgKzE0MiwxMCBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcjsKKyNlbmRpZgorCiBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGls
aWFyeVByb2Nlc3MKIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTM2MCw2ICsz
NjQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3luY2hyb25v
dXNseShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyJiBlbnN1cmVTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
KCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nl
c3MoKTsKQEAgLTY5Myw2ICs3MDEsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdnA5RGVjb2Rl
ckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV92cDlTV0RlY29kZXJFbmFibGVkIHsgZmFs
c2UgfTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9zcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworI2VuZGlmCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxODQwMTdlMzYxZGM1NjM4MDExODI0NWIwZWQz
Yjk5YmNiYWRkMWE3Li4zZmY4NDQwNDQxMmQxZGQxNzllYWQwNmM5ZGY2YzgzMDNhMDA4ZjY3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMTItMDggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJl
Y29nbml0aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5MzcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTgyNDA0OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9hdWRpby1jYXB0dXJl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9p
b3MvYXVkaW8tY2FwdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2sy
L1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMTItMDggIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBp
bm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gUkVHUkVTU0lPTihyMjcwNTI2KTogU2V2
ZXJhbCBVUkwgcmVsYXRlZCB0ZXN0cyBhcmUgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
YzVhOWQ2ZDM4Mzg3MmYwOWM4MTA4MjM5MmM3YTBlODA4NmZlMWQ4Ny4uYzM2MDcxZTczZGIzNjJi
MjU3YmVlZTNiMjAxMWE2YWRkOGU0NWFjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODEsNiAr
MTgxLDcgQEAgaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5LyBbIFNraXAgXQogZmFz
dC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9uLWVycm9yLmh0bWwgWyBTa2lwIF0KIGZhc3Qv
c3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwgWyBTa2lw
IF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwg
WyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zLyBbIFNraXAgXQogCiAjIE9ubHkg
cGFydGlhbCBzdXBwb3J0IG9uIENvY29hIHBsYXRmb3Jtcy4KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc3BlZWNoLWFwaS8gWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1cmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY4MzJhMTdjZmNmM2I4YWQyZGY4MDJkYTVlNzJjM2VkMDQw
MmE1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRp
b24vaW9zL2F1ZGlvLWNhcHR1cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Zlcmlm
eSB0aGF0IGF1ZGlvIGNhcHR1cmUgb24gaU9TIGhhcHBlbnMgaW4gd2ViIHByb2Nlc3MuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVj
aFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlv
bi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUmVjZWl2ZWQgc3RhcnQgZXZlbnQK
K1JlY2VpdmVkIGF1ZGlvc3RhcnQgZXZlbnQKK1BBU1MgaW50ZXJuYWxzLmF1ZGlvU2Vzc2lvbkNh
dGVnb3J5KCkgaXMgIlBsYXlBbmRSZWNvcmQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
cGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZTUw
OWMyOTEwYTYyMDY3NzU3ZjU3MTA3OTkxMTBhOWFiOGJmZDUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9hdWRpby1jYXB0dXJlLmh0bWwK
QEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgYXVkaW8gY2FwdHVyZSBvbiBpT1MgaGFwcGVucyBp
biB3ZWIgcHJvY2Vzcy4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAganNUZXN0
SXNBc3luYyA9IHRydWU7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbiA9IG5ldyBT
cGVlY2hSZWNvZ25pdGlvbigpOyIpOworcmVjb2duaXRpb24ub25zdGFydCA9IChldmVudCkgPT4g
eworICAgIGRlYnVnKCJSZWNlaXZlZCBzdGFydCBldmVudCIpOworfQorCityZWNvZ25pdGlvbi5v
bmF1ZGlvc3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgYXVkaW9zdGFy
dCBldmVudCIpOworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMuYXVkaW9T
ZXNzaW9uQ2F0ZWdvcnkoKSIsICJQbGF5QW5kUmVjb3JkIik7CisgICAgZmluaXNoSlNUZXN0KCk7
Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzZDA1MjhlOGU5
ODkyYzEzNmFiZDQyZGQ4NTdjOWE4MTQwMzVhMTdjLi5lYzY4ODZjMWIyN2EzNzYzYzM0YTdiY2I5
MzBkNWI1NmQxN2VmNzA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xNyw2ICsxNyw3IEBAIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNl
bGVjdC5odG1sIFsgUGFzcyBdCiBmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFBhc3MgXQogZmFz
dC9oaXN0b3J5L2lvcyBbIFBhc3MgXQogZmFzdC9zY3JvbGxpbmcvaW9zIFsgUGFzcyBdCitmYXN0
L3NwZWVjaHJlY29nbml0aW9uL2lvcyBbIFBhc3MgXQogZmFzdC92aWV3cG9ydC9pb3MgWyBQYXNz
IF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBQYXNzIF0KIHNjcm9sbGluZ2Nvb3JkaW5h
dG9yIFsgUGFzcyBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415723</attachid>
            <date>2020-12-08 23:55:59 -0800</date>
            <delta_ts>2020-12-09 00:28:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219371-20201208235558.patch</filename>
            <type>text/plain</type>
            <size>90519</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQzNjEyNTkwMjU1ODdl
M2ZlOTFmNTA2ODkyMjJhYzFiMGZlOGNiYy4uOGM3NWNhNDQxYjQyODU0OTJkMzYyMjQyZDY5ZTAw
NDAxNDJkMTcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTEyLTA4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzE4MjQwNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAg
ICAgICBBZGQgYSB3YXkgdG8gc2V0IFJlYWx0aW1lTWVkaWFTb3VyY2UgbWVtYmVyIG9mIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuCisKKyAgICAgICAgVGVzdDogZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS5odG1sCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2U6OmZpbmRDYXB0dXJlRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpyZXNldCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzZXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMi0wOCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIERpcnR5IGxpbmUgYm94ZXMgd2hlbiBSZW5kZXJNZW51TGlzdCB0
ZXh0IGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTJlMDk0ZTBkY2QzZGM0ZWNiMzVhOWE4YzJhNjI3ZmZk
ZGQ0MGU1MS4uMDU4OWY5OTMxYjkyZGIzMjJkZWVjOGJlZDAwYjk4MmE1M2I4YTI3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw4OSBAQAorMjAyMC0xMi0wOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVj
b2duaXRpb24gb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTkzNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxODI0MDQ5PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgT24gaU9TLCBhdWRpbyBj
YXB0dXJlIGlzIGRvbmUgaW4gd2ViIHByb2Nlc3MuIEZvciBzcGVlY2ggcmVjb2duaXRpb24sIHJl
Y29nbml6ZXIgaXMgaW4gVUkgcHJvY2Vzcy4gVGhlcmVmb3JlLAorICAgICAgICBVSSBwcm9jZXNz
IG5lZWRzIHRvIGFzayB3ZWIgcHJvY2VzcyB0byBjYXB0dXJlIGF1ZGlvIGFuZCBzZW5kIGJhY2sg
ZGF0YS4gVG8gaW1wbGVtZW50IHRoaXMsIHRoaXMgcGF0Y2ggYWRkZWQ6CisgICAgICAgIC0gU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOiBzdWJjbGFzcyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlIGFuZCBjb25uZWN0IHRvIGEgcmVtb3RlIAorICAgICAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIChvd25lZCBieSBTcGVlY2hSZWNvZ25pdGlvblJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2UpIGluIHdlYiBwcm9jZXNzLgorICAgICAg
ICAtIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6IG1h
bmFnZSBhbGwgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZXMuCisgICAgICAgIC0gU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjogbWFuYWdlIGFsbCBTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuCisgICAgICAgIC0gU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOiBvd24gYW5kIG1vbml0b3Ig
YSBsb2NhbCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlLgorCisgICAgICAgIFRoaXMgc3Ry
dWN0dXJlIGlzIHZlcnkgc2ltaWxhciB0byBob3cgd2UgaW1wbGVtZW50IG1lZGlhIGNhcHR1cmUg
b24gbWFjT1MgKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UsIAorICAgICAgICBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciBhbmQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSksIHdoZXJlIHdl
IHNlbmQgZGF0YSBmcm9tIFVJIHByb2Nlc3MgdG8gd2ViIHByb2Nlc3MKKyAgICAgICAgaW5zdGVh
ZC4gV2Ugc2hvdWxkIHVuaWZ5IHRoZSBhcmNoaXRlY3R1cmUgaWYgcG9zc2libGUuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAg
ICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6bV9yaW5nQnVmZmVyKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
Ojp+U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFy
dFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdl
KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlbW90ZUNhcHR1cmVG
YWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U6OnJlbW90ZVNvdXJjZVN0b3BwZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OmFkZFNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW92ZVNvdXJjZSk6CisgICAgICAgIChX
ZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUNhcHR1cmVG
YWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpyZW1vdGVTb3VyY2VTdG9wcGVkKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnNldFN0b3JhZ2UpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OlNvdXJjZTo6U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291cmNlOjp+U291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U291
cmNlOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNvdXJjZTo6c3RvcmFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Ojp+U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6Omdy
YW50U2FuZGJveEV4dGVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucyk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI6OmNyZWF0ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmRlbGV0ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVz
c2FnZVNlbmRlckRlc3RpbmF0aW9uSUQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmg6CisKIDIwMjAtMTItMDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBJUEMgc2hvdWxkIHN1cHBvcnQgbm9uLWJ5dGUgYWxpZ25lZCBkYXRhIHJl
ZmVyZW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGIxZjU0ZjYxYzJhM2RiOWYxZGUxNGYyZGVl
Y2M5ZDk3ZjQxOGFjODEuLjgyNTYyOThmYjlmYTZkMDcwMGVjZWRjOWIxZDhiYjM5OGJkMGUwMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTM0Myw2ICsxMzQzLDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VGYWN0b3J5LmgKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
Y3BwCmluZGV4IGM5M2I2ZjM4YmM2MjM4ZGExZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIuLmQ3ZWNl
NjU5ZjA4OTI5ZGZiYzc3YzE3MTFhOTQ0YzdjMTE1ZTYxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmNwcApAQCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxs
YmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2spCi17CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
OjpmaW5kQ2FwdHVyZURldmljZSgpCit7CiAgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2Fw
dHVyZURldmljZTsKICAgICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFu
YWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CiAgICAgZm9yIChhdXRvIGRldmljZSA6IGRldmljZXMp
IHsKQEAgLTUxLDI2ICs1MiwxOSBAQCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2U7Cit9
CiAKLSAgICBpZiAoIWNhcHR1cmVEZXZpY2UpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFNwZWVj
aFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0
dXJlLCAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIgfTsKLSAgICAgICAgc3Rh
dGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xp
ZW50SWRlbnRpZmllciwgZXJyb3IpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KK0NhcHR1cmVT
b3VyY2VPckVycm9yIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRp
bWVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBjYXB0dXJlRGV2aWNlKQoreworICAg
IHJldHVybiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1
cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwg
eyB9KTsKK30KIAotICAgIGF1dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZSgqY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAg
IGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OwotICAgICAgICBz
dGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihj
bGllbnRJZGVudGlmaWVyLCBlcnJvcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uo
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXRlVXBkYXRlQ2FsbGJhY2smJiBz
dGF0ZVVwZGF0ZUNhbGxiYWNrLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCisg
ICAgOiBtX2ltcGwobWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
PihjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVV
cGRhdGVDYWxsYmFjayksIFdURk1vdmUoc291cmNlKSkpCit7Cit9CiAKLSAgICBtX2ltcGwgPSBt
YWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+KGNsaWVudElkZW50
aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNr
KSwgcmVzdWx0LnNvdXJjZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNsaWVudElkZW50
aWZpZXIpOwotICAgIFVOVVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOwotICAgIFVOVVNFRF9QQVJB
TShzdGF0ZVVwZGF0ZUNhbGxiYWNrKTsKICNlbmRpZgotfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDczODZjZWVlMjc0MDdjYzYxMDRl
MjllZDczZGU3ZGEwYTQ5ZjRlMGEuLjY5ZjlhODhiMjYxZTcxZjY2ZWMwMGJiOWU3MWRhMGYzYWM4
MTk0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC00MiwxMCArNDIsMTYgQEAg
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKICAgICB+U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIERhdGFDYWxs
YmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKICAg
ICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSYpPjsKLSAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uo
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxiYWNr
JiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVVcGRhdGVDYWxsYmFj
ayYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIE9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGZpbmRDYXB0dXJlRGV2aWNlKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVJl
YWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworI2VuZGlmCiAKIHByaXZh
dGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKaW5kZXggNWJlYjYwNTY0N2IzMjllMjY0
ZjgzYzI0OWY1N2MyYTIwODFjMmZkNy4uZjkxNmQyYmE0ZDI4MGY3NTg2MTJiNTdjYzEyMTk0Zjli
NGQzYjViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXplci5jcHAKQEAgLTUwLDE5ICs1MCwyMyBAQCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6
OnJlc2V0KCkKIAogICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQsICJBbm90aGVyIHJlcXVlc3QgaXMgc3Rh
cnRlZCIgfTsKICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisKKyAgICBtX2NsaWVu
dElkZW50aWZpZXIgPSBXVEY6Om51bGxvcHQ7CiB9CiAKLXZvaWQgU3BlZWNoUmVjb2duaXplcjo6
c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlm
aWVyKQorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6
c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlm
aWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiB7Ci0gICAgcmVzZXQoKTsK
KyAgICBBU1NFUlQoIW1fc291cmNlKTsKIAogICAgIG1fY2xpZW50SWRlbnRpZmllciA9IGlkZW50
aWZpZXI7CiAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpT
dGFydCkpOwogCi0gICAgc3RhcnRJbnRlcm5hbCgpOworICAgIHNldFNvdXJjZShXVEZNb3ZlKHNv
dXJjZSkpOwogfQogCi12b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQordm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpzZXRTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYg
c291cmNlKQogewogICAgIGF1dG8gZGF0YUNhbGxiYWNrID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyldKGNvbnN0IGF1dG8mIHRpbWUsIGNvbnN0IGF1dG8mIGRhdGEsIGNvbnN0IGF1dG8m
IGRlc2NyaXB0aW9uLCBhdXRvIHNhbXBsZUNvdW50KSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMp
CkBAIC05MCw5ICs5NCwxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwo
KQogICAgICAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOwogICAgIH07CiAKLSAgICBtX3NvdXJj
ZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPigqbV9jbGllbnRJ
ZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoc3RhdGVVcGRhdGVDYWxs
YmFjaykpOworICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RG
TW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSwgV1RGTW92ZShzb3VyY2UpKTsKIH0KIAorI2VuZGlm
CisKIHZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0
IHNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQpCiB7CiAgICAgaWYgKCFtX2NsaWVudElkZW50aWZp
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmgKaW5kZXggZTZmMTNmZWU4NGE1MzNhZjBmMDRlMDc2OWMxYWUwOTViZTViZmYzZi4uZWM1YWMx
MzBiOGEwNDc3ZGE5MWZkMWUxZTdmYzJjNzBhNGEzMjYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtMzksMTcgKzM5LDIyIEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pemVyKERl
bGVnYXRlQ2FsbGJhY2smJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgflNwZWVjaFJlY29nbml6ZXIo
KSA9IGRlZmF1bHQ7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisjZW5k
aWYKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0KCk7CiAgICAgZW51bSBjbGFzcyBTaG91
bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHsgTm8sIFllcyB9OwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID0gU2hvdWxkR2VuZXJhdGVGaW5hbFJl
c3VsdDo6WWVzKTsKIAogICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9jbGllbnRJZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCByZXNldCgpOwotICAg
IHZvaWQgc3RhcnRJbnRlcm5hbCgpOwogICAgIHZvaWQgc3RvcEludGVybmFsKCk7CiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHZvaWQgc2V0U291cmNlKFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiYmKTsKKyNlbmRpZgorCiAgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOwogICAgIERlbGVnYXRl
Q2FsbGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJjN2NkODdjODNiMjMwYWU5
NGM3Y2UzMDFhY2UxNTAzYTlmYzZiODIuLmI0YjhlOThkZGQ4MmEyMWZjNjhmMDI1ODQwMjI2ZDJi
NzY4ODc1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTIzNjY0LDEzICsyMzY2NCw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0
ODggLyogY29jb2EgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAot
CQkJKTsKLQkJCXBhdGggPSBjb2NvYTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07
CiAJCTk0NkQzNzI3MUQ2Q0IyMjUwMDc3MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjU3MDEsNyArMjU2OTQsNiBAQAogCQlBQTJB
NUFCNzE2QTQ4NUE0MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2Eg
Ki8sCiAJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50
aGVzaXMuaWRsICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dT
cGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBE
T01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGJlMDg2
NTEzMmJmNDU2ZTM1NWJlYjMxYjZkYzQ2NjNiZDJkMjQzYzUuLjA2YmU3NjE1ZjQ3Y2JkZjkyMjJk
ZGUzZmI1YWVlOGQ4NjYwMmYyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTAzLDYgKzEwMyw3
IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIgor
ICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvU3BlZWNoIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvU3RvcmFnZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL1VzZXJD
b250ZW50IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQiCkBA
IC0xODcsNiArMTg4LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFNoYXJl
ZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyCiAKICAgICBVSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eQorICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyCiAgICAgVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
CiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUKICAgICBVSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5CkBAIC0yNTgsNiArMjYwLDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9G
SUxFUwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkKIAorICAgIFdlYlByb2Nlc3Mv
U3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKwogICAg
IFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24KICAgICBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDI2N2NkZDI5NDNlMTQ2ZjA1
Y2M4ZTdjMzEwMjIzOWRiZjZiZTNiNTcuLjRjNjNjMjg3MzA1OTZlM2YwZGYyZDcxZDljN2ZlYjBi
MmQ2YTEyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTEwOCw2ICsxMDgsNyBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveAogJChQUk9K
RUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgpAQCAtMTY1LDYgKzE2
Niw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdl
cy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNjBkNDQzMDI2ZjM2ZDQ5M2FjYjYyNzlk
OGY3YTBjMzFlYTJiNDYyOS4uOTE4YjAyYTgxMTk2MGI5MmVlNTcxODJlZjMzODUwMjM0MWNjMThj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CkBAIC0yNzIsNiArMjcyLDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Tb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NvdXJjZUJ1ZmZlclByaXZhdGVS
ZW1vdGVNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
ZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM1OGY3NGJi
ZDMyNTE2NGQyOTU3NjIwMTI3ZTRhNjAyZDkyZDdhNTYuLjNmOTU2ZTY0NjEwOWI4ZjdmYjc4OTE5
M2I3NzFjODVlYzlhOTBhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY5LDYg
KzY5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEg
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1NwZWVjaCBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudCBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uIFwKQEAgLTE2Nyw2ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wgXAogCVVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQ
cm94eSBcCiAJVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHkgXAorCVVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyIFwKIAlVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgXAogCVdlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgXAogCVdl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uIFwKQEAgLTIwMSw2ICsyMDMsNyBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jl
c29sdmVyIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uIFwKKwlXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvV2ViUHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA4
OWQ3YjY1YzY3NTE0ZTkwYzNmZGUyNDkyMDg3NTdmNGE2NmU4NWEyLi4xOTRmMjQ2YjFiMGQ2MWQ4
M2E0MWU5ZTIxM2E5MDg1MmMwODllNjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI5MCw2ICsyOTAsOCBA
QCBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0
bGVyLmNwcAogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1Jl
c3BvbnNpdmVuZXNzVGltZXIuY3BwCitVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmNwcAorVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuY3BwCiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAogVUlQcm9jZXNz
L1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmNwcApAQCAtNjM2LDYgKzYzOCw4IEBAIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgQG5vLXVuaWZ5CiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwIEBuby11bmlmeQog
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBAbm8t
dW5pZnkKIAorV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlci5jcHAKKwogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFlOTk2MDVkNzc2
ODkzYTlmYmU3NzhiMzhjMmM1ZGU3ZjA0NmI2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgi
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgorCisjaWYgUExB
VEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNlbmRp
ZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBt
YW5hZ2VyLCBjYXB0dXJlRGV2aWNlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIG1hbmFnZXIs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCisgICAgOiBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OkF1ZGlvLCBTdHJpbmcgeyBjYXB0dXJlRGV2aWNlLmxhYmVsKCkgfSwgU3RyaW5nIHsgY2Fw
dHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSB9KQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZp
ZXIpCisgICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VV
bmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKSkKKyNlbmRpZgorewor
ICAgIG1fbWFuYWdlci0+YWRkU291cmNlKCp0aGlzLCBjYXB0dXJlRGV2aWNlKTsKK30KKworU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+U3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKCkKK3sKKyAgICBpZiAobV9tYW5hZ2VyKQorICAg
ICAgICBtX21hbmFnZXItPnJlbW92ZVNvdXJjZSgqdGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQor
eworICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgIG1fbWFuYWdlci0+c2VuZChNZXNzYWdlczo6
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6U3RhcnQgeyBtX2lk
ZW50aWZpZXIgfSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKG1fbWFuYWdlcikKKyAg
ICAgICAgbV9tYW5hZ2VyLT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpTdG9wIHsgbV9pZGVudGlmaWVyIH0pOworfQorCisjaWYgUExB
VEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsK
KworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1lbW9yeTsKKyAgICBpZiAoIWhhbmRsZS5pc051
bGwoKSkgeworICAgICAgICBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBMT0dfRVJST1IoIlVuYWJs
ZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9yeSBmb3IgcmVtb3RlIHNvdXJjZSIpOworICAgIH0KKwor
ICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+
KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKKyAgICBpZiAoIW1lbW9yeSkgeworICAgICAgICBt
X3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKKyAgICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShm
YWxzZSk7CisgICAgICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51
bGwoKSk7CisgICAgc3RvcmFnZS5zZXRSZWFkT25seSh0cnVlKTsKKyAgICBtX3JpbmdCdWZmZXIt
PmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9idWZmZXIgPSBt
YWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVz
KTsKK30KKworI2VuZGlmCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlOjpyZW1vdGVBdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVp
bnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRG
cmFtZSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoIW1fYnVmZmVyKSB7CisgICAg
ICAgIExPR19FUlJPUigiQnVmZmVyIGZvciByZW1vdGUgc291cmNlIGlzIG51bGwiKTsKKyAgICAg
ICAgY2FwdHVyZUZhaWxlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9idWZm
ZXItPnNldFNhbXBsZUNvdW50KG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXItPnNl
dEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgbV9yaW5nQnVm
ZmVyLT5mZXRjaChtX2J1ZmZlci0+bGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFs
dWUoKSk7CisgICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsICptX2J1ZmZlciwgbV9kZXNj
cmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odGltZSk7
CisgICAgVU5VU0VEX1BBUkFNKG51bWJlck9mRnJhbWVzKTsKKyAgICBVTlVTRURfUEFSQU0oc3Rh
cnRGcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKGVuZEZyYW1lKTsKKyNlbmRpZgorfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlQ2FwdHVy
ZUZhaWxlZCgpCit7CisgICAgY2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3RlU291cmNlU3RvcHBlZCgpCit7
CisgICAgc3RvcCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3YmMwZDEzMWYy
Y2RiMTVmOTI1Y2UwOTAxOTU3ZWZhNGQ0NDBjYmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDYXB0dXJlRGV2aWNlOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CisgICAgflNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZSgpOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9y
eTo6SGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWlu
dDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICB2b2lkIHJlbW90ZUF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisgICAgdm9pZCByZW1vdGVDYXB0dXJl
RmFpbGVkKCk7CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKCk7CisKK3ByaXZhdGU6Cisg
ICAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOwor
CisgICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIHZvaWQgc3RhcnRQcm9k
dWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwor
ICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFi
aWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAgY29uc3QgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0
dXJuIG1fc2V0dGluZ3M7IH0KKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOworCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRp
b247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVm
ZmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1f
YnVmZmVyOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmViNGM3NjM2ZGE4YTE2Y2M0Y2ZlYmE2MDcyYzA1YzNlN2E5M2I5NDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQoreworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
OmFkZFNvdXJjZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmIHNv
dXJjZSwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkKK3sKKyAg
ICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UuaWRlbnRpZmllcigpOworICAgIEFTU0VSVCghbV9z
b3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZp
ZXIsIG1ha2VXZWFrUHRyKHNvdXJjZSkpOworCisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9O
UykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBpZiAoIW1faGFzR3JhbnRlZFNhbmRi
b3hFeHRlbnNpb25zKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGVG
b3JUQ0NEOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9v
a3VwKCJjb20uYXBwbGUudGNjZCJfcywgbV9jb25uZWN0aW9uLT5nZXRBdWRpdFRva2VuKCksIGhh
bmRsZUZvclRDQ0QpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlRm9y
TWljcm9waG9uZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yR2Vu
ZXJpY0V4dGVuc2lvbigiY29tLmFwcGxlLndlYmtpdC5taWNyb3Bob25lIl9zLCBoYW5kbGVGb3JN
aWNyb3Bob25lKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6R3JhbnRTYW5kYm94RXh0ZW5zaW9ucyhoYW5kbGVGb3JU
Q0NELCBoYW5kbGVGb3JNaWNyb3Bob25lKSk7CisgICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hF
eHRlbnNpb25zID0gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKworICAgIHNlbmQoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OkNyZWF0ZVNvdXJjZShp
ZGVudGlmaWVyLCBjYXB0dXJlRGV2aWNlKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAgIGF1dG8gaWRl
bnRpZmllciA9IHNvdXJjZS5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fc291cmNlcy5nZXQo
aWRlbnRpZmllcikgPT0gJnNvdXJjZSk7CisgICAgbV9zb3VyY2VzLnJlbW92ZShpZGVudGlmaWVy
KTsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpICYmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisgICAgaWYgKG1fc291cmNlcy5pc0VtcHR5KCkgJiYgbV9oYXNHcmFudGVkU2FuZGJv
eEV4dGVuc2lvbnMpIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmV2b2tlU2FuZGJveEV4dGVuc2lvbnMoKSk7Cisg
ICAgICAgIG1faGFzR3JhbnRlZFNhbmRib3hFeHRlbnNpb25zID0gZmFsc2U7CisgICAgfQorI2Vu
ZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOjpEZWxldGVTb3VyY2UoaWRlbnRpZmllcikpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZUF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQoreworICAgIGlm
IChhdXRvIHNvdXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJj
ZS0+cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFy
dEZyYW1lLCBlbmRGcmFtZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcjo6cmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIHNv
dXJjZSA9IG1fc291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgICAgIHNvdXJjZS0+cmVtb3Rl
Q2FwdHVyZUZhaWxlZCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OnJlbW90ZVNvdXJjZVN0b3BwZWQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3Vy
Y2UgPSBtX3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnJlbW90ZVNv
dXJjZVN0b3BwZWQoKTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKK30KKwordWludDY0X3Qg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2Fn
ZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcjo6c2V0U3RvcmFnZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaXBj
SGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0
aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBt
X3NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnNldFN0b3JhZ2UoaXBj
SGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKworI2VuZGlm
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTQ2YTliMzYzMDIz
OTdiMWI4NjRmZjRmYThhNzM2YTU1M2FlNjU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlci5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1l
c3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgQ2FwdHVyZURldmljZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uOworI2VuZGlmCit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIgZmluYWwg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIElQ
Qzo6TWVzc2FnZVNlbmRlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJik7CisKK3ByaXZhdGU6CisgICAgLy8gTWVzc2FnZXM6
OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAgICB2
b2lkIHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCB1aW50NjRfdCBudW1iZXJPZkZy
YW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpOworICAgIHZvaWQg
cmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CisgICAgdm9pZCByZW1vdGVTb3VyY2VTdG9wcGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFN0b3Jh
Z2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAg
IElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsK
KyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOwor
CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8U3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPj4gbV9zb3VyY2VzOworICAgIGJvb2wgbV9o
YXNHcmFudGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA3MTAzOThi
YzdjMmM0NzA0NGIwM2U2NWQwYWNjODU4MGExZWZlYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3Nh
Z2VzIC0+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIg
Tm90UmVmQ291bnRlZCB7CisgICAgUmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIE1lZGlhVGltZSB0aW1l
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3Qg
ZW5kRnJhbWUpCisgICAgUmVtb3RlQ2FwdHVyZUZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFJlbW90ZVNvdXJjZVN0b3BwZWQoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBTZXRTdG9yYWdlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3Rv
cmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9u
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyNlbmRpZgorfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRl
eCA5ZjYwMGQzZjVjZGM2YzMyYzU0OGEwYTA5YWIwMmJjMTQ1MzQ1MjQ0Li5kNmZhODljNTQ4MzI2
MmMxMDFhMjZkMDMwMzIzNTU3MjA2YjEyZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC0zNiwxMiArMzYsMjIgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXImJiBwZXJtaXNzaW9u
Q2hlY2tlciwgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uJiYgZnVuY3Rpb24pCisg
ICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAsIG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQorICAgICwgbV9wZXJtaXNzaW9uQ2hlY2tlcihXVEZNb3ZlKHBlcm1pc3Np
b25DaGVja2VyKSkKKyAgICAsIG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKFdU
Rk1vdmUoZnVuY3Rpb24pKQoreworfQorI2Vsc2UKIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24s
IFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25DaGVja2VyJiYgcGVybWlzc2lvbkNoZWNrZXIpCiAgICAgOiBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQogICAgICwgbV9wZXJtaXNzaW9uQ2hlY2tlcihXVEZNb3ZlKHBlcm1pc3Npb25DaGVja2Vy
KSkKIHsKIH0KKyNlbmRpZgogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmlt
UmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
JiBvcmlnaW4pCiB7CkBAIC05Miw4ICsxMDIsMjEgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24K
ICAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKICAgICAgICAgfSk7CiAgICAgfQotCi0g
ICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKKyAgICAKKyAgICBtX3Jl
Y29nbml6ZXItPnJlc2V0KCk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGF1dG8g
c291cmNlT3JFcnJvciA9IG1fcmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1bmN0aW9uKCk7Cisg
ICAgaWYgKCFzb3VyY2VPckVycm9yKSB7CisgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVu
dElkZW50aWZpZXIpOworICAgICAgICBzZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1
ZGlvQ2FwdHVyZSwgc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UgfSkpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllciwgc291
cmNlT3JFcnJvci5zb3VyY2UoKSk7CisjZWxzZQorICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVu
dElkZW50aWZpZXIpOworICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJBdWRpbyBjYXB0dXJlIGlzIG5vdCBpbXBsZW1lbnRlZCJ9KTsKKyNlbmRpZgogfQog
CiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCmluZGV4
IGE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcuLmVkNjcyNjRhYTEzMWUx
ZTE0MjFlYWE0MTRkNDE3MTNjNjk1ZDgzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtMzYsNiArMzYsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTsK
K3N0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CiAK
QEAgLTUwLDcgKzUxLDEyIEBAIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNr
ZXIgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yCiBjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3Nh
Z2VTZW5kZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgdXNpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNyZWF0ZUZ1
bmN0aW9uID0gRnVuY3Rpb248V2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoKT47CisgICAg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVj
a2VyJiYsIFJlYWx0aW1lTWVkaWFTb3VyY2VDcmVhdGVGdW5jdGlvbiYmKTsKKyNlbHNlCiAgICAg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVj
a2VyJiYpOworI2VuZGlmCiAKICAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGlu
dW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mJik7CiAgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwpAQCAtNzUsNiArODEsMTAgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3Q+PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNo
ZWNrZXIgbV9wZXJtaXNzaW9uQ2hlY2tlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOworCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ3JlYXRlRnVuY3Rpb24gbV9yZWFsdGltZU1lZGlh
U291cmNlQ3JlYXRlRnVuY3Rpb247CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTAxMWE1YjFk
OWM5MmU5ZjczMDI5NDE0ZjEzM2IyZjA5MTFhMWQ0My4uYzI1ZTk2NTY2MjUwNjlhYzViY2MyN2Y0
ZGNlM2EzMzVhN2FmOGM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC04Niw2ICs4Niw4IEBACiAjaW5jbHVkZSAiU2FmZUJyb3dzaW5nV2FybmluZy5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kVHlwZS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVk
ZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgpAQCAtMTAzMDQsNiArMTAzMDYsMjYgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rp
b24oY29uc3QgV2ViQ28KICAgICBtX3NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIt
PmRlY2lkZUJ5RGVmYXVsdEFjdGlvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK1dlYkNvcmU6OkNhcHR1cmVTb3Vy
Y2VPckVycm9yIFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNwZWVj
aFJlY29nbml0aW9uKCkKK3sKKyAgICBpZiAocHJlZmVyZW5jZXMoKS5jYXB0dXJlQXVkaW9JbkdQ
VVByb2Nlc3NFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7
ICJOb3QgaW1wbGVtZW50ZWQgZm9yIEdQVSBwcm9jZXNzIiB9OworCisgICAgYXV0byBjYXB0dXJl
RGV2aWNlID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpmaW5kQ2FwdHVyZURldmlj
ZSgpOworICAgIGlmICghY2FwdHVyZURldmljZSkKKyAgICAgICAgcmV0dXJuIENhcHR1cmVTb3Vy
Y2VPckVycm9yIHsgIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGNhcHR1cmUiIH07CisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKG1fcHJv
Y2Vzcy0+ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlcigpLCAqY2FwdHVyZURldmljZSkgfTsKKyNlbHNlCisgICAgcmV0dXJuIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZSgqY2FwdHVyZURl
dmljZSk7CisjZW5kaWYKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
dW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA4YTdlOTQ2ZDQ3OTdmZWQwYzM0NmRkZjIxYzRjZjM1MmE3ZTJmOTVlLi5j
ZDI4ODdlMmYxOWRjYWYyYTI2ZDE0NTVlY2ZhMGU1YzZjNTk2NGJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTgzMyw2ICsxODMzLDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShDcmVhdGVOZXdHcm91cEZv
ckhpZ2hsaWdodCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgV2Vi
Q29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNw
ZWVjaFJlY29nbml0aW9uKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHko
UGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9u
PiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTdkOWNkZmU1NTM1YzI3YzQ1MDRmMDEw
YTZlZGY4ZTRjNWUzY2E2YS4uYWRlZTVmYjllN2JiZDg4YzA4OGU2OWVmNGU1NTZlZjNhOGQwZDUz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0z
OCw2ICszOCw4IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRl
ICJQcm92aXNpb25hbFBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAj
aW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgpAQCAtMTcwMiw4ICsxNzA0LDYgQEAgUEFMOjpT
ZXNzaW9uSUQgV2ViUHJvY2Vzc1Byb3h5OjpzZXNzaW9uSUQoKSBjb25zdAogCiB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBzcGVlY2hSZWNvZ25p
dGlvblNlcnZlciA9IG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNYXAuYWRkKGlkZW50aWZpZXIs
IG51bGxwdHIpOwotICAgIEFTU0VSVChzcGVlY2hSZWNvZ25pdGlvblNlcnZlci5pc05ld0VudHJ5
KTsKICAgICBXZWJQYWdlUHJveHkqIHRhcmdldFBhZ2UgPSBudWxscHRyOwogICAgIGZvciAoYXV0
byogcGFnZSA6IHBhZ2VzKCkpIHsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+d2ViUGFnZUlE
KCkgPT0gaWRlbnRpZmllcikgewpAQCAtMTcxNSwxNSArMTcxNSwyMyBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudAogICAgIGlmICghdGFyZ2V0UGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlID0gbWFrZVVuaXF1ZTxTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSwgaWRlbnRpZmllciwg
W3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFnZSldKGF1dG8mIG9yaWdpbiwgYXV0byYm
IGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICBBU1NFUlQoIW1fc3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNYXAuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1dG8mIHNwZWVjaFJl
Y29nbml0aW9uU2VydmVyID0gbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRp
ZmllciwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOworICAgIHNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblNlcnZlcj4obWFrZVJlZigqY29ubmVj
dGlvbigpKSwgaWRlbnRpZmllciwgW3dlYWtQYWdlID0gbWFrZVdlYWtQdHIodGFyZ2V0UGFnZSld
KGF1dG8mIG9yaWdpbiwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKCF3ZWFrUGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKICAgICAgICAgd2Vha1BhZ2UtPnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgfSk7
Ci0gICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaXRlcmF0b3ItPnZhbHVlKTsKKyAgICB9CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICAsIFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXSgpIHsKKyAgICAgICAg
cmV0dXJuIHdlYWtQYWdlID8gd2Vha1BhZ2UtPmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JT
cGVlY2hSZWNvZ25pdGlvbigpIDogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiUGFnZSBpcyBpbnZh
bGlkIiB9OworICAgIH0KKyNlbmRpZgorICAgICk7CisgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBp
ZGVudGlmaWVyLCAqc3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIpOwogfQogCiB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZGVzdHJveVNwZWVjaFJlY29nbml0aW9uU2VydmVyKFNwZWVjaFJlY29nbml0aW9u
U2VydmVySWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTczMyw2ICsxNzQxLDIwIEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkZXN0cm95U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJJZGVuCiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5yZW1v
dmUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiBXZWJQcm9jZXNzUHJv
eHk6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyKSB7CisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4obWFrZVJlZigqY29ubmVjdGlvbigpKSk7CisgICAg
ICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqbV9zcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKTsKKyAgICB9CisK
KyAgICByZXR1cm4gKm1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcjsKK30KKworI2VuZGlmCisKICNpZiBQTEFURk9STShXQVRDSE9TKQogCiB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6c3RhcnRCYWNrZ3JvdW5kQWN0aXZpdHlGb3JGdWxsc2NyZWVuSW5wdXQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBjMTBiMzk0
OGQ3NzY3NjM3MTRkMTY0NzliNTkzNjI4MmE2OTczM2RhLi5hMTFhMzk0ZTdhYThiM2ZjOTNlODc4
YTJlMDE5OGM4OWUxZTI3M2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaApAQCAtMTAzLDYgKzEwMywxMCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVyczsKIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlOwogc3RydWN0IFdlYnNpdGVEYXRhOwog
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKKwogZW51bSBGb3JlZ3JvdW5kV2Vi
UHJvY2Vzc0NvdW50ZXJUeXBlIHsgfTsKIHR5cGVkZWYgUmVmQ291bnRlcjxGb3JlZ3JvdW5kV2Vi
UHJvY2Vzc0NvdW50ZXJUeXBlPiBGb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI7CiB0eXBlZGVm
IEZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlcjo6VG9rZW4gRm9yZWdyb3VuZFdlYlByb2Nlc3NU
b2tlbjsKQEAgLTM5NCw2ICszOTgsMTAgQEAgcHVibGljOgogI2lmIEVOQUJMRShJUENfVEVTVElO
R19BUEkpCiAgICAgdm9pZCBzZXRJZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKTsKICNl
bmRpZgorICAgIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOworI2VuZGlmCiAKIHByb3RlY3Rl
ZDoKICAgICBXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3Jl
KiwgSXNQcmV3YXJtZWQpOwpAQCAtNjQzLDYgKzY1MSw5IEBAIHByaXZhdGU6CiAKICAgICB1c2lu
ZyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCA9IEhhc2hNYXA8U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+
PjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcCBtX3NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyTWFwOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyNlbmRpZgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZDI4MmU0NjZlYTQ3NDRmMGY1MmIzM2VjYzZhOWIw
Mzg4NjM5ZDVmLi45NGI4YzgyMjAwZDQzMGNkOTI0MDhmZjA1Njk3YjE5MjEyNWNhYzg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0
NDcsNiArMTQ0NywxMSBAQAogCQk5M0E4OEIzMzFCQzZFOUNEMDBBQkE1QzIgLyogV2ViSGl0VGVz
dFJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTg4QjMxMUJDNkU5QzAwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oICov
OyB9OwogCQk5M0E4OEIzQjFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4
OEIzQTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmggKi87IH07
CiAJCTkzQTg4QjQ2MUJDODgyOTMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEI0MzFCQzg4MjhD
MDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5oICovOyB9OworCQk5M0FCOUI0QzI1NzU2M0Yz
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEEy
NTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCAqLzsgfTsKKwkJOTNBQjlCNEQyNTc1NjdEQzAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUI5QjQ1MjU3NDkyOEQwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggKi87
IH07CisJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJOTNBQjlCNTUyNTc1QTI3NjAw
OThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk5M0FCOUI1
NjI1NzVBMjhCMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCTkzQjI2MTREMjI3RDE0OUUwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYx
NDkyMjdEMTQ3MjAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzQjI2MTRF
MjI3RDE0QjEwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMjYxNDUyMjdEMTQ3MDAwQjk3QTc2
IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggKi87IH07CiAJCTkzQjI2MTRGMjI3RDE0QjEwMEI5
N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjI2MTQ2MjI3RDE0NzEwMEI5N0E3NiAvKiBM
b2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKQEAgLTQ2MTgsNiArNDYyMywyMCBA
QAogCQk5M0E4OEIzQTFCQzcxMEQ5MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdEludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0hpdFRlc3RSZXN1bHRJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEI0MjFCQzg4MjhDMDBB
QkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBUElIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNBODhCNDMxQkM4ODI4QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MjI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUI5QjQ0MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI0NTI1NzQ5MjhEMDA5OEIxMEUg
LyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQUI5QjQ2MjU3NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjQ5MjU3NEM2MUUwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQUI5QjRBMjU3NEM2MUYwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBQjlCNEIyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjRGMjU3NTg5MTEw
MDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MDI1NzU4OTExMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUxMjU3NTg5MTEwMDk4QjEwRSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0FCOUI1MjI1NzU4OTEyMDA5OEIxMEUgLyog
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzQUI5QjU0MjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ1MjI3RDE0
NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0IyNjE0NjIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJh
c2VUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsU3RvcmFn
ZURhdGFiYXNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IyNjE0
NzIyN0QxNDcxMDBCOTdBNzYgLyogTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MDE0LDYgKzkwMzMsMTYg
QEAKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5
M0FCOUI0ODI1NzRDNUNFMDA5OEIxMEUgLyogU3BlZWNoICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0FCOUI0QjI1NzRDNjFGMDA5OEIxMEUgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJOTNB
QjlCNEEyNTc0QzYxRjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuaCAqLywKKwkJCQk5M0FCOUI0OTI1NzRDNjFFMDA5OEIxMEUgLyogU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJ
CSk7CisJCQlwYXRoID0gU3BlZWNoOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
IAkJOTNCMjYxNDMyMjdEMTQzMTAwQjk3QTc2IC8qIFdlYlN0b3JhZ2UgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTIxOCw2ICs5MjQ3LDcgQEAKIAkJCQk1
MTA1QjBEMjE2MkY3QTVFMDBFMjc3MDkgLyogTmV0d29yayAqLywKIAkJCQkzMTA5OTk3NDE0NkM4
QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCiAJCQkJMUE2RkI3QUExMUU2
NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCisJCQkJOTNBQjlCNDgyNTc0QzVDRTAwOThCMTBF
IC8qIFNwZWVjaCAqLywKIAkJCQk1MTE4RTk5ODFGMjk1MjU5MDAzRUY5RjUgLyogU3RvcmFnZSAq
LywKIAkJCQkxQUFGMDhBQTE5MjY5MzBCMDBCNjM5MEMgLyogVXNlckNvbnRlbnQgKi8sCiAJCQkJ
NTc2MDgyOEEyMDI5ODRDOTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0aW9uICovLApAQCAtOTQz
MSw2ICs5NDYxLDExIEBACiAJCQkJOTNENkI3QjAyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwICovLAogCQkJCTkzRDZCN0IyMjU1MjY4QTIw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJ
OTNENkI3QUYyNTUyNjhBMTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJl
cXVlc3QuaCAqLywKKwkJCQk5M0FCOUI0MzI1NzQ5MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCAqLywKKwkJCQk5M0FCOUI0MjI1NzQ5
MjhDMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmggKi8sCisJCQkJOTNBQjlCNDQyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTkzQUI5QjQ1MjU3
NDkyOEQwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyLmggKi8sCisJCQkJOTNBQjlCNDYyNTc0OTI4RDAwOThCMTBFIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8s
CiAJCQkJOTNENkI3NkIyNTRCODk1ODAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
LmNwcCAqLywKIAkJCQk5M0Q2Qjc2QzI1NEI4OTU4MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuaCAqLywKIAkJCQk5M0Q2Qjc3QTI1NEM5ODREMDA1OEREM0EgLyogU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0xMDU4Nyw2ICsxMDYyMiwxMiBAQAog
CQkJCTFERDJBNjcyMjU2MjMyNEYwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxREQyQTY3MzI1NjIzMjRGMDBGRjdCNkYgLyog
U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggKi8sCiAJCQkJMUREMkE2NzEyNTYy
MzI0RjAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMu
aCAqLywKKwkJCQk5M0FCOUI0RjI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJOTNB
QjlCNTQyNTc1ODkxMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTkzQUI5QjUwMjU3NTg5MTEwMDk4QjEwRSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmggKi8sCisJCQkJOTNBQjlCNTEyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5M0FCOUI1MjI1
NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTkzRDZCNzgxMjU0Q0NBQkMwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJ
CQkJOTNENkI3ODAyNTRDQ0FCQzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVz
c2FnZXMuaCAqLywKIAkJCQk5M0Q2Qjc3RjI1NENDQUJCMDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKQEAgLTExNjU4LDYgKzExNjk5LDkgQEAK
IAkJCQk1N0ZEMzE4NTIyQjM1MTY5MDA4RDBFOEIgLyogU09BdXRob3JpemF0aW9uU2Vzc2lvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3QjUyNTUyNjhENzAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCN0I0
MjU1MjY4RDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0FCOUI0QzI1NzU2M0YzMDA5OEIxMEUgLyogU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTNBQjlCNEUyNTc1NjdFMjAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBQjlCNEQyNTc1NjdEQzAwOThC
MTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzcyMjU0QkI1MTkwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3ODQyNTRDQ0QwRTAw
NThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzRDZCNzg1MjU0Q0NENDMwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
ck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzQ1MSw2ICsxMzQ5NSw4IEBA
CiAJCQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21h
cnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxREQyQTY3NDI1NjIzMkExMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJl
bW90ZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NTI1NzVB
Mjc2MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0FCOUI1NjI1NzVBMjhC
MDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0Q2Qjc4MjI1NEND
Q0Y0MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzMzRERUQxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VB
cmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNjhFRURFMjMw
M0E5MDIwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwZmY0NDhiZWY4OTQxYWM0OTViZTA4ZWY1M2Jm
YWMxYjgwNjZlZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3BwCkBA
IC0wLDAgKzEsMjU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaD4KKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorI2Vsc2UKKyNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQXVk
aW9EYXRhLmg+CisjZW5kaWYKKworI2lmIFVTRShBVURJT19TRVNTSU9OKQorI2luY2x1ZGUgPFdl
YkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOjpTb3VyY2UKKyAgICA6IHByaXZhdGUgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9T
YW1wbGVPYnNlcnZlcgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICwgcHVibGljIFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyNlbmRpZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIFNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UsIFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRp
ZmllcikKKyAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgbV9j
b25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
ICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+
KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKSkKKyNlbmRpZgor
ICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9z
b3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIH0KKworICAgIH5Tb3Vy
Y2UoKQorICAgIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgc3RvcmFnZSgpLmludmFs
aWRhdGUoKTsKKyNlbmRpZgorICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNl
cnZlcigqdGhpcyk7CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Cisg
ICAgfQorCisgICAgdm9pZCBzdGFydCgpCisgICAgeworICAgICAgICBtX3NvdXJjZS0+c3RhcnQo
KTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3AoKQorICAgIHsKKyAgICAgICAgbV9zb3VyY2UtPnN0
b3AoKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZSYgc3RvcmFnZSgpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsKKyAgICB9Cisj
ZW5kaWYKKworcHJpdmF0ZToKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbAorICAgIHsK
KyAgICAgICAgaWYgKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKSB7CisgICAgICAgICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQobV9pZGVudGlmaWVyKSwg
MCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOjpSZW1vdGVTb3VyY2VTdG9wcGVkKG1faWRlbnRpZmllciksIDApOworICAgIH0K
KworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwg
Y29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykgZmluYWwKKyAgICB7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2Ny
aXB0aW9uKSB7CisgICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlw
dGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlw
ZSk7CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0gKldURjo6Z2V0PGNvbnN0IEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5k
ZXNjcmlwdGlvbik7CisKKyAgICAgICAgICAgIG1fbnVtYmVyT2ZGcmFtZXMgPSBtX2Rlc2NyaXB0
aW9uLnNhbXBsZVJhdGUoKSAqIDI7CisgICAgICAgICAgICBtX3JpbmdCdWZmZXIuYWxsb2NhdGUo
bV9kZXNjcmlwdGlvbi5zdHJlYW1EZXNjcmlwdGlvbigpLCBtX251bWJlck9mRnJhbWVzKTsKKyAg
ICAgICAgfQorCisgICAgICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0
YSkpOworICAgICAgICBtX3JpbmdCdWZmZXIuc3RvcmUoZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJM
aXN0PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkp
OworICAgICAgICB1aW50NjRfdCBzdGFydEZyYW1lOworICAgICAgICB1aW50NjRfdCBlbmRGcmFt
ZTsKKyAgICAgICAgbV9yaW5nQnVmZmVyLmdldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1l
LCBlbmRGcmFtZSk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6UmVtb3RlQXVkaW9T
YW1wbGVzQXZhaWxhYmxlKG1faWRlbnRpZmllciwgdGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0
RnJhbWUsIGVuZEZyYW1lKSwgMCk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0odGltZSk7
CisgICAgICAgIFVOVVNFRF9QQVJBTShhdWRpb0RhdGEpOworICAgICAgICBVTlVTRURfUEFSQU0o
ZGVzY3JpcHRpb24pOworICAgICAgICBVTlVTRURfUEFSQU0obnVtYmVyT2ZGcmFtZXMpOworI2Vu
ZGlmCisgICAgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyAgICB2b2lkIHN0b3JhZ2VDaGFu
Z2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkgZmluYWwKKyAgICB7CisgICAgICAgIFNoYXJlZE1l
bW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKHN0b3JhZ2UpCisgICAgICAgICAgICBz
dG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJl
YWRPbmx5KTsKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpCisgICAgICAgIHVpbnQ2NF90
IGRhdGFTaXplID0gaGFuZGxlLnNpemUoKTsKKyNlbHNlCisgICAgICAgIHVpbnQ2NF90IGRhdGFT
aXplID0gMDsKKyNlbmRpZgorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlNldFN0b3Jh
Z2UobV9pZGVudGlmaWVyLCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxl
KSwgIGRhdGFTaXplIH0sIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpLCAwKTsKKyAg
ICB9CisKKyNlbmRpZgorCisgICAgdm9pZCBhdWRpb1VuaXRXaWxsU3RhcnQoKSBmaW5hbAorICAg
IHsKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikKKyAgICAgICAgYXV0byBidWZmZXJTaXplID0gQXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpIC8gNTA7CisgICAgICAgIGlm
IChBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5wcmVmZXJyZWRCdWZmZXJTaXplKCkgPiBi
dWZmZXJTaXplKQorICAgICAgICAgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuc2V0
UHJlZmVycmVkQnVmZmVyU2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgQXVkaW9TZXNzaW9uOjpz
aGFyZWRTZXNzaW9uKCkuc2V0Q2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpQbGF5QW5kUmVjb3JkLCBS
b3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQpOworI2VuZGlmCisgICAgfQorCisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxSZWFsdGltZU1l
ZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CisgICAgdWludDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CisgICAgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworI2VuZGlmCit9OworCitTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpTcGVlY2hSZWNvZ25pdGlvblJlYWx0
aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikK
KyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQoreworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAq
dGhpcyk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6
On5TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoKnRoaXMpOworfQor
CisjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hIYW5kbGVGb3JUQ0NELCBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUmJiBzYW5kYm94SGFuZGxlRm9yTWljcm9waG9uZSkKK3sKKyAgICBtX3NhbmRi
b3hFeHRlbnNpb25Gb3JUQ0NEID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKFdURk1vdmUoc2Fu
ZGJveEhhbmRsZUZvclRDQ0QpKTsKKyAgICBpZiAoIW1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Qp
CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBm
b3IgdGNjZCIpOworICAgIGVsc2UKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+
Y29uc3VtZSgpOworCisgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yTWljcm9waG9uZSA9IFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hIYW5kbGVGb3JNaWNyb3Bob25lKSk7
CisgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKQorICAgICAgICBMT0df
RVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2FuZGJveCBleHRlbnNpb24gZm9yIG1pY3JvcGhvbmUi
KTsKKyAgICBlbHNlCisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPmNv
bnN1bWUoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyOjpyZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCit7CisgICAgaWYgKG1fc2FuZGJveEV4
dGVuc2lvbkZvclRDQ0QpIHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yVENDRC0+cmV2
b2tlKCk7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0QgPSBudWxscHRyOworICAg
IH0KKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lKSB7CisgICAgICAg
IG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmUtPnJldm9rZSgpOworICAgICAgICBtX3Nh
bmRib3hFeHRlbnNpb25Gb3JNaWNyb3Bob25lID0gbnVsbHB0cjsKKyAgICB9Cit9CisKKyNlbmRp
ZgorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OmNy
ZWF0ZVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCit7CisgICAgYXV0byByZXN1bHQgPSBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlKTsK
KyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUg
cmVhbHRpbWUgc291cmNlIik7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVGYWlsZWQo
aWRlbnRpZmllciksIDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKCFt
X3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRp
ZmllciwgbWFrZVVuaXF1ZTxTb3VyY2U+KGlkZW50aWZpZXIsIHJlc3VsdC5zb3VyY2UoKSwgbWFr
ZVJlZigqbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSkpKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjpkZWxldGVTb3VyY2UoUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3NvdXJjZXMucmVtb3Zl
KGlkZW50aWZpZXIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXI6OnN0YXJ0KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgaWYgKGF1dG8gc291cmNlID0gbV9zb3VyY2VzLmdldChpZGVudGlmaWVyKSkK
KyAgICAgICAgc291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI6OnN0b3AoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBzb3VyY2UgPSBtX3NvdXJjZXMuZ2V0KGlk
ZW50aWZpZXIpKQorICAgICAgICBzb3VyY2UtPnN0b3AoKTsKK30KKworSVBDOjpDb25uZWN0aW9u
KiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsK
K30KKwordWludDY0X3QgU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiAwOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkNDVjNGI5
NTA3ZjUwMGMyN2MzOWJkMWI5MDI5YzQ4YTZmOGFmNjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNhbmRib3hFeHRl
bnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENhcHR1cmVEZXZpY2U7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyIGZpbmFsIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIH5TcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyKCk7CisKK3ByaXZhdGU6CisgICAgLy8g
TWVzc2FnZXM6OlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIKKyAg
ICB2b2lkIGNyZWF0ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOworICAgIHZvaWQgZGVsZXRlU291cmNl
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3Ao
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworI2lmIEVOQUJMRShTQU5E
Qk9YX0VYVEVOU0lPTlMpCisgICAgdm9pZCBncmFudFNhbmRib3hFeHRlbnNpb25zKFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYmLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CisgICAgdm9p
ZCByZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpOworI2VuZGlmCisKKyAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyLgorICAg
IElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsK
KyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOwor
CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworCisgICAgY2xhc3MgU291
cmNlOworICAgIGZyaWVuZCBjbGFzcyBTb3VyY2U7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNvdXJjZT4+IG1fc291
cmNlczsKKworI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCisgICAgUmVmUHRyPFNhbmRi
b3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZvclRDQ0Q7CisgICAgUmVmUHRyPFNhbmRi
b3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbkZvck1pY3JvcGhvbmU7CisjZW5kaWYKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291
cmNlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMzgyZGYxZDhlNTlmMGE4ZjY4MDFlMjY0NmE4N2YwZDc1MGQ2NjFkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIENyZWF0ZVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlIGRldmljZSkKKyAgICBEZWxldGVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBTdGFydChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyAgICBTdG9wKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpOworCisjaWYgRU5BQkxFKFNB
TkRCT1hfRVhURU5TSU9OUykKKyAgICBHcmFudFNhbmRib3hFeHRlbnNpb25zKFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGVGb3JUQ0NELCBXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlRm9yTWlj
cm9waG9uZSkKKyAgICBSZXZva2VTYW5kYm94RXh0ZW5zaW9ucygpCisjZW5kaWYKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCmlu
ZGV4IDNmMzUzMTk0YTMyYzNlNjc5YmNhMjlmYmVhODUwMzFjOTIxZTRmYzQuLmUwZDJhNTk4NTU1
Yjk4OTc4NTg1OGFiNmM2NGE3NTRhZmRhMTEwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCkBAIC00Niw2ICs0NiwxMCBAQCBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihTcGVl
Y2hSZWNvZ25pdGlvbgogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllciwgKnRoaXMpOwogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6Q3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIobV9pZGVudGlm
aWVyKSwgMCk7CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXIoKTsKKyNlbmRpZgogfQogCiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246On5XZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCmluZGV4IGMzZmE4MWVkYzAwZWI2OTI3NzNjYzczZjlmNGFhZGNjZTFkY2MxMzIu
Ljg0NzQ5NTZiMzZiMDU0ZDcxZWFlNTVkMWE4Y2YxYzc4ZDlkN2JkYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJS
ZW1vdGVBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5Lmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKICNp
bmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCiAjaW5jbHVk
ZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIgpAQCAtMTk4MCw2ICsxOTgxLDE2IEBAIHZv
aWQgV2ViUHJvY2Vzczo6ZW5hYmxlVlA5U1dEZWNvZGVyKCkKIH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKK1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXImIFdlYlByb2Nlc3M6OmVuc3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIoKQoreworICAgIGlmICghbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXI+KG1ha2VSZWYoKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpKTsKKwor
ICAgIHJldHVybiAqbV9zcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9M
T0dfU0VTU0lPTl9JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZTlj
NDdkYjRjNDQ3YzBmNGFiNjI3YzA5NGI1ZjY4ZGI1NjVhOWE2Yy4uN2U1YTRjYWE0YzVkMmUyMzc4
ODEzZWI0ZjJmNDIyOGJkZTRjYzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCkBAIC0xNDIsNiArMTQyLDEwIEBAIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
czsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyOworI2VuZGlmCisKIGNsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vz
cwogewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMzYwLDYgKzM2NCwxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkaWRXcml0ZVRvUGFzdGVib2FyZEFzeW5jaHJvbm91c2x5KGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImIGVu
c3VyZVNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIoKTsKKyNlbmRp
ZgorCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJvY2VzcygpOwpAQCAt
NjkzLDYgKzcwMSwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92cDlEZWNvZGVyRW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZwOVNXRGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9OwogI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVl
Y2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0
aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDE4NDAxN2UzNjFkYzU2MzgwMTE4MjQ1YjBlZDNiOTliY2JhZGQx
YTcuLjNmZjg0NDA0NDEyZDFkZDE3OWVhZDA2YzlkZjZjODMwM2EwMDhmNjcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0xMi0wOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24g
b24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTkzNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxODI0MDQ5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1cmUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9hdWRpby1j
YXB0dXJlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAyMC0xMi0wOCAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHTElCXSBSRUdSRVNTSU9OKHIyNzA1MjYpOiBTZXZlcmFsIFVSTCBy
ZWxhdGVkIHRlc3RzIGFyZSBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNWE5ZDZkMzgz
ODcyZjA5YzgxMDgyMzkyYzdhMGU4MDg2ZmUxZDg3Li5jMzYwNzFlNzNkYjM2MmIyNTdiZWVlM2Iy
MDExYTZhZGQ4ZTQ1YWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4MSw2ICsxODEsNyBAQCBo
dHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvIFsgU2tpcCBdCiBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3Blcm1pc3Npb24tZXJyb3IuaHRtbCBbIFNraXAgXQogZmFzdC9zcGVlY2hyZWNv
Z25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbCBbIFNraXAgXQogZmFzdC9z
cGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBbIFNraXAgXQor
ZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvIFsgU2tpcCBdCiAKICMgT25seSBwYXJ0aWFsIHN1
cHBvcnQgb24gQ29jb2EgcGxhdGZvcm1zLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zcGVlY2gtYXBpLyBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9pb3MvYXVkaW8tY2FwdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL2lvcy9hdWRpby1jYXB0dXJlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNjgzMmExN2NmY2YzYjhhZDJkZjgwMmRhNWU3MmMzZWQwNDAyYTVjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9pb3MvYXVk
aW8tY2FwdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVmVyaWZ5IHRoYXQgYXVk
aW8gY2FwdHVyZSBvbiBpT1MgaGFwcGVucyBpbiB3ZWIgcHJvY2Vzcy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRp
b24oKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29nbml0aW9uLnN0YXJ0KCkg
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitSZWNlaXZlZCBzdGFydCBldmVudAorUmVjZWl2ZWQg
YXVkaW9zdGFydCBldmVudAorUEFTUyBpbnRlcm5hbHMuYXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSBp
cyAiUGxheUFuZFJlY29yZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0
aW9uL2lvcy9hdWRpby1jYXB0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL2lvcy9hdWRpby1jYXB0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThlNTA5YzI5MTBhNjIw
Njc3NTdmNTcxMDc5OTExMGE5YWI4YmZkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vaW9zL2F1ZGlvLWNhcHR1cmUuaHRtbApAQCAtMCwwICsx
LDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJWZXJpZnkgdGhhdCBhdWRpbyBjYXB0dXJlIG9uIGlPUyBoYXBwZW5zIGluIHdlYiBwcm9j
ZXNzLiIpOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKK30KKworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29n
bml0aW9uKCk7Iik7CityZWNvZ25pdGlvbi5vbnN0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgZGVi
dWcoIlJlY2VpdmVkIHN0YXJ0IGV2ZW50Iik7Cit9CisKK3JlY29nbml0aW9uLm9uYXVkaW9zdGFy
dCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBhdWRpb3N0YXJ0IGV2ZW50Iik7
CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImludGVybmFscy5hdWRpb1Nlc3Npb25DYXRl
Z29yeSgpIiwgIlBsYXlBbmRSZWNvcmQiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2hv
dWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDNkMDUyOGU4ZTk4OTJjMTM2YWJk
NDJkZDg1N2M5YTgxNDAzNWExN2MuLmVjNjg4NmMxYjI3YTM3NjNjMzRhN2JjYjkzMGQ1YjU2ZDE3
ZWY3MDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE3LDYgKzE3LDcgQEAgY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwg
WyBQYXNzIF0KIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0L2hpc3Rvcnkv
aW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KK2Zhc3Qvc3BlZWNocmVj
b2duaXRpb24vaW9zIFsgUGFzcyBdCiBmYXN0L3ZpZXdwb3J0L2lvcyBbIFBhc3MgXQogZmFzdC92
aXN1YWwtdmlld3BvcnQvaW9zLyBbIFBhc3MgXQogc2Nyb2xsaW5nY29vcmRpbmF0b3IgWyBQYXNz
IF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>