<?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>216696</bug_id>
          
          <creation_ts>2020-09-18 08:10:58 -0700</creation_ts>
          <short_desc>Add support for HTMLMediaElement.setSinkId</short_desc>
          <delta_ts>2021-08-24 10:20:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>216693</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haimomesi</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1689785</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-18 08:10:58 -0700</bug_when>
    <thetext>Add support for HTMLMediaElement.setSinkId</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689791</commentid>
    <comment_count>1</comment_count>
      <attachid>409130</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-18 08:28:03 -0700</bug_when>
    <thetext>Created attachment 409130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689862</commentid>
    <comment_count>2</comment_count>
      <attachid>409130</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-09-18 10:47:37 -0700</bug_when>
    <thetext>Comment on attachment 409130
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Implement setSinkId and sinkId as per https://w3c.github.io/mediacapture-output/#htmlmediaelement-extensions,

s/,/./

&gt; LayoutTests/imported/w3c/ChangeLog:15
&gt; +        * web-platform-tests/audio-output/META.yml: Added.
&gt; +        * web-platform-tests/audio-output/idlharness.https.window-expected.txt: Added.
&gt; +        * web-platform-tests/audio-output/idlharness.https.window.html: Added.
&gt; +        * web-platform-tests/audio-output/idlharness.https.window.js: Added.
&gt; +        * web-platform-tests/audio-output/setSinkId.https-expected.txt: Added.
&gt; +        * web-platform-tests/audio-output/setSinkId.https.html: Added.
&gt; +        * web-platform-tests/audio-output/w3c-import.log: Added.

It looks like you forgot to add these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689870</commentid>
    <comment_count>3</comment_count>
      <attachid>409146</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-18 10:57:25 -0700</bug_when>
    <thetext>Created attachment 409146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689872</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-18 10:57:57 -0700</bug_when>
    <thetext>&gt; It looks like you forgot to add these.

The danger of git reset HEAD~1...
Here they are!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690169</commentid>
    <comment_count>5</comment_count>
      <attachid>409234</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-20 09:29:26 -0700</bug_when>
    <thetext>Created attachment 409234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690175</commentid>
    <comment_count>6</comment_count>
      <attachid>409237</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-20 10:29:30 -0700</bug_when>
    <thetext>Created attachment 409237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690219</commentid>
    <comment_count>7</comment_count>
      <attachid>409237</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-20 13:54:32 -0700</bug_when>
    <thetext>Comment on attachment 409237
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:2863
&gt; +    if (!document().processingUserGestureForMedia() &amp;&amp; document().topDocument().settings().speakerSelectionRequiresUserGesture()) {

What is the goal of accessing settings from topDocument here?

&gt; Source/WebCore/html/HTMLMediaElement.idl:92
&gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection] readonly attribute DOMString audioOutputDevice;
&gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection, ImplementedAs=audioOutputHashedDeviceId] readonly attribute DOMString sinkId;
&gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection] Promise&lt;undefined&gt; setAudioOutputDevice(DOMString deviceId);
&gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection, ImplementedAs=setAudioOutputDevice] Promise&lt;undefined&gt; setSinkId(DOMString deviceId);

From the spec you linked in the ChangeLog, I only saw sinkId and setSinkId. Where do audioOutputDevice and setAudioOutputDevice come from? Regardless, these can and should now be defined from their own IDL file using a partial interface (partial interfaces no longer require a separate implementation class with static functions, so the implementation can stay in HTMLMediaElement.h/cpp if that is the right place for it to live.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:956
&gt; +#if PLATFORM(MAC)

Rather than using PLATFORM(MAC) here, I have been trying to encourage people to use more fine grained defines. Perhaps ENABLE(MEDIA_STREAM_OUTPUT_DEVICE_ID) or something like that?

&gt; Source/WebKit/Shared/WebPreferencesExperimental.yaml:146
&gt; +  category: experimental

it is no longer needed (or desired) to set the category as it it implied by the file.

&gt; Source/WebKit/Shared/WebPreferencesExperimental.yaml:147
&gt; +  condition: ENABLE(WEB_RTC)

Is this the right condition? In the rest of the patch, you have mostly been using ENABLE(MEDIA_STREAM).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690257</commentid>
    <comment_count>8</comment_count>
      <attachid>409263</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-21 00:37:49 -0700</bug_when>
    <thetext>Created attachment 409263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690258</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-21 00:40:45 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #7)
&gt; Comment on attachment 409237 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=409237&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:2863
&gt; &gt; +    if (!document().processingUserGestureForMedia() &amp;&amp; document().topDocument().settings().speakerSelectionRequiresUserGesture()) {
&gt; 
&gt; What is the goal of accessing settings from topDocument here?

This is mirroring what is done for audio playing restriction.
I changed it to use the current document for now.

&gt; &gt; Source/WebCore/html/HTMLMediaElement.idl:92
&gt; &gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection] readonly attribute DOMString audioOutputDevice;
&gt; &gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection, ImplementedAs=audioOutputHashedDeviceId] readonly attribute DOMString sinkId;
&gt; &gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection] Promise&lt;undefined&gt; setAudioOutputDevice(DOMString deviceId);
&gt; &gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection, ImplementedAs=setAudioOutputDevice] Promise&lt;undefined&gt; setSinkId(DOMString deviceId);
&gt; 
&gt; From the spec you linked in the ChangeLog, I only saw sinkId and setSinkId.
&gt; Where do audioOutputDevice and setAudioOutputDevice come from? Regardless,
&gt; these can and should now be defined from their own IDL file using a partial
&gt; interface (partial interfaces no longer require a separate implementation
&gt; class with static functions, so the implementation can stay in
&gt; HTMLMediaElement.h/cpp if that is the right place for it to live.

WG agreed to introduce navigator.mediaDevices.setAudioOutputDevice to set the audio output for a whole page.
I filed an issue to rename SetSinkId to setAudioOutputDevice for consistency.
I removed it for now and will introduce it later.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:956
&gt; &gt; +#if PLATFORM(MAC)
&gt; 
&gt; Rather than using PLATFORM(MAC) here, I have been trying to encourage people
&gt; to use more fine grained defines. Perhaps
&gt; ENABLE(MEDIA_STREAM_OUTPUT_DEVICE_ID) or something like that?

OK, let&apos;s use HAVE() instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690288</commentid>
    <comment_count>10</comment_count>
      <attachid>409274</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-21 06:00:11 -0700</bug_when>
    <thetext>Created attachment 409274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690309</commentid>
    <comment_count>11</comment_count>
      <attachid>409274</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-21 08:27:16 -0700</bug_when>
    <thetext>Comment on attachment 409274
Patch

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

&gt; Source/WTF/ChangeLog:8
&gt; +
&gt; +        * wtf/PlatformHave.h:

Please fill in the changelog.

&gt; Source/WebKit/ChangeLog:14
&gt; +        Add internal flag to enable/disable user gesture requirement for setting audio output.
&gt; +
&gt; +        * Shared/WebPreferencesExperimental.yaml:
&gt; +        * UIProcess/API/C/WKPreferences.cpp:
&gt; +        (WKPreferencesSetSpeakerSelectionRequiresUserGesture):
&gt; +        (WKPreferencesGetSpeakerSelectionRequiresUserGesture):
&gt; +        * UIProcess/API/C/WKPreferencesRefPrivate.h:

This ChangeLog doesn&apos;t look accurate. You changed both WebPreferencesInternal.yaml and WebPreferencesExperimental.yaml.

&gt; Source/WebCore/html/HTMLMediaElement.idl:90
&gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection, ImplementedAs=audioOutputHashedDeviceId] readonly attribute DOMString sinkId;
&gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection, ImplementedAs=setAudioOutputDevice] Promise&lt;undefined&gt; setSinkId(DOMString deviceId);

Please move these out into a partial interface in their own IDL file. Also, why are they implemented under another name? Why not just call them sinkId/setSinkId in the implementation?

&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:172
&gt; +// Defaults to false.

This currently seems to default to true.

&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:174
&gt; +WK_EXPORT void WKPreferencesSetSpeakerSelectionRequiresUserGesture(WKPreferencesRef preferencesRef, bool flag);
&gt; +WK_EXPORT bool WKPreferencesGetSpeakerSelectionRequiresUserGesture(WKPreferencesRef preferencesRef);

Are these needed beyond use by WebKitTestRunner? If it&apos;s only going to be used by WebKitTestRunner, please use WKPreferencesSetInternalDebugFeatureForKey(preferences, false, WKStringCreateWithUTF8CString(&quot;SpeakerSelectionRequiresUserGesture&quot;); instead of adding this new SPI (you can find others doing this around line 845 of TestController.cpp in WebKitTestRunner.

&gt; LayoutTests/ChangeLog:8
&gt; +        Skip new tests on WK1.

Out of interest, what is WebKit2 specific about these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690310</commentid>
    <comment_count>12</comment_count>
      <attachid>409274</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-21 08:28:20 -0700</bug_when>
    <thetext>Comment on attachment 409274
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Introduce a setting to expose these methods and to enable/disable user gesture requirement.

How can we test the user gesture requirement? It seems like that&apos;s something we wouldn&apos;t want to break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690346</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-21 10:44:33 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/html/HTMLMediaElement.idl:90
&gt; &gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection, ImplementedAs=audioOutputHashedDeviceId] readonly attribute DOMString sinkId;
&gt; &gt; +    [Conditional=MEDIA_STREAM, EnabledBySetting=ExposeSpeakers&amp;PerElementSpeakerSelection, ImplementedAs=setAudioOutputDevice] Promise&lt;undefined&gt; setSinkId(DOMString deviceId);
&gt; 
&gt; Please move these out into a partial interface in their own IDL file. Also,
&gt; why are they implemented under another name? Why not just call them
&gt; sinkId/setSinkId in the implementation?

sinkId/setSinkId is not very meaningful and we want to introduce navigator.mediaDevices.setAudioOutput which is the same but for a whole page.
The idea would be to deprecate setSinkId in favour of setAudioOutput.

&gt; &gt; LayoutTests/ChangeLog:8
&gt; &gt; +        Skip new tests on WK1.
&gt; 
&gt; Out of interest, what is WebKit2 specific about these?

navigator.mediaDevices</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690399</commentid>
    <comment_count>14</comment_count>
      <attachid>409293</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-21 12:07:31 -0700</bug_when>
    <thetext>Created attachment 409293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690730</commentid>
    <comment_count>15</comment_count>
      <attachid>409293</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-22 09:26:11 -0700</bug_when>
    <thetext>Comment on attachment 409293
Patch

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

&gt; Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.cpp:42
&gt; +#if PLATFORM(COCOA)
&gt; +#include &quot;CoreAudioCaptureDevice.h&quot;
&gt; +#include &quot;CoreAudioCaptureDeviceManager.h&quot;
&gt; +#endif

Since this is a Mac only file, I don&apos;t think the platform check is needed here.

&gt; Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.cpp:61
&gt; +#if PLATFORM(MAC)

Given the path of the file, I assume it is Mac only. Is this check really needed?

&gt; Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.cpp:196
&gt; +#if PLATFORM(MAC)

Same here.

&gt; Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.h:73
&gt; +#if PLATFORM(MAC)

And here.

&gt; Source/WebCore/testing/Internals.cpp:570
&gt; +    page.settings().setSpeakerSelectionRequiresUserGesture(false);

It seems like this is duplicated here and in TestController.cpp.

&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:174
&gt; +// Defaults to true.
&gt; +WK_EXPORT void WKPreferencesSetSpeakerSelectionRequiresUserGesture(WKPreferencesRef preferencesRef, bool flag);
&gt; +WK_EXPORT bool WKPreferencesGetSpeakerSelectionRequiresUserGesture(WKPreferencesRef preferencesRef);

Why is new SPI needed here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690761</commentid>
    <comment_count>16</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-22 10:12:24 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #15)
&gt; Comment on attachment 409293 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=409293&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.cpp:42
&gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; +#include &quot;CoreAudioCaptureDevice.h&quot;
&gt; &gt; +#include &quot;CoreAudioCaptureDeviceManager.h&quot;
&gt; &gt; +#endif
&gt; 
&gt; Since this is a Mac only file, I don&apos;t think the platform check is needed
&gt; here.

Right.

&gt; &gt; Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.cpp:61
&gt; &gt; +#if PLATFORM(MAC)
&gt; 
&gt; Given the path of the file, I assume it is Mac only. Is this check really
&gt; needed?

It is needed.
Source/WebCore/platform/mediastream/mac should really be renamed Source/WebCore/platform/mediastream/cocoa.

&gt; &gt; Source/WebCore/testing/Internals.cpp:570
&gt; &gt; +    page.settings().setSpeakerSelectionRequiresUserGesture(false);
&gt; 
&gt; It seems like this is duplicated here and in TestController.cpp.

If Internals sets it to true, it might stick for longer than expected.
 
&gt; &gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:174
&gt; &gt; +// Defaults to true.
&gt; &gt; +WK_EXPORT void WKPreferencesSetSpeakerSelectionRequiresUserGesture(WKPreferencesRef preferencesRef, bool flag);
&gt; &gt; +WK_EXPORT bool WKPreferencesGetSpeakerSelectionRequiresUserGesture(WKPreferencesRef preferencesRef);
&gt; 
&gt; Why is new SPI needed here?

Oh right, it should be removed now that TestController does not use it anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690775</commentid>
    <comment_count>17</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-22 10:49:23 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #16)
&gt; &gt; &gt; Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.cpp:61
&gt; &gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; 
&gt; &gt; Given the path of the file, I assume it is Mac only. Is this check really
&gt; &gt; needed?
&gt; 
&gt; It is needed.
&gt; Source/WebCore/platform/mediastream/mac should really be renamed
&gt; Source/WebCore/platform/mediastream/cocoa.

I see. Very confusing.

&gt; 
&gt; &gt; &gt; Source/WebCore/testing/Internals.cpp:570
&gt; &gt; &gt; +    page.settings().setSpeakerSelectionRequiresUserGesture(false);
&gt; &gt; 
&gt; &gt; It seems like this is duplicated here and in TestController.cpp.
&gt; 
&gt; If Internals sets it to true, it might stick for longer than expected.

Really? TestController calls this in a function called resetPreferencesToConsistentValues() which seems to be called after every invocation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690781</commentid>
    <comment_count>18</comment_count>
      <attachid>409293</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-09-22 11:08:22 -0700</bug_when>
    <thetext>Comment on attachment 409293
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.h:615
&gt; +    String audioOutputDeviceId() const final;
&gt; +    String audioOutputDeviceIdOverride() const final { return m_audioOutputPersistentDeviceId; }

Why are these `final`?

Why is one implemented in here and one in the .cpp when they both just return a member variable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691059</commentid>
    <comment_count>19</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-23 03:05:57 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #18)
&gt; Comment on attachment 409293 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=409293&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.h:615
&gt; &gt; +    String audioOutputDeviceId() const final;
&gt; &gt; +    String audioOutputDeviceIdOverride() const final { return m_audioOutputPersistentDeviceId; }
&gt; 
&gt; Why are these `final`?

These are MediaPlayerClient API.

&gt; Why is one implemented in here and one in the .cpp when they both just
&gt; return a member variable?

audioOutputDeviceId() will later on either return the override or the page audioOutputDeviceId(), hence why it was in cpp in the main patch.
I moved all of them to header file for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691060</commentid>
    <comment_count>20</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-23 03:06:50 -0700</bug_when>
    <thetext>&gt; &gt; If Internals sets it to true, it might stick for longer than expected.
&gt; 
&gt; Really? TestController calls this in a function called
&gt; resetPreferencesToConsistentValues() which seems to be called after every
&gt; invocation.

Did some test and you are right it does not seem necessary so I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691061</commentid>
    <comment_count>21</comment_count>
      <attachid>409457</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-23 03:09:18 -0700</bug_when>
    <thetext>Created attachment 409457
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691066</commentid>
    <comment_count>22</comment_count>
      <attachid>409459</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-23 04:17:54 -0700</bug_when>
    <thetext>Created attachment 409459
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691094</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-23 07:04:24 -0700</bug_when>
    <thetext>Committed r267472: &lt;https://trac.webkit.org/changeset/267472&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409459.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691095</commentid>
    <comment_count>24</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-23 07:05:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/69433680&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709035</commentid>
    <comment_count>25</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-11-19 04:32:52 -0800</bug_when>
    <thetext>Sorry, only the validHandler needs to be immutable for us. If I make it mutable here&apos;s the error:

../../Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:70:17: error: no matching function for call to object of type &apos;const (lambda at ../../Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:54:29)&apos;
                validHandler(std::move&lt;WTF::CheckMoveParameter&gt;(audioDevices), std::move&lt;WTF::CheckMoveParameter&gt;(videoDevices), std::move&lt;WTF::CheckMoveParameter&gt;(*deviceIdentifierHashSalt));
                ^~~~~~~~~~~~
../../Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:54:29: note: candidate function not viable: &apos;this&apos; argument has type &apos;const (lambda at ../../Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp:54:29)&apos;, but method is not marked const
        auto validHandler = [this, request](Vector&lt;CaptureDevice&gt;&amp;&amp; audioDevices, Vector&lt;CaptureDevice&gt;&amp;&amp; videoDevices, String&amp;&amp; deviceIdentifierHashSalt) mutable {
                            ^
1 error generated.
Compiler killed by signal 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709036</commentid>
    <comment_count>26</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-11-19 04:33:10 -0800</bug_when>
    <thetext>oops wrong bug, sorry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786481</commentid>
    <comment_count>27</comment_count>
    <who name="">haimomesi</who>
    <bug_when>2021-08-23 11:19:41 -0700</bug_when>
    <thetext>On Safari Technology Release 115 it says:

Added support for HTMLMediaElement.setSinkId

Changeset 267472 in webkit shows all the changes made but I&apos;m using Release 127 (Safari 15.0, WebKit 16612.1.18.11.3) and don&apos;t have the setSinkId functionality at all.

Moreover, when using WKWebView I also don&apos;t have any &quot;audiooutput&quot; devices when enumerating devices.

The goal is to use getUserMedia and toggle the outputs from earpiece to speaker on iOS.

Any help will be much appreciated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786520</commentid>
    <comment_count>28</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-08-23 13:02:38 -0700</bug_when>
    <thetext>(In reply to haimomesi from comment #27)
&gt; On Safari Technology Release 115 it says:
&gt; 
&gt; Added support for HTMLMediaElement.setSinkId
&gt; 
&gt; Changeset 267472 in webkit shows all the changes made but I&apos;m using Release
&gt; 127 (Safari 15.0, WebKit 16612.1.18.11.3) and don&apos;t have the setSinkId
&gt; functionality at all.
&gt; 
&gt; Moreover, when using WKWebView I also don&apos;t have any &quot;audiooutput&quot; devices
&gt; when enumerating devices.
&gt; 
&gt; The goal is to use getUserMedia and toggle the outputs from earpiece to
&gt; speaker on iOS.
&gt; 
&gt; Any help will be much appreciated

Exposing audio output devices and setSinkId are still experimental features and both are still disabled by default. 

You should be able to enable these features for testing with Safari&apos;s Develop menu:

    Develop &gt; Experimental Features &gt; Allow per media element speaker device selection
    Develop &gt; Experimental Features &gt; Allow speaker device selection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786698</commentid>
    <comment_count>29</comment_count>
    <who name="">haimomesi</who>
    <bug_when>2021-08-24 02:41:55 -0700</bug_when>
    <thetext>Can we enabled this with WKWebView in some manner?
Or maybe run a js script that will allow this behavior?

Thank you for the quick reply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786789</commentid>
    <comment_count>30</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-08-24 10:20:23 -0700</bug_when>
    <thetext>(In reply to haimomesi from comment #29)
&gt; Can we enabled this with WKWebView in some manner?
&gt; Or maybe run a js script that will allow this behavior?
&gt; 

No, WKWebView doesn&apos;t have API to enable experimental features.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409130</attachid>
            <date>2020-09-18 08:28:03 -0700</date>
            <delta_ts>2020-09-18 10:57:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216696-20200918172801.patch</filename>
            <type>text/plain</type>
            <size>35867</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTMyMjEwMTVmNWZkY2Ix
OTExMjZkMWIwYzVhNmVjZjczZTY1M2YyYy4uMDNmMmU5NTFkNmM1OTZhNzk2YTMyYTA4OTliNjc3
ODNiMzU1ZTVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIwLTA5LTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
SFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBzZXRTaW5rSWQgYW5kIHNpbmtJZCBhcyBwZXIg
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1vdXRwdXQvI2h0bWxtZWRpYWVsZW1l
bnQtZXh0ZW5zaW9ucywKKyAgICAgICAgSW50cm9kdWNlIGEgc2V0dGluZyB0byBleHBvc2UgdGhl
c2UgbWV0aG9kcyBhbmQgdG8gZW5hYmxlL2Rpc2FibGUgdXNlciBnZXN0dXJlIHJlcXVpcmVtZW50
LgorICAgICAgICBBZGQgaW50ZXJmYWNlcyB0byBjaGFuZ2UgZGV2aWNlIG91dHB1dCBmb3Igc3Bl
Y2lmaWMgbWVkaWEgcGxheWVycy4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhMUywgTVNFIGFu
ZCBNZWRpYVN0cmVhbVRyYWNrIHJlbmRlcmVycyBvbiBNYWNPUy4KKworICAgICAgICBUZXN0czog
aHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbAorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRBdWRpb091dHB1
dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1
dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvT3V0cHV0SGFzaGVkRGV2aWNl
SWQgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGw6CisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERl
dmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJ
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRw
dXREZXZpY2VJZE92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
QVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNl
Q2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRBdWRpb091dHB1dERldmljZUlkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Lmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lz
dGVudFN0YXRlKToKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2VzcyBpbnN0ZWFkIG9mIFVJ
UHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBpbiBXZWJQcm9jZXNzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDgyMGVkNDNmNWQ2MzEyZmE2OTZkN2I4NWJhOGVlMDQ0OTBiZDFiZDMuLjY1YjI3
ZjFiODE0ZGVhMmJjODNlMzRmNDcwZjZkNmQyMTE4ZWIxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50LnNldFNpbmtJZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2Njk2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2Vz
cyBpbnN0ZWFkIG9mIFVJUHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBp
biBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHAKaW5kZXggYmU3MGFhYWJkOGU4MGQyZjdiNWNmNTJlNzMyNzE1ZjYx
ODM5OGYwZS4uODUxOTNhYzg1ZTE0YTBmNDRkNDFjZWU0Nzk5YjM3OWRkYWQyYjBiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNw
cApAQCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKGNv
bnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICBib29sIGNh
bkFjY2Vzc01pY3JvcGhvbmUgPSBjaGVja01pY3JvcGhvbmVBY2Nlc3MoZG9jdW1lbnQpOwogICAg
IGJvb2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2Vzcyhkb2N1bWVudCk7CiAK
KyAgICBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5jbGVhcigpOworCiAgICAg
VmVjdG9yPFJlZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VzOwogICAgIGZvciAoYXV0byYgbmV3
RGV2aWNlIDogbmV3RGV2aWNlcykgewogICAgICAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUg
JiYgbmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bo
b25lKQpAQCAtMjE0LDYgKzIxNiw5IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2Vz
KGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICAgICAg
YXV0byBkZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZUlESGFzaFNh
bHQpOwogICAgICAgICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9ncm91
cElkSGFzaFNhbHQpOwogCisgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIpCisgICAgICAgICAgICBtX2F1ZGlvT3V0cHV0RGV2
aWNlSWRUb1BlcnNpc3RlbnRJZC5hZGQoZGV2aWNlSWQsIG5ld0RldmljZS5wZXJzaXN0ZW50SWQo
KSk7CisKICAgICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3
RGV2aWNlLmxhYmVsKCksIFdURk1vdmUoZGV2aWNlSWQpLCBXVEZNb3ZlKGdyb3VwSWQpLCB0b01l
ZGlhRGV2aWNlSW5mb0tpbmQobmV3RGV2aWNlLnR5cGUoKSkpKTsKICAgICB9CiAgICAgcHJvbWlz
ZS5yZXNvbHZlKGRldmljZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggNTgyODY3MjUzY2FkMTY5OGQ4MDE1ZjY2ZWE1ZjUz
NGY5MmY1MzlkMS4uNmY5MDYyOGFiMGNjOGYwYTM0MTExMzRmODc5N2U2NGJmYzgxNmYzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5o
CkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51
bWVyYXRlRGV2aWNlc1Byb21pc2UmJik7CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFp
bnRzIGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7CiAKKyAgICBTdHJpbmcgZGV2aWNlSWRUb1Bl
cnNpc3RlbnRJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKSBjb25zdCB7IHJldHVybiBtX2F1ZGlv
T3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5nZXQoZGV2aWNlSWQpOyB9CisKICAgICB1c2lu
ZyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlcz46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPE1l
ZGlhRGV2aWNlcz46OmRlcmVmOwogCkBAIC0xMzAsNiArMTMyLDkgQEAgcHJpdmF0ZToKIAogICAg
IE9wdGlvblNldDxHZXN0dXJlQWxsb3dlZFJlcXVlc3Q+IG1fcmVxdWVzdFR5cGVzRm9yQ3VycmVu
dEdlc3R1cmU7CiAgICAgV2Vha1B0cjxVc2VyR2VzdHVyZVRva2VuPiBtX2N1cnJlbnRHZXN0dXJl
VG9rZW47CisKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2F1ZGlvT3V0cHV0RGV2aWNl
SWRUb1BlcnNpc3RlbnRJZDsKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0MjNjNmZiMGE2ZmEwODY5NmIyMS4u
ZTg5NTQ4YmEwZWYzYTU4YjhjNDUzZWNlNmE5Yzk2OTE0YjA3NGRjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgiCiAjaW5j
bHVkZSAiTWVkaWFEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1lZGlhRXJyb3IuaCIKICNpbmNsdWRl
ICJNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgiCkBAIC03OCw2ICs3OSw3IEBACiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVk
ZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRvck1lZGlhRGV2aWNl
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUE9ESW50ZXJ2
YWxUcmVlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjg0Myw2ICsyODQ1LDU5IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6ZmFzdFNlZWsoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogICAgIHNl
ZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWU6Onplcm9U
aW1lKCksIHRydWUpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1N0cmluZyBIVE1M
TWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
YXVkaW9PdXRwdXRQZXJzaXN0ZW50RGV2aWNlSWQ7Cit9CisKK3ZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2V0QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQoKS5k
b21XaW5kb3coKTsKKyAgICBhdXRvKiBtZWRpYURldmljZXMgPSB3aW5kb3cgPyBOYXZpZ2F0b3JN
ZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyh3aW5kb3ctPm5hdmlnYXRvcigpKSA6IG51bGxwdHI7
CisgICAgaWYgKCFtZWRpYURldmljZXMpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFkb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgJiYgZG9jdW1l
bnQoKS50b3BEb2N1bWVudCgpLnNldHRpbmdzKCkuc3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNl
ckdlc3R1cmUoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxv
d2VkRXJyb3IsICJBIHVzZXIgZ2VzdHVyZSBpcyByZXF1aXJlZCJfcyB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmIChkZXZpY2VJZC5pc0VtcHR5KCkpCisgICAgICAgIGRldmlj
ZUlkID0geyB9OworCisgICAgaWYgKGRldmljZUlkID09IG1fYXVkaW9PdXRwdXRIYXNoZWREZXZp
Y2VJZCkgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFN0cmluZyBwZXJzaXN0ZW50SWQ7CisgICAgaWYgKCFkZXZpY2VJZC5pc051bGwo
KSkgeworICAgICAgICBwZXJzaXN0ZW50SWQgPSBtZWRpYURldmljZXMtPmRldmljZUlkVG9QZXJz
aXN0ZW50SWQoZGV2aWNlSWQpOworICAgICAgICBpZiAocGVyc2lzdGVudElkLmlzTnVsbCgpKSB7
CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yIH0p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9hdWRpb091
dHB1dFBlcnNpc3RlbnREZXZpY2VJZCA9IFdURk1vdmUocGVyc2lzdGVudElkKTsKKyAgICBpZiAo
bV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsK
KworICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRh
c2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgZGV2aWNlSWQgPSBXVEZNb3ZlKGRldmljZUlkKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKCkgbXV0YWJsZSB7CisgICAgICAgIG1fYXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJZCA9
IFdURk1vdmUoZGV2aWNlSWQpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsK
K30KKyNlbmRpZgorCitTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2VJ
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXVkaW9PdXRwdXRQZXJzaXN0ZW50RGV2aWNlSWQ7
Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vlayhjb25zdCBNZWRpYVRpbWUmIHRpbWUp
CiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0aW1lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYWIyYjAwMTFiNTk0MzllYTUxZThhYTNlMjA4ZmUw
MTJjNjNkMTJlZC4uZDBkZWZiMTc1NGZhOTBiODNhN2NjNDI5NTg3OWI1MTRmMjM0ZWRhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTI2OCw2ICsyNjgsMTEgQEAg
cHVibGljOgogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdDsKICAgICBkb3Vi
bGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZSgpIGNvbnN0OworICAgIHZvaWQgc2V0QXVk
aW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKKyNlbmRpZgorCiAgICAgdXNpbmcgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpCdWZmZXJp
bmdQb2xpY3k7CiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koQnVmZmVyaW5nUG9saWN5KTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBCdWZmZXJpbmdQb2xpY3kgYnVmZmVyaW5nUG9saWN5KCkgY29u
c3Q7CkBAIC01ODAsNiArNTg1LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0T3ZlcnJpZGVQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpOwog
ICAgIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlKTsK
IAorICAgIFN0cmluZyBhdWRpb091dHB1dEhhc2hlZERldmljZUlkKCkgY29uc3QgeyByZXR1cm4g
bV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkOyB9CisKIHByb3RlY3RlZDoKICAgICBIVE1MTWVk
aWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoSW5pdGlhbGl6YXRpb24oKTsKQEAgLTYw
NCw2ICs2MTEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKIAogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1bWVudFNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBj
b25zdCBmaW5hbDsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZpY2VJZDsgfQogCiAg
ICAgYm9vbCBtZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQg
c2V0TWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKGJvb2wpOwpAQCAtMTE5Nyw2
ICsxMjA2LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQbGF5aW5nVG9XaXJlbGVzc1Rhcmdl
dCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BsYXlpbmdPblNlY29uZFNjcmVlbiB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhhdmlvclJlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2Vz
dHVyZSB7IGZhbHNlIH07CisKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZp
Y2VJZDsKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkOwogfTsKIAogU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6OkF1dG9wbGF5
RXZlbnRQbGF5YmFja1N0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aWRsCmluZGV4IGI0MmQwZWEzNzEwNmI0NzJiYmM5Y2VkZjYwNzgzZmUwYTM5ZWZmYzkuLmFlMGE0
MmJlNDc4ZTdjYTM1ZDBlY2VlNTZmZWQ3NDBkYTZlODMyY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmlkbApAQCAtODYsNiArODYsMTEgQEAgdHlwZWRlZiAoCiAgICAg
dW5kZWZpbmVkIHBhdXNlKCk7CiAgICAgdW5kZWZpbmVkIGZhc3RTZWVrKHVucmVzdHJpY3RlZCBk
b3VibGUgdGltZSk7CiAKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlT
ZXR0aW5nPUV4cG9zZVNwZWFrZXJzJlBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uXSByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlOworICAgIFtDb25kaXRpb25h
bD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVu
dFNwZWFrZXJTZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJ
ZF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzaW5rSWQ7CisgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NUUkVBTSwgRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50
U3BlYWtlclNlbGVjdGlvbl0gUHJvbWlzZTx1bmRlZmluZWQ+IHNldEF1ZGlvT3V0cHV0RGV2aWNl
KERPTVN0cmluZyBkZXZpY2VJZCk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgRW5h
YmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbiwg
SW1wbGVtZW50ZWRBcz1zZXRBdWRpb091dHB1dERldmljZV0gUHJvbWlzZTx1bmRlZmluZWQ+IHNl
dFNpbmtJZChET01TdHJpbmcgZGV2aWNlSWQpOworCiAgICAgLy8gY29udHJvbHMKICAgICBbQ0VS
ZWFjdGlvbnM9Tm90TmVlZGVkXSBhdHRyaWJ1dGUgYm9vbGVhbiBjb250cm9sczsKICAgICBhdHRy
aWJ1dGUgZG91YmxlIHZvbHVtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAxNzg5
N2VlMzA0YWViMjJiNTgyZmJkOTNiNGI5MjYxNDIwMjczYjZmLi40YmM2ODE2OTk4MGExMzMxNGU3
YmZlNGNlNjQ1MDNiOTUyZGZkOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04
MjYsNiArODI2LDEyIEBAIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk6CiBleHBvc2VTcGVha2Vy
c0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKK3BlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9u
RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKworc3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNl
ckdlc3R1cmU6CisgIGluaXRpYWw6IHRydWUKKwogbWVkaWFEZXZpY2VJZGVudGlmaWVyU3RvcmFn
ZURpcmVjdG9yeToKICAgdHlwZTogU3RyaW5nCiAgIGNvbmRpdGlvbmFsOiBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCmluZGV4IDYzY2YzY2NlZTgxMTJlMTU1ZTE5MzgwNWE2NDQ4Y2U4ZGJhMWUzYTIuLjkw
MmY1ODk5N2Y3MjZjZmIxN2E2MjZiZDllOTQ2NWU1OWRkZWNiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTE2MDQsNiArMTYw
NCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5
bmFtaWNSYW5nZU1vZGUgbW9kZSkKICAgICBtX3ByaXZhdGUtPnNldFByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUobW9kZSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNl
Q2hhbmdlZCgpCit7CisgICAgbV9wcml2YXRlLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsK
K30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogY29uc3QgTG9nZ2VyJiBNZWRpYVBsYXll
cjo6bWVkaWFQbGF5ZXJMb2dnZXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggZWEyNTdmMTJhY2YwOWUwYmJkZmIzMjliMTE1M2Nj
ZTUxYWNhZjRmMy4uZDQ2NzMxYTJiYWRmODg1NzAxODAxOTg4MTU2MjMyYzM0YjFmZGZlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0y
NzMsNiArMjczLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTZWN1cml0eU9yaWdpbkRhdGEg
ZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogCisgICAgdmly
dHVhbCBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQor
ICAgIHZpcnR1YWwgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IHsg
cmV0dXJuIHsgfTsgfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdmlydHVhbCBj
b25zdCB2b2lkKiBtZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgPSAwOwpAQCAt
NjMxLDYgKzYzNCwxMCBAQCBwdWJsaWM6CiAgICAgRHluYW1pY1JhbmdlTW9kZSBwcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VN
b2RlOyB9CiAgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5n
ZU1vZGUpOwogCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdDsKKyAgICBT
dHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3Q7CisgICAgdm9pZCBhdWRp
b091dHB1dERldmljZUNoYW5nZWQoKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRp
YVBsYXllckNsaWVudCYpOwogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50JiwgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyKTsKQEAgLTcwNSw2ICs3MTIsMTYg
QEAgcHVibGljOgogfTsKIAogCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxheWVyOjphdWRpb091dHB1
dERldmljZUlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YXVk
aW9PdXRwdXREZXZpY2VJZCgpIDogU3RyaW5nIHsgfTsKK30KKworaW5saW5lIFN0cmluZyBNZWRp
YVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgOiBT
dHJpbmcgeyB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDY3MGMwYTQ5NGMxMWEyNzM3NjA0Mjg0MTgzYzAwNzg4
ZDk3NTk3OGQuLjgxMjUzMzAyNzZkZDU0NGUxZmNhYmRhMTdkNjM2Y2JjZjg3YmFkNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCkBAIC0yODksNiArMjg5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIHsgfQor
CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIHsgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGFkZTA2MzJjOWY2Y2RjMGMxNGQ1ZGE4ODVjYTdi
NzQyNzhiYmQzZTMuLjg1Y2U4MWQxMDNiODVkMWQ0MjZiN2EzNDhkOGYwM2EwYmUzNjY0NTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTMxOCw2ICszMTgsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2V0U2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3RhdHVzKGJvb2wpOwogCiAgICAgdm9pZCBz
ZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIGZpbmFsOworICAg
IHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICBSZXRhaW5QdHI8
QVZVUkxBc3NldD4gbV9hdkFzc2V0OwogICAgIFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBsYXll
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGFjMGY4ZmZhMDI4ODNlNGFhZmZmMzJiZjM4
MGY4ODIzMDAyYjU2MTUuLjhmNGU0MDNjZmIxMWVkZGE5NjAxNjViYWY5YmU2NTVmZjg4ZTk2M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtOTUzLDYgKzk1MywxMiBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKICAgICBpZiAo
bV9hdlBsYXllckl0ZW0pCiAgICAgICAgIHNldEFWUGxheWVySXRlbShtX2F2UGxheWVySXRlbS5n
ZXQoKSk7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgYXV0byBhdWRpb091dHB1dERldmljZUlk
ID0gcGxheWVyKCktPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGlmICghYXVk
aW9PdXRwdXREZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAgbV9hdlBsYXllci5nZXQoKS5hdWRp
b091dHB1dERldmljZVVuaXF1ZUlEID0gYXVkaW9PdXRwdXREZXZpY2VJZDsKKyNlbmRpZgorCiAg
ICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogfQogCkBAIC0zMjkzLDYgKzMyOTksMTUgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRQcmVmZXJyZWREeW5h
bWljUmFuZ2VNb2RlKER5bmFtaWNSYW4KICNlbmRpZgogfQogCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGlmICghbV9hdlBsYXllciB8fCAhcGxheWVyKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQg
PSBwbGF5ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZCgpOworI2VuZGlmCit9CisKIE5TQXJyYXkq
IGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBb
W05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgK
aW5kZXggMDliZjU1NzQ4NDMzMWQ1ODIyMGQyMGY1ZjIwMzMyOTZlNjljZWM0Mi4uOGNlM2I3YjQw
NWRmZGY5NzAyZjJmOTUxOGFkNjlkZDg1YmRmNzc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTI1NCw2ICsyNTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIHBlcmZv
cm1UYXNrQXRNZWRpYVRpbWUoRnVuY3Rpb248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKSBm
aW5hbDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAg
dm9pZCBlbnN1cmVMYXllcigpOwogICAgIHZvaWQgZGVzdHJveUxheWVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KaW5kZXggOGI5NDE1MDdjMDM4ODFjMDIxNmI0ZTc5MmUzOWRiMjZlMzU3
ZmRiOS4uN2IxMGRiNGM5ZjdiMzNiY2E1MjQ5MWI5NjQ5ZTZmMmRlMGRhZjJlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTE2Niw2ICsxMTY2LDEyIEBAIEFMTE9XX05FV19BUElf
V0lUSE9VVF9HVUFSRFNfRU5ECiAgICAgW2F1ZGlvUmVuZGVyZXIgc2V0Vm9sdW1lOm1fcGxheWVy
LT52b2x1bWUoKV07CiAgICAgW2F1ZGlvUmVuZGVyZXIgc2V0QXVkaW9UaW1lUGl0Y2hBbGdvcml0
aG06KG1fcGxheWVyLT5wcmVzZXJ2ZXNQaXRjaCgpID8gQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRo
bVNwZWN0cmFsIDogQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRobVZhcmlzcGVlZCldOwogCisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXRE
ZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFkZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAg
YXVkaW9SZW5kZXJlci5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gZGV2aWNlSWQ7CisjZW5k
aWYKKwogICAgIEB0cnkgewogICAgICAgICBbbV9zeW5jaHJvbml6ZXIgYWRkUmVuZGVyZXI6YXVk
aW9SZW5kZXJlcl07CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewpAQCAt
MTI3Niw2ICsxMjgyLDE3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphdWRp
b091dHB1dERldmljZUNoYW5nZWQoKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAoIW1f
cGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5h
dWRpb091dHB1dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBrZXkgOiBtX3NhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXJNYXAua2V5cygpKQorICAgICAgICAoKF9fYnJpZGdlIEFWU2FtcGxlQnVm
ZmVyQXVkaW9SZW5kZXJlciAqKWtleS5nZXQoKSkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9
IGRldmljZUlkOworI2VuZGlmCit9CisKIFdURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExv
Z01lZGlhU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCA4ZGU4OTVkN2IyNDEx
OGZkYjI4ZmFjMzljYjFiZmJlOThiOGY3NjEzLi42MzFmMzAzMWVhNDM4MGVhMzhkMWQ0NWFmNmIz
NDI5MDAwMjUwZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMTU5LDYgKzE1OSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
ZW5kZWQ7IH0KIAogICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZm
ZXJpbmdQb2xpY3kpIG92ZXJyaWRlOworICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2Vk
KCkgZmluYWw7CiAKICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBjdXJyZW50UmVhZHlTdGF0
ZSgpOwogICAgIHZvaWQgdXBkYXRlUmVhZHlTdGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tCmluZGV4IDJkYjUwYmI4OTU3NGVkYzM3YWQ5YzdjYzliYWJmY2MxOTM3MDMwMzYuLjBmYWI4
YjFkZTQwYjYzM2NiYjc2MDFmZGY2ODc0Njk4MjY0M2U4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0KQEAgLTg2Nyw3ICs4NjcsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkKIHsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZVZlY3RvciBjdXJyZW50VHJhY2tzID0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygp
OwogCi0gICAgYXV0byBzZXRBdWRpb1RyYWNrU3RhdGUgPSBbdGhpc10oQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbSYgdHJhY2ssIGludCBpbmRleCwgVHJhY2tTdGF0ZSBzdGF0ZSkKKyAgICBh
dXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOwor
ICAgIGF1dG8gc2V0QXVkaW9UcmFja1N0YXRlID0gW3RoaXMsICZkZXZpY2VJZF0oQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbSYgdHJhY2ssIGludCBpbmRleCwgVHJhY2tTdGF0ZSBzdGF0ZSkK
ICAgICB7CiAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICAgICAgY2FzZSBUcmFja1N0YXRl
OjpSZW1vdmU6CkBAIC04ODQsNiArODg1LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcygpCiAgICAgICAgICAgICB0cmFjay5zZXRWb2x1
bWUobV92b2x1bWUpOwogICAgICAgICAgICAgdHJhY2suc2V0TXV0ZWQobV9tdXRlZCk7CiAgICAg
ICAgICAgICB0cmFjay5zZXRFbmFibGVkKHRyYWNrLnN0cmVhbVRyYWNrKCkuZW5hYmxlZCgpICYm
ICF0cmFjay5zdHJlYW1UcmFjaygpLm11dGVkKCkpOworICAgICAgICAgICAgaWYgKCFkZXZpY2VJ
ZC5pc051bGwoKSkKKyAgICAgICAgICAgICAgICB0cmFjay5zZXRBdWRpb091dHB1dERldmljZUlk
KGRldmljZUlkKTsKKwogICAgICAgICAgICAgaWYgKHBsYXlpbmcoKSkKICAgICAgICAgICAgICAg
ICB0cmFjay5wbGF5KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwMTcsNiArMTAyMSwxNSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0QnVmZmVyaW5n
UG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZQogICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci0+Zmx1c2hBbmRSZW1vdmVJbWFnZSgpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBp
ZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxh
eWVyLT5hdWRpb091dHB1dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrIDog
bV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQorICAgICAgICBhdWRpb1RyYWNrLT5zZXRBdWRpb091
dHB1dERldmljZUlkKGRldmljZUlkKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYg
ZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlci5oCmluZGV4IDY0ODlmOWRhN2M1NjI2YzIwMjk3ODUzZjFhMDFlOWVhZmJl
NTYwMGIuLjQ4ZTVmMzI3MWFiNDhjN2EyNzk2MDVhMzUxNGFiNjlkMmE4ZGE1Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgZmxvYXQgdm9sdW1lKCkg
Y29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBT
dHJpbmcmKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHZvaWQgc2V0TG9nZ2Vy
KGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKICNlbmRpZgpAQCAtMTA5LDYgKzExMSwxMCBA
QCBpbmxpbmUgY29uc3QgY2hhciogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmxvZ0Ns
YXNzTmFtZSgpIGNvbnN0CiB9CiAjZW5kaWYKIAoraW5saW5lIHZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJikKK3sK
K30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKaW5kZXggYTE4NWNkNDcwMzYzZTYwNWY5MGQ0OTlkZTAz
ODA5Nzk2YWM5YzVhYy4uNmJlMGExOGYzMDU4NjNjYWVmYmU4OWViMTZlNjhiOGRlNzI0NzRmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKQEAgLTk3LDYgKzk3LDEx
IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW06OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
ZCkKK3sKKyAgICBtX3JlbmRlcmVyLT5zZXRBdWRpb091dHB1dERldmljZUlkKGRldmljZUlkKTsK
K30KKwogZmxvYXQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dm9sdW1lKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9yZW5kZXJlci0+dm9sdW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtLmgKaW5kZXggYTQ4NWMxOGNhODdhMWM2ZjMyYTYxOWVlOGNkYzVhM2M4ZWFk
NzRlMy4uOTNhNDA2NTNjMTdkYzU3ZjhkOGNkMjgwMjk3Njk5OWU5NDhjYjJiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAg
ICAgfkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKTsKIAogICAgIHZvaWQgc2V0VHJhY2tJ
bmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CisgICAgdm9pZCBzZXRBdWRpb091
dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYpOwogCiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAKaW5k
ZXggNzYyMzJiNzlkOWQwN2ViMWI4OWM0MmViNTM0NGRkYzMwNTQyYWUwOC4uM2QzOTQwMTZmMWIw
MjU3OWJiNGQyY2VkNDdiYjUyMTE0NDY2ODBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcApAQCAtNjcsMTEgKzY3LDE4IEBAIHZv
aWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICAgICAgbV9kYXRhU291cmNlLT5zZXRWb2x1bWUodm9sdW1lKTsKIH0KIAordm9p
ZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRBdWRpb091dHB1dERldmlj
ZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQpCit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBj
cmVhdGUgYSB1bml0IGZvciBvdXJzZWx2ZXMgaGVyZSBvciB1c2UgdGhlIGRlZmF1bHQgdW5pdCBp
ZiBkZXZpY2VJZCBpcyBtYXRjaGluZy4KKyAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNpbmdsZXRvbigpLnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworICAg
IG1fc2hvdWxkUmVzZXQgPSB0cnVlOworfQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgc2FtcGxlVGltZSwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlv
bigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7
Ci0gICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlv
bigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNjcmlwdGlvbikg
eworICAgIGlmICghbV9kYXRhU291cmNlIHx8IG1fc2hvdWxkUmVzZXQgfHwgIW1fZGF0YVNvdXJj
ZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24o
KSAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBs
ZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyLCAqdGhpcyk7
CiAKICAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KHRvQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkpIHsKQEAgLTk1LDYgKzEwMiw3IEBAIHZvaWQgQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFU
aW1lJiBzYW1wbGVUaW1lCiAgICAgICAgICAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNpbmdsZXRvbigpLmFkZFNvdXJjZShXVEZNb3ZlKG5ld1NvdXJjZSkpOwogICAgICAg
ICB9KTsKICAgICAgICAgbV9kYXRhU291cmNlID0gV1RGTW92ZShkYXRhU291cmNlKTsKKyAgICAg
ICAgbV9zaG91bGRSZXNldCA9IGZhbHNlOwogICAgIH0KIAogICAgIG1fZGF0YVNvdXJjZS0+cHVz
aFNhbXBsZXMoc2FtcGxlVGltZSwgYXVkaW9EYXRhLCBzYW1wbGVDb3VudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAppbmRleCA1MWFjNDMz
N2M0ZTAzNThmZGRjYjRlYTg1NDdmMmFiYjBiYzBmYTg3Li41MDI1NTYxNjc0ZDA1ZWEwZThkZTBk
ZTg1ZTQyYjVlYzQ0NTYxNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckNvY29hLmgKQEAgLTUzLDkgKzUzLDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzdG9wKCkgZmluYWw7CiAgICAgdm9pZCBjbGVhcigpIGZpbmFsOwogICAgIHZvaWQgc2V0Vm9s
dW1lKGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3Qg
U3RyaW5nJikgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uPiBtX291dHB1dERlc2NyaXB0aW9uOwogICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFT
b3VyY2U+IG1fZGF0YVNvdXJjZTsKKyAgICBib29sIG1fc2hvdWxkUmVzZXQgeyBmYWxzZSB9Owog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0LmNwcAppbmRleCBkYWM3NGExMjU1YzVlNTRhNTIzNDM2ZmU2OWE4ZTQ0NGMyZTcwYjE1Li4x
MTRhMzQwYmZiZTQ3N2QzNzM2ODM4NGIxM2JjMmU4NWQ2MDkxZGQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMzYsNiArMzYs
MTEgQEAKICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0F1ZGlvVG9vbGJveFNQSS5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlLmgiCisjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXIuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDYgKzU2LDI2IEBAIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdDo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdCgpCiAg
ICAgc3RvcCgpOwogfQogCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6
c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlEKQoreworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKKyAgICBp
ZiAoIWRldmljZSB8fCBtX2RldmljZUlEID09IGRldmljZS0+ZGV2aWNlSUQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYm9vbCBzaG91bGRSZXN0YXJ0ID0gbV9pc1N0YXJ0ZWQ7CisgICAgaWYg
KG1faXNTdGFydGVkKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2RldmljZUlEID0gZGV2aWNl
LT5kZXZpY2VJRCgpOworCisgICAgaWYgKHNob3VsZFJlc3RhcnQpCisgICAgICAgIHN0YXJ0KCk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZXZpY2VJRCk7CisjZW5kaWYKK30KKwogdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZShSZWY8QXVkaW9TYW1w
bGVEYXRhU291cmNlPiYmIHNvdXJjZSkKIHsKICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZSIpOwpAQCAtMTYxLDYgKzE4
NiwxNiBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVk
aW9Vbml0SWZOZWVkZWQoKQogICAgIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IGlmIChtX2RldmljZUlEKSB7CisgICAgICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHko
cmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1
ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2RldmljZUlEKSk7
CisgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXQg
dW5hYmxlIHRvIHNldCB1bml0IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludClt
X2RldmljZUlELCAoaW50KWVycm9yLCAoY2hhciopJmVycm9yKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVj
dCBjYWxsYmFjayA9IHsgaW5wdXRQcm9jLCBudWxscHRyIH07CiAgICAgZXJyb3IgPSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJD
YWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2Fs
bGJhY2spKTsKICAgICBpZiAoZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuaAppbmRleCA0NDA3NmE1NmVjOTc0ZjliYjg3MzQyYmZjNzQ4
MzBjODU5Yzc3MmY2Li40NTMxZWYzZDMzOWRjOGE1MzM4OTEyNGI3ZWNkZGUyMDZmNTI3YzA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCkBA
IC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgdm9pZCBzdG9w
KCk7CiAKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJik7CisK
ICAgICB2b2lkIGFkZFNvdXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmKTsKICAgICB2
b2lkIHJlbW92ZVNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKIApAQCAtNjgsNiArNzAs
OSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRVcGRhdGVSZW5kZXJTb3VyY2VzIHsgZmFs
c2UgfTsKICAgICBMb2NrIG1fc291cmNlc0xvY2s7CiAgICAgYm9vbCBtX2lzU3RhcnRlZCB7IGZh
bHNlIH07CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHVpbnQzMl90IG1fZGV2aWNlSUQgeyAwIH07
CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1
OTEwNjEyMWE2NjVlMThlZDQ5NjY4MWU3ZmRkMzVkYzcyYTBiMGU3Li5mNDM0Nzc4NjhlYTk5ZWQ3
Y2FkNWQ2ZmFmMjBhODc1MWE5ZDcwMGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC01NjcsNiArNTY3LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50
U3RhdGUoUGFnZSYgcGFnZSkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQodHJ1ZSk7CiAgICAgcGFnZS5zZXR0aW5n
cygpLnNldFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkKHRydWUpOwogI2VuZGlmCisgICAgcGFnZS5z
ZXR0aW5ncygpLnNldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKGZhbHNlKTsK
IAogICAgIHBhZ2Uuc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oMF9zKTsKICAgICBwYWdl
LnNldEZ1bGxzY3JlZW5JbnNldHMoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGVkZjU4YmVkYTJlOWQwNGY1
ODIyMWRhYWRlY2JlMjVmZTAxNjBiMDAuLjIxZDBkMzcxNmYzYWU3N2ZiYWJiMDQ5OWIxODA4ODFm
ZjM0ZGJjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM4LDYgKzEzOCwxNCBAQCBFeHBvc2VTcGVha2Vyc0Vu
YWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHNwZWFrZXIgZGV2aWNl
IHNlbGVjdGlvbiIKICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX1JUQykKIAorUGVyRWxlbWVudFNw
ZWFrZXJTZWxlY3Rpb25FbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFs
c2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBbGxvdyBwZXIgbWVkaWEgZWxlbWVudCBzcGVha2Vy
IGRldmljZSBzZWxlY3Rpb24iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHBl
ciBtZWRpYSBlbGVtZW50IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgY2F0ZWdvcnk6IGV4
cGVyaW1lbnRhbAorICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQorCiBWUDlEZWNvZGVyRW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWUDlEZWNvZGVyRW5h
YmxlZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNGI4ODUwMGM5Y2FkMThhOTBjYWM4MDAyNDFhYWEyMTk2MjQ4NDlhNi4u
MWFmMDg2ZWVhMTg2OWNhZGRkOWZjZDgzZTBlNTFlZDAzNGI3YmU2YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIwLTA5LTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvYXVk
aW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbDogQWRkZWQuCisKIDIw
MjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhh
c2ggZGV2aWNlSWRzIGluIFdlYlByb2Nlc3MgaW5zdGVhZCBvZiBVSVByb2Nlc3MgdG8gYWxsb3cg
YXVkaW8gb3V0cHV0IGRldmljZSBJRHMgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggZjc4OTVlZTM0ZDk4MTVhZWJmYWNkMzFlNWYwOTMzZmI2YjkwNDM4Ny4u
M2JmMDViZWI2NjJmZDU0YTk1M2JhMTBmNzc1ZTkxNDVkZmFlZjQyZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDktMTggIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVk
aWFFbGVtZW50LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53
aW5kb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5k
b3cuanM6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQv
c2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC93M2MtaW1wb3J0LmxvZzogQWRk
ZWQuCisKIDIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEhhc2ggZGV2aWNlSWRzIGluIFdlYlByb2Nlc3MgaW5zdGVhZCBvZiBVSVByb2Nlc3Mg
dG8gYWxsb3cgYXVkaW8gb3V0cHV0IGRldmljZSBJRHMgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25z
Lmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3Rh
dGlvbnMuanNvbgppbmRleCA4NWNlYjM1ZTE3OTI4ZDdhMTY5MDYwZmY0NGViMGI0NGRmZTQ3MDUy
Li5hYzYxZTY4ZDVjZjdmZjhlMTgwOGI1YTMzY2JmNGE5MTEzN2UzN2I3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNv
bgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3Rh
dGlvbnMuanNvbgpAQCAtNDksNyArNDksNyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXBu
ZyI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hcHAtdXJpIjogInNraXAiLCAK
ICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Fzc3VtcHRpb25zIjogInNraXAiLCAKLSAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dCI6ICJza2lwIiwgCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9hdWRpby1vdXRwdXQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9hdXhjbGljayI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5k
LWZldGNoIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYmF0dGVyeS1zdGF0
dXMiOiAic2tpcCIsIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409146</attachid>
            <date>2020-09-18 10:57:25 -0700</date>
            <delta_ts>2020-09-20 09:29:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216696-20200918195723.patch</filename>
            <type>text/plain</type>
            <size>45731</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTMyMjEwMTVmNWZkY2Ix
OTExMjZkMWIwYzVhNmVjZjczZTY1M2YyYy4uNzMxYmUwMmQyNWYzMWRmOTdjOGU0NDliZWYyODI3
ODk4NmM5MzFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIwLTA5LTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
SFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBzZXRTaW5rSWQgYW5kIHNpbmtJZCBhcyBwZXIg
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1vdXRwdXQvI2h0bWxtZWRpYWVsZW1l
bnQtZXh0ZW5zaW9ucy4KKyAgICAgICAgSW50cm9kdWNlIGEgc2V0dGluZyB0byBleHBvc2UgdGhl
c2UgbWV0aG9kcyBhbmQgdG8gZW5hYmxlL2Rpc2FibGUgdXNlciBnZXN0dXJlIHJlcXVpcmVtZW50
LgorICAgICAgICBBZGQgaW50ZXJmYWNlcyB0byBjaGFuZ2UgZGV2aWNlIG91dHB1dCBmb3Igc3Bl
Y2lmaWMgbWVkaWEgcGxheWVycy4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhMUywgTVNFIGFu
ZCBNZWRpYVN0cmVhbVRyYWNrIHJlbmRlcmVycyBvbiBNYWNPUy4KKworICAgICAgICBUZXN0czog
aHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbAorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRBdWRpb091dHB1
dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1
dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvT3V0cHV0SGFzaGVkRGV2aWNl
SWQgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGw6CisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERl
dmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJ
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRw
dXREZXZpY2VJZE92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
QVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNl
Q2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRBdWRpb091dHB1dERldmljZUlkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Lmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lz
dGVudFN0YXRlKToKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2VzcyBpbnN0ZWFkIG9mIFVJ
UHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBpbiBXZWJQcm9jZXNzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDgyMGVkNDNmNWQ2MzEyZmE2OTZkN2I4NWJhOGVlMDQ0OTBiZDFiZDMuLjY1YjI3
ZjFiODE0ZGVhMmJjODNlMzRmNDcwZjZkNmQyMTE4ZWIxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50LnNldFNpbmtJZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2Njk2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2Vz
cyBpbnN0ZWFkIG9mIFVJUHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBp
biBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHAKaW5kZXggYmU3MGFhYWJkOGU4MGQyZjdiNWNmNTJlNzMyNzE1ZjYx
ODM5OGYwZS4uODUxOTNhYzg1ZTE0YTBmNDRkNDFjZWU0Nzk5YjM3OWRkYWQyYjBiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNw
cApAQCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKGNv
bnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICBib29sIGNh
bkFjY2Vzc01pY3JvcGhvbmUgPSBjaGVja01pY3JvcGhvbmVBY2Nlc3MoZG9jdW1lbnQpOwogICAg
IGJvb2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2Vzcyhkb2N1bWVudCk7CiAK
KyAgICBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5jbGVhcigpOworCiAgICAg
VmVjdG9yPFJlZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VzOwogICAgIGZvciAoYXV0byYgbmV3
RGV2aWNlIDogbmV3RGV2aWNlcykgewogICAgICAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUg
JiYgbmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bo
b25lKQpAQCAtMjE0LDYgKzIxNiw5IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2Vz
KGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICAgICAg
YXV0byBkZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZUlESGFzaFNh
bHQpOwogICAgICAgICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9ncm91
cElkSGFzaFNhbHQpOwogCisgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIpCisgICAgICAgICAgICBtX2F1ZGlvT3V0cHV0RGV2
aWNlSWRUb1BlcnNpc3RlbnRJZC5hZGQoZGV2aWNlSWQsIG5ld0RldmljZS5wZXJzaXN0ZW50SWQo
KSk7CisKICAgICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3
RGV2aWNlLmxhYmVsKCksIFdURk1vdmUoZGV2aWNlSWQpLCBXVEZNb3ZlKGdyb3VwSWQpLCB0b01l
ZGlhRGV2aWNlSW5mb0tpbmQobmV3RGV2aWNlLnR5cGUoKSkpKTsKICAgICB9CiAgICAgcHJvbWlz
ZS5yZXNvbHZlKGRldmljZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggNTgyODY3MjUzY2FkMTY5OGQ4MDE1ZjY2ZWE1ZjUz
NGY5MmY1MzlkMS4uNmY5MDYyOGFiMGNjOGYwYTM0MTExMzRmODc5N2U2NGJmYzgxNmYzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5o
CkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51
bWVyYXRlRGV2aWNlc1Byb21pc2UmJik7CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFp
bnRzIGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7CiAKKyAgICBTdHJpbmcgZGV2aWNlSWRUb1Bl
cnNpc3RlbnRJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKSBjb25zdCB7IHJldHVybiBtX2F1ZGlv
T3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5nZXQoZGV2aWNlSWQpOyB9CisKICAgICB1c2lu
ZyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlcz46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPE1l
ZGlhRGV2aWNlcz46OmRlcmVmOwogCkBAIC0xMzAsNiArMTMyLDkgQEAgcHJpdmF0ZToKIAogICAg
IE9wdGlvblNldDxHZXN0dXJlQWxsb3dlZFJlcXVlc3Q+IG1fcmVxdWVzdFR5cGVzRm9yQ3VycmVu
dEdlc3R1cmU7CiAgICAgV2Vha1B0cjxVc2VyR2VzdHVyZVRva2VuPiBtX2N1cnJlbnRHZXN0dXJl
VG9rZW47CisKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2F1ZGlvT3V0cHV0RGV2aWNl
SWRUb1BlcnNpc3RlbnRJZDsKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0MjNjNmZiMGE2ZmEwODY5NmIyMS4u
ZTg5NTQ4YmEwZWYzYTU4YjhjNDUzZWNlNmE5Yzk2OTE0YjA3NGRjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgiCiAjaW5j
bHVkZSAiTWVkaWFEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1lZGlhRXJyb3IuaCIKICNpbmNsdWRl
ICJNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgiCkBAIC03OCw2ICs3OSw3IEBACiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVk
ZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRvck1lZGlhRGV2aWNl
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUE9ESW50ZXJ2
YWxUcmVlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjg0Myw2ICsyODQ1LDU5IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6ZmFzdFNlZWsoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogICAgIHNl
ZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWU6Onplcm9U
aW1lKCksIHRydWUpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1N0cmluZyBIVE1M
TWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
YXVkaW9PdXRwdXRQZXJzaXN0ZW50RGV2aWNlSWQ7Cit9CisKK3ZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2V0QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQoKS5k
b21XaW5kb3coKTsKKyAgICBhdXRvKiBtZWRpYURldmljZXMgPSB3aW5kb3cgPyBOYXZpZ2F0b3JN
ZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyh3aW5kb3ctPm5hdmlnYXRvcigpKSA6IG51bGxwdHI7
CisgICAgaWYgKCFtZWRpYURldmljZXMpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFkb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgJiYgZG9jdW1l
bnQoKS50b3BEb2N1bWVudCgpLnNldHRpbmdzKCkuc3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNl
ckdlc3R1cmUoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxv
d2VkRXJyb3IsICJBIHVzZXIgZ2VzdHVyZSBpcyByZXF1aXJlZCJfcyB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmIChkZXZpY2VJZC5pc0VtcHR5KCkpCisgICAgICAgIGRldmlj
ZUlkID0geyB9OworCisgICAgaWYgKGRldmljZUlkID09IG1fYXVkaW9PdXRwdXRIYXNoZWREZXZp
Y2VJZCkgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFN0cmluZyBwZXJzaXN0ZW50SWQ7CisgICAgaWYgKCFkZXZpY2VJZC5pc051bGwo
KSkgeworICAgICAgICBwZXJzaXN0ZW50SWQgPSBtZWRpYURldmljZXMtPmRldmljZUlkVG9QZXJz
aXN0ZW50SWQoZGV2aWNlSWQpOworICAgICAgICBpZiAocGVyc2lzdGVudElkLmlzTnVsbCgpKSB7
CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yIH0p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9hdWRpb091
dHB1dFBlcnNpc3RlbnREZXZpY2VJZCA9IFdURk1vdmUocGVyc2lzdGVudElkKTsKKyAgICBpZiAo
bV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsK
KworICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRh
c2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgZGV2aWNlSWQgPSBXVEZNb3ZlKGRldmljZUlkKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKCkgbXV0YWJsZSB7CisgICAgICAgIG1fYXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJZCA9
IFdURk1vdmUoZGV2aWNlSWQpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsK
K30KKyNlbmRpZgorCitTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2VJ
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXVkaW9PdXRwdXRQZXJzaXN0ZW50RGV2aWNlSWQ7
Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vlayhjb25zdCBNZWRpYVRpbWUmIHRpbWUp
CiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0aW1lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYWIyYjAwMTFiNTk0MzllYTUxZThhYTNlMjA4ZmUw
MTJjNjNkMTJlZC4uZDBkZWZiMTc1NGZhOTBiODNhN2NjNDI5NTg3OWI1MTRmMjM0ZWRhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTI2OCw2ICsyNjgsMTEgQEAg
cHVibGljOgogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdDsKICAgICBkb3Vi
bGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZSgpIGNvbnN0OworICAgIHZvaWQgc2V0QXVk
aW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKKyNlbmRpZgorCiAgICAgdXNpbmcgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpCdWZmZXJp
bmdQb2xpY3k7CiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koQnVmZmVyaW5nUG9saWN5KTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBCdWZmZXJpbmdQb2xpY3kgYnVmZmVyaW5nUG9saWN5KCkgY29u
c3Q7CkBAIC01ODAsNiArNTg1LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0T3ZlcnJpZGVQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpOwog
ICAgIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlKTsK
IAorICAgIFN0cmluZyBhdWRpb091dHB1dEhhc2hlZERldmljZUlkKCkgY29uc3QgeyByZXR1cm4g
bV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkOyB9CisKIHByb3RlY3RlZDoKICAgICBIVE1MTWVk
aWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoSW5pdGlhbGl6YXRpb24oKTsKQEAgLTYw
NCw2ICs2MTEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKIAogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1bWVudFNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBj
b25zdCBmaW5hbDsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZpY2VJZDsgfQogCiAg
ICAgYm9vbCBtZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQg
c2V0TWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKGJvb2wpOwpAQCAtMTE5Nyw2
ICsxMjA2LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQbGF5aW5nVG9XaXJlbGVzc1Rhcmdl
dCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BsYXlpbmdPblNlY29uZFNjcmVlbiB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhhdmlvclJlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2Vz
dHVyZSB7IGZhbHNlIH07CisKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZp
Y2VJZDsKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkOwogfTsKIAogU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6OkF1dG9wbGF5
RXZlbnRQbGF5YmFja1N0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aWRsCmluZGV4IGI0MmQwZWEzNzEwNmI0NzJiYmM5Y2VkZjYwNzgzZmUwYTM5ZWZmYzkuLmFlMGE0
MmJlNDc4ZTdjYTM1ZDBlY2VlNTZmZWQ3NDBkYTZlODMyY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmlkbApAQCAtODYsNiArODYsMTEgQEAgdHlwZWRlZiAoCiAgICAg
dW5kZWZpbmVkIHBhdXNlKCk7CiAgICAgdW5kZWZpbmVkIGZhc3RTZWVrKHVucmVzdHJpY3RlZCBk
b3VibGUgdGltZSk7CiAKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlT
ZXR0aW5nPUV4cG9zZVNwZWFrZXJzJlBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uXSByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlOworICAgIFtDb25kaXRpb25h
bD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVu
dFNwZWFrZXJTZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJ
ZF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzaW5rSWQ7CisgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NUUkVBTSwgRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50
U3BlYWtlclNlbGVjdGlvbl0gUHJvbWlzZTx1bmRlZmluZWQ+IHNldEF1ZGlvT3V0cHV0RGV2aWNl
KERPTVN0cmluZyBkZXZpY2VJZCk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgRW5h
YmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbiwg
SW1wbGVtZW50ZWRBcz1zZXRBdWRpb091dHB1dERldmljZV0gUHJvbWlzZTx1bmRlZmluZWQ+IHNl
dFNpbmtJZChET01TdHJpbmcgZGV2aWNlSWQpOworCiAgICAgLy8gY29udHJvbHMKICAgICBbQ0VS
ZWFjdGlvbnM9Tm90TmVlZGVkXSBhdHRyaWJ1dGUgYm9vbGVhbiBjb250cm9sczsKICAgICBhdHRy
aWJ1dGUgZG91YmxlIHZvbHVtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAxNzg5
N2VlMzA0YWViMjJiNTgyZmJkOTNiNGI5MjYxNDIwMjczYjZmLi40YmM2ODE2OTk4MGExMzMxNGU3
YmZlNGNlNjQ1MDNiOTUyZGZkOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04
MjYsNiArODI2LDEyIEBAIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk6CiBleHBvc2VTcGVha2Vy
c0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKK3BlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9u
RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKworc3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNl
ckdlc3R1cmU6CisgIGluaXRpYWw6IHRydWUKKwogbWVkaWFEZXZpY2VJZGVudGlmaWVyU3RvcmFn
ZURpcmVjdG9yeToKICAgdHlwZTogU3RyaW5nCiAgIGNvbmRpdGlvbmFsOiBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCmluZGV4IDYzY2YzY2NlZTgxMTJlMTU1ZTE5MzgwNWE2NDQ4Y2U4ZGJhMWUzYTIuLjkw
MmY1ODk5N2Y3MjZjZmIxN2E2MjZiZDllOTQ2NWU1OWRkZWNiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTE2MDQsNiArMTYw
NCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5
bmFtaWNSYW5nZU1vZGUgbW9kZSkKICAgICBtX3ByaXZhdGUtPnNldFByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUobW9kZSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNl
Q2hhbmdlZCgpCit7CisgICAgbV9wcml2YXRlLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsK
K30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogY29uc3QgTG9nZ2VyJiBNZWRpYVBsYXll
cjo6bWVkaWFQbGF5ZXJMb2dnZXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggZWEyNTdmMTJhY2YwOWUwYmJkZmIzMjliMTE1M2Nj
ZTUxYWNhZjRmMy4uZDQ2NzMxYTJiYWRmODg1NzAxODAxOTg4MTU2MjMyYzM0YjFmZGZlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0y
NzMsNiArMjczLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTZWN1cml0eU9yaWdpbkRhdGEg
ZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogCisgICAgdmly
dHVhbCBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQor
ICAgIHZpcnR1YWwgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IHsg
cmV0dXJuIHsgfTsgfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdmlydHVhbCBj
b25zdCB2b2lkKiBtZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgPSAwOwpAQCAt
NjMxLDYgKzYzNCwxMCBAQCBwdWJsaWM6CiAgICAgRHluYW1pY1JhbmdlTW9kZSBwcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VN
b2RlOyB9CiAgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5n
ZU1vZGUpOwogCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdDsKKyAgICBT
dHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3Q7CisgICAgdm9pZCBhdWRp
b091dHB1dERldmljZUNoYW5nZWQoKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRp
YVBsYXllckNsaWVudCYpOwogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50JiwgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyKTsKQEAgLTcwNSw2ICs3MTIsMTYg
QEAgcHVibGljOgogfTsKIAogCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxheWVyOjphdWRpb091dHB1
dERldmljZUlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YXVk
aW9PdXRwdXREZXZpY2VJZCgpIDogU3RyaW5nIHsgfTsKK30KKworaW5saW5lIFN0cmluZyBNZWRp
YVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgOiBT
dHJpbmcgeyB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDY3MGMwYTQ5NGMxMWEyNzM3NjA0Mjg0MTgzYzAwNzg4
ZDk3NTk3OGQuLjgxMjUzMzAyNzZkZDU0NGUxZmNhYmRhMTdkNjM2Y2JjZjg3YmFkNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCkBAIC0yODksNiArMjg5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIHsgfQor
CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIHsgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGFkZTA2MzJjOWY2Y2RjMGMxNGQ1ZGE4ODVjYTdi
NzQyNzhiYmQzZTMuLjg1Y2U4MWQxMDNiODVkMWQ0MjZiN2EzNDhkOGYwM2EwYmUzNjY0NTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTMxOCw2ICszMTgsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2V0U2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3RhdHVzKGJvb2wpOwogCiAgICAgdm9pZCBz
ZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIGZpbmFsOworICAg
IHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICBSZXRhaW5QdHI8
QVZVUkxBc3NldD4gbV9hdkFzc2V0OwogICAgIFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBsYXll
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGFjMGY4ZmZhMDI4ODNlNGFhZmZmMzJiZjM4
MGY4ODIzMDAyYjU2MTUuLjhmNGU0MDNjZmIxMWVkZGE5NjAxNjViYWY5YmU2NTVmZjg4ZTk2M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtOTUzLDYgKzk1MywxMiBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKICAgICBpZiAo
bV9hdlBsYXllckl0ZW0pCiAgICAgICAgIHNldEFWUGxheWVySXRlbShtX2F2UGxheWVySXRlbS5n
ZXQoKSk7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgYXV0byBhdWRpb091dHB1dERldmljZUlk
ID0gcGxheWVyKCktPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGlmICghYXVk
aW9PdXRwdXREZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAgbV9hdlBsYXllci5nZXQoKS5hdWRp
b091dHB1dERldmljZVVuaXF1ZUlEID0gYXVkaW9PdXRwdXREZXZpY2VJZDsKKyNlbmRpZgorCiAg
ICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogfQogCkBAIC0zMjkzLDYgKzMyOTksMTUgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRQcmVmZXJyZWREeW5h
bWljUmFuZ2VNb2RlKER5bmFtaWNSYW4KICNlbmRpZgogfQogCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGlmICghbV9hdlBsYXllciB8fCAhcGxheWVyKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQg
PSBwbGF5ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZCgpOworI2VuZGlmCit9CisKIE5TQXJyYXkq
IGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBb
W05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgK
aW5kZXggMDliZjU1NzQ4NDMzMWQ1ODIyMGQyMGY1ZjIwMzMyOTZlNjljZWM0Mi4uOGNlM2I3YjQw
NWRmZGY5NzAyZjJmOTUxOGFkNjlkZDg1YmRmNzc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTI1NCw2ICsyNTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIHBlcmZv
cm1UYXNrQXRNZWRpYVRpbWUoRnVuY3Rpb248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKSBm
aW5hbDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAg
dm9pZCBlbnN1cmVMYXllcigpOwogICAgIHZvaWQgZGVzdHJveUxheWVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KaW5kZXggOGI5NDE1MDdjMDM4ODFjMDIxNmI0ZTc5MmUzOWRiMjZlMzU3
ZmRiOS4uN2IxMGRiNGM5ZjdiMzNiY2E1MjQ5MWI5NjQ5ZTZmMmRlMGRhZjJlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTE2Niw2ICsxMTY2LDEyIEBAIEFMTE9XX05FV19BUElf
V0lUSE9VVF9HVUFSRFNfRU5ECiAgICAgW2F1ZGlvUmVuZGVyZXIgc2V0Vm9sdW1lOm1fcGxheWVy
LT52b2x1bWUoKV07CiAgICAgW2F1ZGlvUmVuZGVyZXIgc2V0QXVkaW9UaW1lUGl0Y2hBbGdvcml0
aG06KG1fcGxheWVyLT5wcmVzZXJ2ZXNQaXRjaCgpID8gQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRo
bVNwZWN0cmFsIDogQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRobVZhcmlzcGVlZCldOwogCisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXRE
ZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFkZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAg
YXVkaW9SZW5kZXJlci5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gZGV2aWNlSWQ7CisjZW5k
aWYKKwogICAgIEB0cnkgewogICAgICAgICBbbV9zeW5jaHJvbml6ZXIgYWRkUmVuZGVyZXI6YXVk
aW9SZW5kZXJlcl07CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewpAQCAt
MTI3Niw2ICsxMjgyLDE3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphdWRp
b091dHB1dERldmljZUNoYW5nZWQoKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAoIW1f
cGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5h
dWRpb091dHB1dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBrZXkgOiBtX3NhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXJNYXAua2V5cygpKQorICAgICAgICAoKF9fYnJpZGdlIEFWU2FtcGxlQnVm
ZmVyQXVkaW9SZW5kZXJlciAqKWtleS5nZXQoKSkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9
IGRldmljZUlkOworI2VuZGlmCit9CisKIFdURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExv
Z01lZGlhU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCA4ZGU4OTVkN2IyNDEx
OGZkYjI4ZmFjMzljYjFiZmJlOThiOGY3NjEzLi42MzFmMzAzMWVhNDM4MGVhMzhkMWQ0NWFmNmIz
NDI5MDAwMjUwZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMTU5LDYgKzE1OSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
ZW5kZWQ7IH0KIAogICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZm
ZXJpbmdQb2xpY3kpIG92ZXJyaWRlOworICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2Vk
KCkgZmluYWw7CiAKICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBjdXJyZW50UmVhZHlTdGF0
ZSgpOwogICAgIHZvaWQgdXBkYXRlUmVhZHlTdGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tCmluZGV4IDJkYjUwYmI4OTU3NGVkYzM3YWQ5YzdjYzliYWJmY2MxOTM3MDMwMzYuLjBmYWI4
YjFkZTQwYjYzM2NiYjc2MDFmZGY2ODc0Njk4MjY0M2U4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0KQEAgLTg2Nyw3ICs4NjcsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkKIHsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZVZlY3RvciBjdXJyZW50VHJhY2tzID0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygp
OwogCi0gICAgYXV0byBzZXRBdWRpb1RyYWNrU3RhdGUgPSBbdGhpc10oQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbSYgdHJhY2ssIGludCBpbmRleCwgVHJhY2tTdGF0ZSBzdGF0ZSkKKyAgICBh
dXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOwor
ICAgIGF1dG8gc2V0QXVkaW9UcmFja1N0YXRlID0gW3RoaXMsICZkZXZpY2VJZF0oQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbSYgdHJhY2ssIGludCBpbmRleCwgVHJhY2tTdGF0ZSBzdGF0ZSkK
ICAgICB7CiAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICAgICAgY2FzZSBUcmFja1N0YXRl
OjpSZW1vdmU6CkBAIC04ODQsNiArODg1LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcygpCiAgICAgICAgICAgICB0cmFjay5zZXRWb2x1
bWUobV92b2x1bWUpOwogICAgICAgICAgICAgdHJhY2suc2V0TXV0ZWQobV9tdXRlZCk7CiAgICAg
ICAgICAgICB0cmFjay5zZXRFbmFibGVkKHRyYWNrLnN0cmVhbVRyYWNrKCkuZW5hYmxlZCgpICYm
ICF0cmFjay5zdHJlYW1UcmFjaygpLm11dGVkKCkpOworICAgICAgICAgICAgaWYgKCFkZXZpY2VJ
ZC5pc051bGwoKSkKKyAgICAgICAgICAgICAgICB0cmFjay5zZXRBdWRpb091dHB1dERldmljZUlk
KGRldmljZUlkKTsKKwogICAgICAgICAgICAgaWYgKHBsYXlpbmcoKSkKICAgICAgICAgICAgICAg
ICB0cmFjay5wbGF5KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwMTcsNiArMTAyMSwxNSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0QnVmZmVyaW5n
UG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZQogICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci0+Zmx1c2hBbmRSZW1vdmVJbWFnZSgpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBp
ZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxh
eWVyLT5hdWRpb091dHB1dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrIDog
bV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQorICAgICAgICBhdWRpb1RyYWNrLT5zZXRBdWRpb091
dHB1dERldmljZUlkKGRldmljZUlkKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYg
ZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlci5oCmluZGV4IDY0ODlmOWRhN2M1NjI2YzIwMjk3ODUzZjFhMDFlOWVhZmJl
NTYwMGIuLjQ4ZTVmMzI3MWFiNDhjN2EyNzk2MDVhMzUxNGFiNjlkMmE4ZGE1Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgZmxvYXQgdm9sdW1lKCkg
Y29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBT
dHJpbmcmKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHZvaWQgc2V0TG9nZ2Vy
KGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKICNlbmRpZgpAQCAtMTA5LDYgKzExMSwxMCBA
QCBpbmxpbmUgY29uc3QgY2hhciogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmxvZ0Ns
YXNzTmFtZSgpIGNvbnN0CiB9CiAjZW5kaWYKIAoraW5saW5lIHZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJikKK3sK
K30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKaW5kZXggYTE4NWNkNDcwMzYzZTYwNWY5MGQ0OTlkZTAz
ODA5Nzk2YWM5YzVhYy4uNmJlMGExOGYzMDU4NjNjYWVmYmU4OWViMTZlNjhiOGRlNzI0NzRmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKQEAgLTk3LDYgKzk3LDEx
IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW06OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
ZCkKK3sKKyAgICBtX3JlbmRlcmVyLT5zZXRBdWRpb091dHB1dERldmljZUlkKGRldmljZUlkKTsK
K30KKwogZmxvYXQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dm9sdW1lKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9yZW5kZXJlci0+dm9sdW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtLmgKaW5kZXggYTQ4NWMxOGNhODdhMWM2ZjMyYTYxOWVlOGNkYzVhM2M4ZWFk
NzRlMy4uOTNhNDA2NTNjMTdkYzU3ZjhkOGNkMjgwMjk3Njk5OWU5NDhjYjJiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAg
ICAgfkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKTsKIAogICAgIHZvaWQgc2V0VHJhY2tJ
bmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CisgICAgdm9pZCBzZXRBdWRpb091
dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYpOwogCiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAKaW5k
ZXggNzYyMzJiNzlkOWQwN2ViMWI4OWM0MmViNTM0NGRkYzMwNTQyYWUwOC4uM2QzOTQwMTZmMWIw
MjU3OWJiNGQyY2VkNDdiYjUyMTE0NDY2ODBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcApAQCAtNjcsMTEgKzY3LDE4IEBAIHZv
aWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICAgICAgbV9kYXRhU291cmNlLT5zZXRWb2x1bWUodm9sdW1lKTsKIH0KIAordm9p
ZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRBdWRpb091dHB1dERldmlj
ZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQpCit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBj
cmVhdGUgYSB1bml0IGZvciBvdXJzZWx2ZXMgaGVyZSBvciB1c2UgdGhlIGRlZmF1bHQgdW5pdCBp
ZiBkZXZpY2VJZCBpcyBtYXRjaGluZy4KKyAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNpbmdsZXRvbigpLnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworICAg
IG1fc2hvdWxkUmVzZXQgPSB0cnVlOworfQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgc2FtcGxlVGltZSwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlv
bigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7
Ci0gICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlv
bigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNjcmlwdGlvbikg
eworICAgIGlmICghbV9kYXRhU291cmNlIHx8IG1fc2hvdWxkUmVzZXQgfHwgIW1fZGF0YVNvdXJj
ZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24o
KSAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBs
ZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyLCAqdGhpcyk7
CiAKICAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KHRvQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkpIHsKQEAgLTk1LDYgKzEwMiw3IEBAIHZvaWQgQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFU
aW1lJiBzYW1wbGVUaW1lCiAgICAgICAgICAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNpbmdsZXRvbigpLmFkZFNvdXJjZShXVEZNb3ZlKG5ld1NvdXJjZSkpOwogICAgICAg
ICB9KTsKICAgICAgICAgbV9kYXRhU291cmNlID0gV1RGTW92ZShkYXRhU291cmNlKTsKKyAgICAg
ICAgbV9zaG91bGRSZXNldCA9IGZhbHNlOwogICAgIH0KIAogICAgIG1fZGF0YVNvdXJjZS0+cHVz
aFNhbXBsZXMoc2FtcGxlVGltZSwgYXVkaW9EYXRhLCBzYW1wbGVDb3VudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAppbmRleCA1MWFjNDMz
N2M0ZTAzNThmZGRjYjRlYTg1NDdmMmFiYjBiYzBmYTg3Li41MDI1NTYxNjc0ZDA1ZWEwZThkZTBk
ZTg1ZTQyYjVlYzQ0NTYxNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckNvY29hLmgKQEAgLTUzLDkgKzUzLDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzdG9wKCkgZmluYWw7CiAgICAgdm9pZCBjbGVhcigpIGZpbmFsOwogICAgIHZvaWQgc2V0Vm9s
dW1lKGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3Qg
U3RyaW5nJikgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uPiBtX291dHB1dERlc2NyaXB0aW9uOwogICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFT
b3VyY2U+IG1fZGF0YVNvdXJjZTsKKyAgICBib29sIG1fc2hvdWxkUmVzZXQgeyBmYWxzZSB9Owog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0LmNwcAppbmRleCBkYWM3NGExMjU1YzVlNTRhNTIzNDM2ZmU2OWE4ZTQ0NGMyZTcwYjE1Li4x
MTRhMzQwYmZiZTQ3N2QzNzM2ODM4NGIxM2JjMmU4NWQ2MDkxZGQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMzYsNiArMzYs
MTEgQEAKICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0F1ZGlvVG9vbGJveFNQSS5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlLmgiCisjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXIuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDYgKzU2LDI2IEBAIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdDo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdCgpCiAg
ICAgc3RvcCgpOwogfQogCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6
c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlEKQoreworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKKyAgICBp
ZiAoIWRldmljZSB8fCBtX2RldmljZUlEID09IGRldmljZS0+ZGV2aWNlSUQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYm9vbCBzaG91bGRSZXN0YXJ0ID0gbV9pc1N0YXJ0ZWQ7CisgICAgaWYg
KG1faXNTdGFydGVkKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2RldmljZUlEID0gZGV2aWNl
LT5kZXZpY2VJRCgpOworCisgICAgaWYgKHNob3VsZFJlc3RhcnQpCisgICAgICAgIHN0YXJ0KCk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZXZpY2VJRCk7CisjZW5kaWYKK30KKwogdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZShSZWY8QXVkaW9TYW1w
bGVEYXRhU291cmNlPiYmIHNvdXJjZSkKIHsKICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZSIpOwpAQCAtMTYxLDYgKzE4
NiwxNiBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVk
aW9Vbml0SWZOZWVkZWQoKQogICAgIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IGlmIChtX2RldmljZUlEKSB7CisgICAgICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHko
cmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1
ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2RldmljZUlEKSk7
CisgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXQg
dW5hYmxlIHRvIHNldCB1bml0IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludClt
X2RldmljZUlELCAoaW50KWVycm9yLCAoY2hhciopJmVycm9yKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVj
dCBjYWxsYmFjayA9IHsgaW5wdXRQcm9jLCBudWxscHRyIH07CiAgICAgZXJyb3IgPSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJD
YWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2Fs
bGJhY2spKTsKICAgICBpZiAoZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuaAppbmRleCA0NDA3NmE1NmVjOTc0ZjliYjg3MzQyYmZjNzQ4
MzBjODU5Yzc3MmY2Li40NTMxZWYzZDMzOWRjOGE1MzM4OTEyNGI3ZWNkZGUyMDZmNTI3YzA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCkBA
IC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgdm9pZCBzdG9w
KCk7CiAKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJik7CisK
ICAgICB2b2lkIGFkZFNvdXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmKTsKICAgICB2
b2lkIHJlbW92ZVNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKIApAQCAtNjgsNiArNzAs
OSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRVcGRhdGVSZW5kZXJTb3VyY2VzIHsgZmFs
c2UgfTsKICAgICBMb2NrIG1fc291cmNlc0xvY2s7CiAgICAgYm9vbCBtX2lzU3RhcnRlZCB7IGZh
bHNlIH07CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHVpbnQzMl90IG1fZGV2aWNlSUQgeyAwIH07
CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1
OTEwNjEyMWE2NjVlMThlZDQ5NjY4MWU3ZmRkMzVkYzcyYTBiMGU3Li5mNDM0Nzc4NjhlYTk5ZWQ3
Y2FkNWQ2ZmFmMjBhODc1MWE5ZDcwMGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC01NjcsNiArNTY3LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50
U3RhdGUoUGFnZSYgcGFnZSkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQodHJ1ZSk7CiAgICAgcGFnZS5zZXR0aW5n
cygpLnNldFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkKHRydWUpOwogI2VuZGlmCisgICAgcGFnZS5z
ZXR0aW5ncygpLnNldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKGZhbHNlKTsK
IAogICAgIHBhZ2Uuc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oMF9zKTsKICAgICBwYWdl
LnNldEZ1bGxzY3JlZW5JbnNldHMoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGVkZjU4YmVkYTJlOWQwNGY1
ODIyMWRhYWRlY2JlMjVmZTAxNjBiMDAuLjIxZDBkMzcxNmYzYWU3N2ZiYWJiMDQ5OWIxODA4ODFm
ZjM0ZGJjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM4LDYgKzEzOCwxNCBAQCBFeHBvc2VTcGVha2Vyc0Vu
YWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHNwZWFrZXIgZGV2aWNl
IHNlbGVjdGlvbiIKICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX1JUQykKIAorUGVyRWxlbWVudFNw
ZWFrZXJTZWxlY3Rpb25FbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFs
c2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBbGxvdyBwZXIgbWVkaWEgZWxlbWVudCBzcGVha2Vy
IGRldmljZSBzZWxlY3Rpb24iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHBl
ciBtZWRpYSBlbGVtZW50IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgY2F0ZWdvcnk6IGV4
cGVyaW1lbnRhbAorICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQorCiBWUDlEZWNvZGVyRW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWUDlEZWNvZGVyRW5h
YmxlZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNGI4ODUwMGM5Y2FkMThhOTBjYWM4MDAyNDFhYWEyMTk2MjQ4NDlhNi4u
MWFmMDg2ZWVhMTg2OWNhZGRkOWZjZDgzZTBlNTFlZDAzNGI3YmU2YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIwLTA5LTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvYXVk
aW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbDogQWRkZWQuCisKIDIw
MjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhh
c2ggZGV2aWNlSWRzIGluIFdlYlByb2Nlc3MgaW5zdGVhZCBvZiBVSVByb2Nlc3MgdG8gYWxsb3cg
YXVkaW8gb3V0cHV0IGRldmljZSBJRHMgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggZjc4OTVlZTM0ZDk4MTVhZWJmYWNkMzFlNWYwOTMzZmI2YjkwNDM4Ny4u
M2JmMDViZWI2NjJmZDU0YTk1M2JhMTBmNzc1ZTkxNDVkZmFlZjQyZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDktMTggIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVk
aWFFbGVtZW50LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53
aW5kb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5k
b3cuanM6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQv
c2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC93M2MtaW1wb3J0LmxvZzogQWRk
ZWQuCisKIDIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEhhc2ggZGV2aWNlSWRzIGluIFdlYlByb2Nlc3MgaW5zdGVhZCBvZiBVSVByb2Nlc3Mg
dG8gYWxsb3cgYXVkaW8gb3V0cHV0IGRldmljZSBJRHMgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0
dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NGQ1MzcyMmU5YjE4MDFhM2UzOWVlOTljNWJh
NmY3YjIwZDgzMGQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVk
aW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisK
K1BBU1Mgc2V0U2lua0lkIHJlcXVpcmVzIHVzZXIgZ2VzdHVyZSAKK1BBU1Mgc2V0U2lua0lkIGFu
ZCBzaW5rSWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1
dC9zZXRTaW5rSWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1
dC9zZXRTaW5rSWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTIxYjU0MTdmNmQxZGY5OGM1ZDhi
YmRlOGY0YzkwYzBhODVmNGJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBzZXRTaW5rSWQgYmVoYXZpb3IgPC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRG9taW5pcXVlIEhhemFlbC1NYXNzaWV1
eCIgaHJlZj0ibWFpbHRvOmRvbUB3My5vcmciLz4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93d3cudzMub3JnL1RSL2F1ZGlvLW91dHB1dC8jZG9tLWh0bWxtZWRpYWVsZW1lbnQtc2V0
c2lua2lkIj4KKzwvaGVhZD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwv
c2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKKworY29uc3QgYXVkaW8gPSBuZXcgQXVk
aW8oKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGlmICghd2luZG93LmludGVybmFscykK
KyAgICAgICAgcmV0dXJuOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTcGVha2VyU2VsZWN0
aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSh0cnVlKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHsg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJl
KGZhbHNlKTsgfSk7CisKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90QWxs
b3dlZEVycm9yIiwgYXVkaW8uc2V0U2lua0lkKCIiKSk7Cit9LCAic2V0U2lua0lkIHJlcXVpcmVz
IHVzZXIgZ2VzdHVyZSIpOworCisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBhd2Fp
dCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvIDogdHJ1ZSB9KTsK
KyAgICBjb25zdCBsaXN0ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVE
ZXZpY2VzKCk7CisgICAgY29uc3Qgb3V0cHV0RGV2aWNlc0xpc3QgPSBsaXN0LmZpbHRlcigoe2tp
bmR9KSA9PiBraW5kID09ICJhdWRpb291dHB1dCIpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKG91
dHB1dERldmljZXNMaXN0Lmxlbmd0aCwgMCwgIm1lZGlhIGRldmljZSBsaXN0IGluY2x1ZGVzIGF0
IGxlYXN0IG9uZSBhdWRpbyBvdXRwdXQgZGV2aWNlIik7CisKKyAgICBsZXQgcHJvbWlzZSA9IGF1
ZGlvLnNldFNpbmtJZChvdXRwdXREZXZpY2VzTGlzdFswXS5kZXZpY2VJZCk7CisKKyAgICBhc3Nl
cnRfZXF1YWxzKGF1ZGlvLnNpbmtJZCwgIiIpOworICAgIGF3YWl0IHByb21pc2U7CisgICAgYXNz
ZXJ0X2VxdWFscyhhdWRpby5zaW5rSWQsIG91dHB1dERldmljZXNMaXN0WzBdLmRldmljZUlkKTsK
K30sICJzZXRTaW5rSWQgYW5kIHNpbmtJZCIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5q
c29uCmluZGV4IDg1Y2ViMzVlMTc5MjhkN2ExNjkwNjBmZjQ0ZWIwYjQ0ZGZlNDcwNTIuLmFjNjFl
NjhkNWNmN2ZmOGUxODA4YjVhMzNjYmY0YTkxMTM3ZTM3YjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5q
c29uCkBAIC00OSw3ICs0OSw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hcG5nIjogInNr
aXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2FwcC11cmkiOiAic2tpcCIsIAogICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvYXNzdW1wdGlvbnMiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvYXVkaW8tb3V0cHV0IjogInNraXAiLCAKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2F1eGNs
aWNrIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2gi
OiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9iYXR0ZXJ5LXN0YXR1cyI6ICJz
a2lwIiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2F1ZGlvLW91dHB1dC9NRVRBLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L01FVEEueW1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2YTdk
NGQwNjI1OTExN2FmOGZiODQzZjZhOGQyNTJiYWMwMWE4ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9N
RVRBLnltbApAQCAtMCwwICsxLDQgQEAKK3NwZWM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRp
YWNhcHR1cmUtb3V0cHV0Lworc3VnZ2VzdGVkX3Jldmlld2VyczoKKyAgLSBndWlkb3UKKyAgLSBq
YW4taXZhcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRw
dXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMzkw
NmUyZTE5MjFmODBmOWE2OGU5ZjNkYzllOTk2NWRhYmRmN2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9p
ZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorCitQ
QVNTIGlkbF90ZXN0IHNldHVwIAorUEFTUyBpZGxfdGVzdCB2YWxpZGF0aW9uIAorUEFTUyBQYXJ0
aWFsIGludGVyZmFjZSBIVE1MTWVkaWFFbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5l
ZCAKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTE1lZGlhRWxlbWVudDogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUgCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBE
b2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAK
K1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0Vs
ZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBh
cmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBFbGVtZW50IGluY2x1ZGVz
IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNT
IEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BB
U1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAor
UEFTUyBIVE1MTWVkaWFFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHNpbmtJZCAKK1BBU1Mg
SFRNTE1lZGlhRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRTaW5rSWQoRE9NU3RyaW5n
KSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5l
c3MuaHR0cHMud2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2
MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2lu
ZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53
aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1
ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2NkYmQw
NzY4MzM0ODFiNTNmMzViMjZkNWVlMDE2ZmQ3MGM0MTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRs
aGFybmVzcy5odHRwcy53aW5kb3cuanMKQEAgLTAsMCArMSwyMCBAQAorLy8gTUVUQTogc2NyaXB0
PS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzCisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9p
ZGxoYXJuZXNzLmpzCisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtb3V0
cHV0LworCisndXNlIHN0cmljdCc7CisKK2lkbF90ZXN0KAorICBbJ2F1ZGlvLW91dHB1dCddLAor
ICBbJ21lZGlhY2FwdHVyZS1zdHJlYW1zJywgJ2h0bWwnLCAnZG9tJ10sCisgIGlkbF9hcnJheSA9
PiB7CisgICAgc2VsZi5hdWRpbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJyk7Cisg
ICAgc2VsZi52aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgaWRs
X2FycmF5LmFkZF9vYmplY3RzKHsKKyAgICAgIEhUTUxBdWRpb0VsZW1lbnQ6IFsnYXVkaW8nXSwK
KyAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6IFsndmlkZW8nXSwKKyAgICAgIE1lZGlhRGV2aWNlczog
WyduYXZpZ2F0b3IubWVkaWFEZXZpY2VzJ10sCisgICAgfSk7CisgIH0KKyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1
dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NGUxNzMyMzI0MjEyMmFiOWMyNzNjMjI5NzhiMmI5YzgzZmU2NTE4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKKworUEFTUyBzZXRTaW5rSWQgb24gZGVmYXVsdCBhdWRpbyBvdXRwdXQgc2hvdWxk
IGFsd2F5cyB3b3JrIAorUEFTUyBzZXRTaW5rSWQgZmFpbHMgd2l0aCBOb3RGb3VuZEVycm9yIG9u
IG1hZGUgdXAgZGV2aWNlaWQgCitGQUlMIExpc3QgZGV2aWNlLCBzZXRTaW5rSWQgc2hvdWxkIGJl
IGFsbG93ZWQgb24gdGhlIGRlZmF1bHQsIHRoZSByZXN0IG9mIHRoZSBkZXZpY2VzIHdpbGwgZ2V0
IGEgTm90QWxsb3dlZEVycm9yIGFzc2VydF9ub3RfZXF1YWxzOiBtZWRpYSBkZXZpY2UgbGlzdCBp
bmNsdWRlcyBhdCBsZWFzdCBvbmUgYXVkaW8gb3V0cHV0IGRldmljZSBnb3QgZGlzYWxsb3dlZCB2
YWx1ZSAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFmNzAzYTkzNTBiZjU1N2YwZDM4OTExYTA5YzA5YTlkMDJl
YWEzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCkBAIC0wLDAgKzEs
NDYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBzZXRTaW5rSWQgYmVo
YXZpb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRG9taW5pcXVlIEhhemFl
bC1NYXNzaWV1eCIgaHJlZj0ibWFpbHRvOmRvbUB3My5vcmciLz4KKzxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly93d3cudzMub3JnL1RSL2F1ZGlvLW91dHB1dC8jZG9tLWh0bWxtZWRpYWVs
ZW1lbnQtc2V0c2lua2lkIj4KKzwvaGVhZD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKKworY29uc3QgYXVkaW8g
PSBuZXcgQXVkaW8oKTsKKworcHJvbWlzZV90ZXN0KHQgPT4gYXVkaW8uc2V0U2lua0lkKCIiKSwg
InNldFNpbmtJZCBvbiBkZWZhdWx0IGF1ZGlvIG91dHB1dCBzaG91bGQgYWx3YXlzIHdvcmsiKTsK
KworcHJvbWlzZV90ZXN0KHQgPT4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90Rm91bmRFcnJv
ciIsIGF1ZGlvLnNldFNpbmtJZCgibm9uZXhpc3RlbnRfZGV2aWNlX2lkIikpLAorICAic2V0U2lu
a0lkIGZhaWxzIHdpdGggTm90Rm91bmRFcnJvciBvbiBtYWRlIHVwIGRldmljZWlkIik7CisKK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgbGlzdCA9IGF3YWl0IG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpOworICBjb25zdCBvdXRwdXREZXZpY2VzTGlz
dCA9IGxpc3QuZmlsdGVyKCh7a2luZH0pID0+IGtpbmQgPT0gImF1ZGlvb3V0cHV0Iik7CisgIGFz
c2VydF9ub3RfZXF1YWxzKG91dHB1dERldmljZXNMaXN0Lmxlbmd0aCwgMCwKKyAgICAibWVkaWEg
ZGV2aWNlIGxpc3QgaW5jbHVkZXMgYXQgbGVhc3Qgb25lIGF1ZGlvIG91dHB1dCBkZXZpY2UiKTsK
KworICBsZXQgYWNjZXB0ZWREZXZpY2VzID0gMDsKKyAgZm9yIChjb25zdCB7ZGV2aWNlSWR9IG9m
IG91dHB1dERldmljZXNMaXN0KSB7CisgICAgY29uc3Qge2RldmljZUlkfSA9IG91dHB1dERldmlj
ZXNMaXN0WzBdOworICAgIGNvbnN0IHAxID0gYXVkaW8uc2V0U2lua0lkKGRldmljZUlkKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGF1ZGlvLnNpbmtJZCwgIiIsICJiZWZvcmUgaXQgcmVzb2x2ZXMsIHNl
dFNpbmtJZCBpcyB1bmNoYW5nZWQiKTsKKyAgICB0cnkgeworICAgICAgbGV0IHIgPSBhd2FpdCBw
MTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYWNjZXB0ZWREZXZpY2VzLCAwLCAib25seSB0aGUgZGVm
YXVsdCBzaW5rIGRldmljZSBjYW4gYmUgc2V0Iik7CisgICAgICBhY2NlcHRlZERldmljZXMrKzsK
KyAgICAgIGFzc2VydF9lcXVhbHMociwgdW5kZWZpbmVkLCAic2V0U2lua0lkIHJlc29sdmVzIHdp
dGggdW5kZWZpbmVkIik7CisgICAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvLnNpbmtJZCwgZGV2aWNl
SWQsICJ3aGVuIGl0IHJlc29sdmVzLCBzZXRTaW5rSWQgdXBkYXRlcyBzaW5rSWQgdG8gdGhlIHJl
cXVlc3RlZCBkZXZpY2VJZCIpOworICAgICAgciA9IGF3YWl0IGF1ZGlvLnNldFNpbmtJZChkZXZp
Y2VJZCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHIsIHVuZGVmaW5lZCwgInJlc2V0dGluZyBzaW5r
aWQgb24gc2FtZSBjdXJyZW50IHZhbHVlIHNob3VsZCBhbHdheXMgd29yayIpOworICAgICAgciA9
IGF3YWl0IGF1ZGlvLnNldFNpbmtJZCgiIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHIsIHVuZGVm
aW5lZCwgInJlc2V0dGluZyBzaW5raWQgb24gZGVmYXVsdCBhdWRpbyBvdXRwdXQgc2hvdWxkIGFs
d2F5cyB3b3JrIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgYXNzZXJ0X2VxdWFscyhlLm5h
bWUsICJOb3RBbGxvd2VkRXJyb3IiLCAiTm9uLWRlZmF1bHQgZGV2aWNlcyBhcmUgZmFpbGluZyB3
aXRoIE5vdEFsbG93ZWQgZXJyb3IiKTsKKyAgICB9CisgIH0KK30sICJMaXN0IGRldmljZSwgc2V0
U2lua0lkIHNob3VsZCBiZSBhbGxvd2VkIG9uIHRoZSBkZWZhdWx0LCB0aGUgcmVzdCBvZiB0aGUg
ZGV2aWNlcyB3aWxsIGdldCBhIE5vdEFsbG93ZWRFcnJvciIpOworCis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8t
b3V0cHV0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIzYzUx
NWNlZjZlYTlkMmM4YTMyNTY3OTY5MmFkYWE4MTE1Y2QxMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3cz
Yy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L01FVEEueW1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFy
bmVzcy5odHRwcy53aW5kb3cuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQtbWFudWFsLmh0dHBzLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRT
aW5rSWQuaHR0cHMuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409234</attachid>
            <date>2020-09-20 09:29:26 -0700</date>
            <delta_ts>2020-09-20 10:29:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216696-20200920182924.patch</filename>
            <type>text/plain</type>
            <size>50995</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTMyMjEwMTVmNWZkY2Ix
OTExMjZkMWIwYzVhNmVjZjczZTY1M2YyYy4uNzMxYmUwMmQyNWYzMWRmOTdjOGU0NDliZWYyODI3
ODk4NmM5MzFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIwLTA5LTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
SFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBzZXRTaW5rSWQgYW5kIHNpbmtJZCBhcyBwZXIg
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1vdXRwdXQvI2h0bWxtZWRpYWVsZW1l
bnQtZXh0ZW5zaW9ucy4KKyAgICAgICAgSW50cm9kdWNlIGEgc2V0dGluZyB0byBleHBvc2UgdGhl
c2UgbWV0aG9kcyBhbmQgdG8gZW5hYmxlL2Rpc2FibGUgdXNlciBnZXN0dXJlIHJlcXVpcmVtZW50
LgorICAgICAgICBBZGQgaW50ZXJmYWNlcyB0byBjaGFuZ2UgZGV2aWNlIG91dHB1dCBmb3Igc3Bl
Y2lmaWMgbWVkaWEgcGxheWVycy4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhMUywgTVNFIGFu
ZCBNZWRpYVN0cmVhbVRyYWNrIHJlbmRlcmVycyBvbiBNYWNPUy4KKworICAgICAgICBUZXN0czog
aHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbAorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRBdWRpb091dHB1
dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1
dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvT3V0cHV0SGFzaGVkRGV2aWNl
SWQgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGw6CisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERl
dmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJ
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRw
dXREZXZpY2VJZE92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
QVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNl
Q2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRBdWRpb091dHB1dERldmljZUlkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Lmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lz
dGVudFN0YXRlKToKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2VzcyBpbnN0ZWFkIG9mIFVJ
UHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBpbiBXZWJQcm9jZXNzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDgyMGVkNDNmNWQ2MzEyZmE2OTZkN2I4NWJhOGVlMDQ0OTBiZDFiZDMuLjY1YjI3
ZjFiODE0ZGVhMmJjODNlMzRmNDcwZjZkNmQyMTE4ZWIxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50LnNldFNpbmtJZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2Njk2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2Vz
cyBpbnN0ZWFkIG9mIFVJUHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBp
biBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHAKaW5kZXggYmU3MGFhYWJkOGU4MGQyZjdiNWNmNTJlNzMyNzE1ZjYx
ODM5OGYwZS4uODUxOTNhYzg1ZTE0YTBmNDRkNDFjZWU0Nzk5YjM3OWRkYWQyYjBiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNw
cApAQCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKGNv
bnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICBib29sIGNh
bkFjY2Vzc01pY3JvcGhvbmUgPSBjaGVja01pY3JvcGhvbmVBY2Nlc3MoZG9jdW1lbnQpOwogICAg
IGJvb2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2Vzcyhkb2N1bWVudCk7CiAK
KyAgICBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5jbGVhcigpOworCiAgICAg
VmVjdG9yPFJlZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VzOwogICAgIGZvciAoYXV0byYgbmV3
RGV2aWNlIDogbmV3RGV2aWNlcykgewogICAgICAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUg
JiYgbmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bo
b25lKQpAQCAtMjE0LDYgKzIxNiw5IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2Vz
KGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICAgICAg
YXV0byBkZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZUlESGFzaFNh
bHQpOwogICAgICAgICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9ncm91
cElkSGFzaFNhbHQpOwogCisgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIpCisgICAgICAgICAgICBtX2F1ZGlvT3V0cHV0RGV2
aWNlSWRUb1BlcnNpc3RlbnRJZC5hZGQoZGV2aWNlSWQsIG5ld0RldmljZS5wZXJzaXN0ZW50SWQo
KSk7CisKICAgICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3
RGV2aWNlLmxhYmVsKCksIFdURk1vdmUoZGV2aWNlSWQpLCBXVEZNb3ZlKGdyb3VwSWQpLCB0b01l
ZGlhRGV2aWNlSW5mb0tpbmQobmV3RGV2aWNlLnR5cGUoKSkpKTsKICAgICB9CiAgICAgcHJvbWlz
ZS5yZXNvbHZlKGRldmljZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggNTgyODY3MjUzY2FkMTY5OGQ4MDE1ZjY2ZWE1ZjUz
NGY5MmY1MzlkMS4uNmY5MDYyOGFiMGNjOGYwYTM0MTExMzRmODc5N2U2NGJmYzgxNmYzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5o
CkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51
bWVyYXRlRGV2aWNlc1Byb21pc2UmJik7CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFp
bnRzIGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7CiAKKyAgICBTdHJpbmcgZGV2aWNlSWRUb1Bl
cnNpc3RlbnRJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKSBjb25zdCB7IHJldHVybiBtX2F1ZGlv
T3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5nZXQoZGV2aWNlSWQpOyB9CisKICAgICB1c2lu
ZyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlcz46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPE1l
ZGlhRGV2aWNlcz46OmRlcmVmOwogCkBAIC0xMzAsNiArMTMyLDkgQEAgcHJpdmF0ZToKIAogICAg
IE9wdGlvblNldDxHZXN0dXJlQWxsb3dlZFJlcXVlc3Q+IG1fcmVxdWVzdFR5cGVzRm9yQ3VycmVu
dEdlc3R1cmU7CiAgICAgV2Vha1B0cjxVc2VyR2VzdHVyZVRva2VuPiBtX2N1cnJlbnRHZXN0dXJl
VG9rZW47CisKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2F1ZGlvT3V0cHV0RGV2aWNl
SWRUb1BlcnNpc3RlbnRJZDsKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0MjNjNmZiMGE2ZmEwODY5NmIyMS4u
ZTg5NTQ4YmEwZWYzYTU4YjhjNDUzZWNlNmE5Yzk2OTE0YjA3NGRjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgiCiAjaW5j
bHVkZSAiTWVkaWFEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1lZGlhRXJyb3IuaCIKICNpbmNsdWRl
ICJNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgiCkBAIC03OCw2ICs3OSw3IEBACiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVk
ZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRvck1lZGlhRGV2aWNl
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUE9ESW50ZXJ2
YWxUcmVlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjg0Myw2ICsyODQ1LDU5IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6ZmFzdFNlZWsoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogICAgIHNl
ZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWU6Onplcm9U
aW1lKCksIHRydWUpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1N0cmluZyBIVE1M
TWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
YXVkaW9PdXRwdXRQZXJzaXN0ZW50RGV2aWNlSWQ7Cit9CisKK3ZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2V0QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQoKS5k
b21XaW5kb3coKTsKKyAgICBhdXRvKiBtZWRpYURldmljZXMgPSB3aW5kb3cgPyBOYXZpZ2F0b3JN
ZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyh3aW5kb3ctPm5hdmlnYXRvcigpKSA6IG51bGxwdHI7
CisgICAgaWYgKCFtZWRpYURldmljZXMpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFkb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgJiYgZG9jdW1l
bnQoKS50b3BEb2N1bWVudCgpLnNldHRpbmdzKCkuc3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNl
ckdlc3R1cmUoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxv
d2VkRXJyb3IsICJBIHVzZXIgZ2VzdHVyZSBpcyByZXF1aXJlZCJfcyB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmIChkZXZpY2VJZC5pc0VtcHR5KCkpCisgICAgICAgIGRldmlj
ZUlkID0geyB9OworCisgICAgaWYgKGRldmljZUlkID09IG1fYXVkaW9PdXRwdXRIYXNoZWREZXZp
Y2VJZCkgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFN0cmluZyBwZXJzaXN0ZW50SWQ7CisgICAgaWYgKCFkZXZpY2VJZC5pc051bGwo
KSkgeworICAgICAgICBwZXJzaXN0ZW50SWQgPSBtZWRpYURldmljZXMtPmRldmljZUlkVG9QZXJz
aXN0ZW50SWQoZGV2aWNlSWQpOworICAgICAgICBpZiAocGVyc2lzdGVudElkLmlzTnVsbCgpKSB7
CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yIH0p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9hdWRpb091
dHB1dFBlcnNpc3RlbnREZXZpY2VJZCA9IFdURk1vdmUocGVyc2lzdGVudElkKTsKKyAgICBpZiAo
bV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsK
KworICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRh
c2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgZGV2aWNlSWQgPSBXVEZNb3ZlKGRldmljZUlkKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKCkgbXV0YWJsZSB7CisgICAgICAgIG1fYXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJZCA9
IFdURk1vdmUoZGV2aWNlSWQpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsK
K30KKyNlbmRpZgorCitTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2VJ
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXVkaW9PdXRwdXRQZXJzaXN0ZW50RGV2aWNlSWQ7
Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vlayhjb25zdCBNZWRpYVRpbWUmIHRpbWUp
CiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0aW1lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYWIyYjAwMTFiNTk0MzllYTUxZThhYTNlMjA4ZmUw
MTJjNjNkMTJlZC4uZDBkZWZiMTc1NGZhOTBiODNhN2NjNDI5NTg3OWI1MTRmMjM0ZWRhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTI2OCw2ICsyNjgsMTEgQEAg
cHVibGljOgogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdDsKICAgICBkb3Vi
bGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZSgpIGNvbnN0OworICAgIHZvaWQgc2V0QXVk
aW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKKyNlbmRpZgorCiAgICAgdXNpbmcgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpCdWZmZXJp
bmdQb2xpY3k7CiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koQnVmZmVyaW5nUG9saWN5KTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBCdWZmZXJpbmdQb2xpY3kgYnVmZmVyaW5nUG9saWN5KCkgY29u
c3Q7CkBAIC01ODAsNiArNTg1LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0T3ZlcnJpZGVQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpOwog
ICAgIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlKTsK
IAorICAgIFN0cmluZyBhdWRpb091dHB1dEhhc2hlZERldmljZUlkKCkgY29uc3QgeyByZXR1cm4g
bV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkOyB9CisKIHByb3RlY3RlZDoKICAgICBIVE1MTWVk
aWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoSW5pdGlhbGl6YXRpb24oKTsKQEAgLTYw
NCw2ICs2MTEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKIAogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1bWVudFNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBj
b25zdCBmaW5hbDsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZpY2VJZDsgfQogCiAg
ICAgYm9vbCBtZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQg
c2V0TWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKGJvb2wpOwpAQCAtMTE5Nyw2
ICsxMjA2LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQbGF5aW5nVG9XaXJlbGVzc1Rhcmdl
dCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BsYXlpbmdPblNlY29uZFNjcmVlbiB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhhdmlvclJlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2Vz
dHVyZSB7IGZhbHNlIH07CisKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZp
Y2VJZDsKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkOwogfTsKIAogU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6OkF1dG9wbGF5
RXZlbnRQbGF5YmFja1N0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aWRsCmluZGV4IGI0MmQwZWEzNzEwNmI0NzJiYmM5Y2VkZjYwNzgzZmUwYTM5ZWZmYzkuLmFlMGE0
MmJlNDc4ZTdjYTM1ZDBlY2VlNTZmZWQ3NDBkYTZlODMyY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmlkbApAQCAtODYsNiArODYsMTEgQEAgdHlwZWRlZiAoCiAgICAg
dW5kZWZpbmVkIHBhdXNlKCk7CiAgICAgdW5kZWZpbmVkIGZhc3RTZWVrKHVucmVzdHJpY3RlZCBk
b3VibGUgdGltZSk7CiAKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlT
ZXR0aW5nPUV4cG9zZVNwZWFrZXJzJlBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uXSByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlOworICAgIFtDb25kaXRpb25h
bD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVu
dFNwZWFrZXJTZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJ
ZF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzaW5rSWQ7CisgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NUUkVBTSwgRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50
U3BlYWtlclNlbGVjdGlvbl0gUHJvbWlzZTx1bmRlZmluZWQ+IHNldEF1ZGlvT3V0cHV0RGV2aWNl
KERPTVN0cmluZyBkZXZpY2VJZCk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgRW5h
YmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbiwg
SW1wbGVtZW50ZWRBcz1zZXRBdWRpb091dHB1dERldmljZV0gUHJvbWlzZTx1bmRlZmluZWQ+IHNl
dFNpbmtJZChET01TdHJpbmcgZGV2aWNlSWQpOworCiAgICAgLy8gY29udHJvbHMKICAgICBbQ0VS
ZWFjdGlvbnM9Tm90TmVlZGVkXSBhdHRyaWJ1dGUgYm9vbGVhbiBjb250cm9sczsKICAgICBhdHRy
aWJ1dGUgZG91YmxlIHZvbHVtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAxNzg5
N2VlMzA0YWViMjJiNTgyZmJkOTNiNGI5MjYxNDIwMjczYjZmLi40YmM2ODE2OTk4MGExMzMxNGU3
YmZlNGNlNjQ1MDNiOTUyZGZkOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04
MjYsNiArODI2LDEyIEBAIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk6CiBleHBvc2VTcGVha2Vy
c0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKK3BlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9u
RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKworc3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNl
ckdlc3R1cmU6CisgIGluaXRpYWw6IHRydWUKKwogbWVkaWFEZXZpY2VJZGVudGlmaWVyU3RvcmFn
ZURpcmVjdG9yeToKICAgdHlwZTogU3RyaW5nCiAgIGNvbmRpdGlvbmFsOiBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCmluZGV4IDYzY2YzY2NlZTgxMTJlMTU1ZTE5MzgwNWE2NDQ4Y2U4ZGJhMWUzYTIuLjkw
MmY1ODk5N2Y3MjZjZmIxN2E2MjZiZDllOTQ2NWU1OWRkZWNiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTE2MDQsNiArMTYw
NCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5
bmFtaWNSYW5nZU1vZGUgbW9kZSkKICAgICBtX3ByaXZhdGUtPnNldFByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUobW9kZSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNl
Q2hhbmdlZCgpCit7CisgICAgbV9wcml2YXRlLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsK
K30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogY29uc3QgTG9nZ2VyJiBNZWRpYVBsYXll
cjo6bWVkaWFQbGF5ZXJMb2dnZXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggZWEyNTdmMTJhY2YwOWUwYmJkZmIzMjliMTE1M2Nj
ZTUxYWNhZjRmMy4uZDQ2NzMxYTJiYWRmODg1NzAxODAxOTg4MTU2MjMyYzM0YjFmZGZlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0y
NzMsNiArMjczLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTZWN1cml0eU9yaWdpbkRhdGEg
ZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogCisgICAgdmly
dHVhbCBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQor
ICAgIHZpcnR1YWwgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IHsg
cmV0dXJuIHsgfTsgfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdmlydHVhbCBj
b25zdCB2b2lkKiBtZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgPSAwOwpAQCAt
NjMxLDYgKzYzNCwxMCBAQCBwdWJsaWM6CiAgICAgRHluYW1pY1JhbmdlTW9kZSBwcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VN
b2RlOyB9CiAgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5n
ZU1vZGUpOwogCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdDsKKyAgICBT
dHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3Q7CisgICAgdm9pZCBhdWRp
b091dHB1dERldmljZUNoYW5nZWQoKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRp
YVBsYXllckNsaWVudCYpOwogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50JiwgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyKTsKQEAgLTcwNSw2ICs3MTIsMTYg
QEAgcHVibGljOgogfTsKIAogCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxheWVyOjphdWRpb091dHB1
dERldmljZUlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YXVk
aW9PdXRwdXREZXZpY2VJZCgpIDogU3RyaW5nIHsgfTsKK30KKworaW5saW5lIFN0cmluZyBNZWRp
YVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgOiBT
dHJpbmcgeyB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDY3MGMwYTQ5NGMxMWEyNzM3NjA0Mjg0MTgzYzAwNzg4
ZDk3NTk3OGQuLjgxMjUzMzAyNzZkZDU0NGUxZmNhYmRhMTdkNjM2Y2JjZjg3YmFkNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCkBAIC0yODksNiArMjg5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIHsgfQor
CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIHsgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGFkZTA2MzJjOWY2Y2RjMGMxNGQ1ZGE4ODVjYTdi
NzQyNzhiYmQzZTMuLjg1Y2U4MWQxMDNiODVkMWQ0MjZiN2EzNDhkOGYwM2EwYmUzNjY0NTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTMxOCw2ICszMTgsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2V0U2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3RhdHVzKGJvb2wpOwogCiAgICAgdm9pZCBz
ZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIGZpbmFsOworICAg
IHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICBSZXRhaW5QdHI8
QVZVUkxBc3NldD4gbV9hdkFzc2V0OwogICAgIFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBsYXll
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGFjMGY4ZmZhMDI4ODNlNGFhZmZmMzJiZjM4
MGY4ODIzMDAyYjU2MTUuLjhmNGU0MDNjZmIxMWVkZGE5NjAxNjViYWY5YmU2NTVmZjg4ZTk2M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtOTUzLDYgKzk1MywxMiBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKICAgICBpZiAo
bV9hdlBsYXllckl0ZW0pCiAgICAgICAgIHNldEFWUGxheWVySXRlbShtX2F2UGxheWVySXRlbS5n
ZXQoKSk7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgYXV0byBhdWRpb091dHB1dERldmljZUlk
ID0gcGxheWVyKCktPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGlmICghYXVk
aW9PdXRwdXREZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAgbV9hdlBsYXllci5nZXQoKS5hdWRp
b091dHB1dERldmljZVVuaXF1ZUlEID0gYXVkaW9PdXRwdXREZXZpY2VJZDsKKyNlbmRpZgorCiAg
ICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogfQogCkBAIC0zMjkzLDYgKzMyOTksMTUgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRQcmVmZXJyZWREeW5h
bWljUmFuZ2VNb2RlKER5bmFtaWNSYW4KICNlbmRpZgogfQogCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGlmICghbV9hdlBsYXllciB8fCAhcGxheWVyKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQg
PSBwbGF5ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZCgpOworI2VuZGlmCit9CisKIE5TQXJyYXkq
IGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBb
W05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgK
aW5kZXggMDliZjU1NzQ4NDMzMWQ1ODIyMGQyMGY1ZjIwMzMyOTZlNjljZWM0Mi4uOGNlM2I3YjQw
NWRmZGY5NzAyZjJmOTUxOGFkNjlkZDg1YmRmNzc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTI1NCw2ICsyNTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIHBlcmZv
cm1UYXNrQXRNZWRpYVRpbWUoRnVuY3Rpb248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKSBm
aW5hbDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAg
dm9pZCBlbnN1cmVMYXllcigpOwogICAgIHZvaWQgZGVzdHJveUxheWVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KaW5kZXggOGI5NDE1MDdjMDM4ODFjMDIxNmI0ZTc5MmUzOWRiMjZlMzU3
ZmRiOS4uN2IxMGRiNGM5ZjdiMzNiY2E1MjQ5MWI5NjQ5ZTZmMmRlMGRhZjJlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTE2Niw2ICsxMTY2LDEyIEBAIEFMTE9XX05FV19BUElf
V0lUSE9VVF9HVUFSRFNfRU5ECiAgICAgW2F1ZGlvUmVuZGVyZXIgc2V0Vm9sdW1lOm1fcGxheWVy
LT52b2x1bWUoKV07CiAgICAgW2F1ZGlvUmVuZGVyZXIgc2V0QXVkaW9UaW1lUGl0Y2hBbGdvcml0
aG06KG1fcGxheWVyLT5wcmVzZXJ2ZXNQaXRjaCgpID8gQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRo
bVNwZWN0cmFsIDogQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRobVZhcmlzcGVlZCldOwogCisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXRE
ZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFkZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAg
YXVkaW9SZW5kZXJlci5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gZGV2aWNlSWQ7CisjZW5k
aWYKKwogICAgIEB0cnkgewogICAgICAgICBbbV9zeW5jaHJvbml6ZXIgYWRkUmVuZGVyZXI6YXVk
aW9SZW5kZXJlcl07CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewpAQCAt
MTI3Niw2ICsxMjgyLDE3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphdWRp
b091dHB1dERldmljZUNoYW5nZWQoKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAoIW1f
cGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5h
dWRpb091dHB1dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBrZXkgOiBtX3NhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXJNYXAua2V5cygpKQorICAgICAgICAoKF9fYnJpZGdlIEFWU2FtcGxlQnVm
ZmVyQXVkaW9SZW5kZXJlciAqKWtleS5nZXQoKSkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9
IGRldmljZUlkOworI2VuZGlmCit9CisKIFdURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExv
Z01lZGlhU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCA4ZGU4OTVkN2IyNDEx
OGZkYjI4ZmFjMzljYjFiZmJlOThiOGY3NjEzLi42MzFmMzAzMWVhNDM4MGVhMzhkMWQ0NWFmNmIz
NDI5MDAwMjUwZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMTU5LDYgKzE1OSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
ZW5kZWQ7IH0KIAogICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZm
ZXJpbmdQb2xpY3kpIG92ZXJyaWRlOworICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2Vk
KCkgZmluYWw7CiAKICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBjdXJyZW50UmVhZHlTdGF0
ZSgpOwogICAgIHZvaWQgdXBkYXRlUmVhZHlTdGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tCmluZGV4IDJkYjUwYmI4OTU3NGVkYzM3YWQ5YzdjYzliYWJmY2MxOTM3MDMwMzYuLjBmYWI4
YjFkZTQwYjYzM2NiYjc2MDFmZGY2ODc0Njk4MjY0M2U4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0KQEAgLTg2Nyw3ICs4NjcsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkKIHsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZVZlY3RvciBjdXJyZW50VHJhY2tzID0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygp
OwogCi0gICAgYXV0byBzZXRBdWRpb1RyYWNrU3RhdGUgPSBbdGhpc10oQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbSYgdHJhY2ssIGludCBpbmRleCwgVHJhY2tTdGF0ZSBzdGF0ZSkKKyAgICBh
dXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOwor
ICAgIGF1dG8gc2V0QXVkaW9UcmFja1N0YXRlID0gW3RoaXMsICZkZXZpY2VJZF0oQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbSYgdHJhY2ssIGludCBpbmRleCwgVHJhY2tTdGF0ZSBzdGF0ZSkK
ICAgICB7CiAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICAgICAgY2FzZSBUcmFja1N0YXRl
OjpSZW1vdmU6CkBAIC04ODQsNiArODg1LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcygpCiAgICAgICAgICAgICB0cmFjay5zZXRWb2x1
bWUobV92b2x1bWUpOwogICAgICAgICAgICAgdHJhY2suc2V0TXV0ZWQobV9tdXRlZCk7CiAgICAg
ICAgICAgICB0cmFjay5zZXRFbmFibGVkKHRyYWNrLnN0cmVhbVRyYWNrKCkuZW5hYmxlZCgpICYm
ICF0cmFjay5zdHJlYW1UcmFjaygpLm11dGVkKCkpOworICAgICAgICAgICAgaWYgKCFkZXZpY2VJ
ZC5pc051bGwoKSkKKyAgICAgICAgICAgICAgICB0cmFjay5zZXRBdWRpb091dHB1dERldmljZUlk
KGRldmljZUlkKTsKKwogICAgICAgICAgICAgaWYgKHBsYXlpbmcoKSkKICAgICAgICAgICAgICAg
ICB0cmFjay5wbGF5KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwMTcsNiArMTAyMSwxNSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0QnVmZmVyaW5n
UG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZQogICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci0+Zmx1c2hBbmRSZW1vdmVJbWFnZSgpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBp
ZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxh
eWVyLT5hdWRpb091dHB1dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrIDog
bV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQorICAgICAgICBhdWRpb1RyYWNrLT5zZXRBdWRpb091
dHB1dERldmljZUlkKGRldmljZUlkKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYg
ZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlci5oCmluZGV4IDY0ODlmOWRhN2M1NjI2YzIwMjk3ODUzZjFhMDFlOWVhZmJl
NTYwMGIuLjQ4ZTVmMzI3MWFiNDhjN2EyNzk2MDVhMzUxNGFiNjlkMmE4ZGE1Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgZmxvYXQgdm9sdW1lKCkg
Y29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBT
dHJpbmcmKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHZvaWQgc2V0TG9nZ2Vy
KGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKICNlbmRpZgpAQCAtMTA5LDYgKzExMSwxMCBA
QCBpbmxpbmUgY29uc3QgY2hhciogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmxvZ0Ns
YXNzTmFtZSgpIGNvbnN0CiB9CiAjZW5kaWYKIAoraW5saW5lIHZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJikKK3sK
K30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKaW5kZXggYTE4NWNkNDcwMzYzZTYwNWY5MGQ0OTlkZTAz
ODA5Nzk2YWM5YzVhYy4uNmJlMGExOGYzMDU4NjNjYWVmYmU4OWViMTZlNjhiOGRlNzI0NzRmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKQEAgLTk3LDYgKzk3LDEx
IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW06OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
ZCkKK3sKKyAgICBtX3JlbmRlcmVyLT5zZXRBdWRpb091dHB1dERldmljZUlkKGRldmljZUlkKTsK
K30KKwogZmxvYXQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dm9sdW1lKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9yZW5kZXJlci0+dm9sdW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtLmgKaW5kZXggYTQ4NWMxOGNhODdhMWM2ZjMyYTYxOWVlOGNkYzVhM2M4ZWFk
NzRlMy4uOTNhNDA2NTNjMTdkYzU3ZjhkOGNkMjgwMjk3Njk5OWU5NDhjYjJiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAg
ICAgfkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKTsKIAogICAgIHZvaWQgc2V0VHJhY2tJ
bmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CisgICAgdm9pZCBzZXRBdWRpb091
dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYpOwogCiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAKaW5k
ZXggNzYyMzJiNzlkOWQwN2ViMWI4OWM0MmViNTM0NGRkYzMwNTQyYWUwOC4uM2QzOTQwMTZmMWIw
MjU3OWJiNGQyY2VkNDdiYjUyMTE0NDY2ODBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcApAQCAtNjcsMTEgKzY3LDE4IEBAIHZv
aWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICAgICAgbV9kYXRhU291cmNlLT5zZXRWb2x1bWUodm9sdW1lKTsKIH0KIAordm9p
ZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRBdWRpb091dHB1dERldmlj
ZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQpCit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBj
cmVhdGUgYSB1bml0IGZvciBvdXJzZWx2ZXMgaGVyZSBvciB1c2UgdGhlIGRlZmF1bHQgdW5pdCBp
ZiBkZXZpY2VJZCBpcyBtYXRjaGluZy4KKyAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNpbmdsZXRvbigpLnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworICAg
IG1fc2hvdWxkUmVzZXQgPSB0cnVlOworfQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgc2FtcGxlVGltZSwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlv
bigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7
Ci0gICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlv
bigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNjcmlwdGlvbikg
eworICAgIGlmICghbV9kYXRhU291cmNlIHx8IG1fc2hvdWxkUmVzZXQgfHwgIW1fZGF0YVNvdXJj
ZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24o
KSAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBs
ZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyLCAqdGhpcyk7
CiAKICAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KHRvQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkpIHsKQEAgLTk1LDYgKzEwMiw3IEBAIHZvaWQgQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFU
aW1lJiBzYW1wbGVUaW1lCiAgICAgICAgICAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNpbmdsZXRvbigpLmFkZFNvdXJjZShXVEZNb3ZlKG5ld1NvdXJjZSkpOwogICAgICAg
ICB9KTsKICAgICAgICAgbV9kYXRhU291cmNlID0gV1RGTW92ZShkYXRhU291cmNlKTsKKyAgICAg
ICAgbV9zaG91bGRSZXNldCA9IGZhbHNlOwogICAgIH0KIAogICAgIG1fZGF0YVNvdXJjZS0+cHVz
aFNhbXBsZXMoc2FtcGxlVGltZSwgYXVkaW9EYXRhLCBzYW1wbGVDb3VudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAppbmRleCA1MWFjNDMz
N2M0ZTAzNThmZGRjYjRlYTg1NDdmMmFiYjBiYzBmYTg3Li41MDI1NTYxNjc0ZDA1ZWEwZThkZTBk
ZTg1ZTQyYjVlYzQ0NTYxNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckNvY29hLmgKQEAgLTUzLDkgKzUzLDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzdG9wKCkgZmluYWw7CiAgICAgdm9pZCBjbGVhcigpIGZpbmFsOwogICAgIHZvaWQgc2V0Vm9s
dW1lKGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3Qg
U3RyaW5nJikgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uPiBtX291dHB1dERlc2NyaXB0aW9uOwogICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFT
b3VyY2U+IG1fZGF0YVNvdXJjZTsKKyAgICBib29sIG1fc2hvdWxkUmVzZXQgeyBmYWxzZSB9Owog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0LmNwcAppbmRleCBkYWM3NGExMjU1YzVlNTRhNTIzNDM2ZmU2OWE4ZTQ0NGMyZTcwYjE1Li4x
MTRhMzQwYmZiZTQ3N2QzNzM2ODM4NGIxM2JjMmU4NWQ2MDkxZGQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMzYsNiArMzYs
MTEgQEAKICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0F1ZGlvVG9vbGJveFNQSS5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlLmgiCisjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXIuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDYgKzU2LDI2IEBAIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdDo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdCgpCiAg
ICAgc3RvcCgpOwogfQogCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6
c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlEKQoreworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKKyAgICBp
ZiAoIWRldmljZSB8fCBtX2RldmljZUlEID09IGRldmljZS0+ZGV2aWNlSUQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYm9vbCBzaG91bGRSZXN0YXJ0ID0gbV9pc1N0YXJ0ZWQ7CisgICAgaWYg
KG1faXNTdGFydGVkKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2RldmljZUlEID0gZGV2aWNl
LT5kZXZpY2VJRCgpOworCisgICAgaWYgKHNob3VsZFJlc3RhcnQpCisgICAgICAgIHN0YXJ0KCk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZXZpY2VJRCk7CisjZW5kaWYKK30KKwogdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZShSZWY8QXVkaW9TYW1w
bGVEYXRhU291cmNlPiYmIHNvdXJjZSkKIHsKICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZSIpOwpAQCAtMTYxLDYgKzE4
NiwxNiBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVk
aW9Vbml0SWZOZWVkZWQoKQogICAgIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IGlmIChtX2RldmljZUlEKSB7CisgICAgICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHko
cmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1
ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2RldmljZUlEKSk7
CisgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXQg
dW5hYmxlIHRvIHNldCB1bml0IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludClt
X2RldmljZUlELCAoaW50KWVycm9yLCAoY2hhciopJmVycm9yKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVj
dCBjYWxsYmFjayA9IHsgaW5wdXRQcm9jLCBudWxscHRyIH07CiAgICAgZXJyb3IgPSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJD
YWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2Fs
bGJhY2spKTsKICAgICBpZiAoZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuaAppbmRleCA0NDA3NmE1NmVjOTc0ZjliYjg3MzQyYmZjNzQ4
MzBjODU5Yzc3MmY2Li40NTMxZWYzZDMzOWRjOGE1MzM4OTEyNGI3ZWNkZGUyMDZmNTI3YzA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCkBA
IC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgdm9pZCBzdG9w
KCk7CiAKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJik7CisK
ICAgICB2b2lkIGFkZFNvdXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmKTsKICAgICB2
b2lkIHJlbW92ZVNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKIApAQCAtNjgsNiArNzAs
OSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRVcGRhdGVSZW5kZXJTb3VyY2VzIHsgZmFs
c2UgfTsKICAgICBMb2NrIG1fc291cmNlc0xvY2s7CiAgICAgYm9vbCBtX2lzU3RhcnRlZCB7IGZh
bHNlIH07CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHVpbnQzMl90IG1fZGV2aWNlSUQgeyAwIH07
CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1
OTEwNjEyMWE2NjVlMThlZDQ5NjY4MWU3ZmRkMzVkYzcyYTBiMGU3Li5mNDM0Nzc4NjhlYTk5ZWQ3
Y2FkNWQ2ZmFmMjBhODc1MWE5ZDcwMGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC01NjcsNiArNTY3LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50
U3RhdGUoUGFnZSYgcGFnZSkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQodHJ1ZSk7CiAgICAgcGFnZS5zZXR0aW5n
cygpLnNldFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkKHRydWUpOwogI2VuZGlmCisgICAgcGFnZS5z
ZXR0aW5ncygpLnNldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKGZhbHNlKTsK
IAogICAgIHBhZ2Uuc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oMF9zKTsKICAgICBwYWdl
LnNldEZ1bGxzY3JlZW5JbnNldHMoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGVkZjU4YmVkYTJlOWQwNGY1
ODIyMWRhYWRlY2JlMjVmZTAxNjBiMDAuLjIxZDBkMzcxNmYzYWU3N2ZiYWJiMDQ5OWIxODA4ODFm
ZjM0ZGJjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM4LDYgKzEzOCwxNCBAQCBFeHBvc2VTcGVha2Vyc0Vu
YWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHNwZWFrZXIgZGV2aWNl
IHNlbGVjdGlvbiIKICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX1JUQykKIAorUGVyRWxlbWVudFNw
ZWFrZXJTZWxlY3Rpb25FbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFs
c2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBbGxvdyBwZXIgbWVkaWEgZWxlbWVudCBzcGVha2Vy
IGRldmljZSBzZWxlY3Rpb24iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHBl
ciBtZWRpYSBlbGVtZW50IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgY2F0ZWdvcnk6IGV4
cGVyaW1lbnRhbAorICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQorCiBWUDlEZWNvZGVyRW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWUDlEZWNvZGVyRW5h
YmxlZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNGI4ODUwMGM5Y2FkMThhOTBjYWM4MDAyNDFhYWEyMTk2MjQ4NDlhNi4u
OTA4ODRhZWVmMGZhMGMyMGIxMGVjMDgzN2RlNDY4MzE3NGE0MTBkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDIwLTA5LTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNraXAgbmV3IHRlc3Rz
IG9uIFdLMS4KKworICAgICAgICAqIGh0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0
cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9hdWRpby1vdXRwdXQv
c2V0U2lua0lkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2VzcyBpbnN0ZWFkIG9mIFVJUHJvY2VzcyB0
byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBpbiBXZWJQcm9jZXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmNzg5NWVlMzRkOTgxNWFlYmZhY2QzMWU1ZjA5MzNmYjZi
OTA0Mzg3Li4zYmYwNWJlYjY2MmZkNTRhOTUzYmExMGY3NzVlOTE0NWRmYWVmNDJkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wOS0xOCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IEhUTUxNZWRpYUVsZW1lbnQuc2V0U2lua0lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb246
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9NRVRBLnltbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0
dHBzLndpbmRvdy5qczogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlv
LW91dHB1dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3czYy1pbXBvcnQu
bG9nOiBBZGRlZC4KKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2VzcyBpbnN0ZWFkIG9mIFVJ
UHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBpbiBXZWJQcm9jZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL3Rlc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkOWVmNGIyNjNmZDA2YmE1MTVmYmQ5
ZWViZmQ5YmVkY2ZjZTY4MjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL3Rlc3QuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9IndpbmRvd3MtMTI1MiI+Cis8c3R5bGU+CisgICAgLnVwcGVyICogeyB0ZXh0LXRyYW5z
Zm9ybTogdXBwZXJjYXNlOyB9CisgICAgLmNhcGl0YWxpemVkICogeyB0ZXh0LXRyYW5zZm9ybTog
Y2FwaXRhbGl6ZTsgfQorICAgIC5sb3dlciAqIHsgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsg
fQorPC9zdHlsZT4KK1RoZSB0ZXh0IGluIHRoZSBidXR0b24sIHBvcHVwIG1lbnUgYW5kIGxpc3Qg
Ym94IHNob3VsZCBoYXZlIHRoZSBzYW1lIGNhc2UgYXMgaW4gdGhlCithY2NvbXBhbnlpbmcgdGV4
dC4KKzxkaXYgY2xhc3M9InVwcGVyIj4KKyAgICA8c2VsZWN0PjxvcHRpb24+aGVMTG88L29wdGlv
bj48b3B0aW9uPndvUkxkPC9vcHRpb24+PC9zZWxlY3Q+CisgICAgPHNlbGVjdCBtdWx0aXBsZT0i
dHJ1ZSI+PG9wdGlvbj5oZUxMbzwvb3B0aW9uPjxvcHRpb24+d29STGQ8L29wdGlvbj48L3NlbGVj
dD4KKyAgICA8c3Bhbj5oZUxMbyB3b1JMZDwvc3Bhbj4KKzwvZGl2PgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZDUzNzIyZTliMTgwMWEzZTM5ZWU5OWM1YmE2Zjdi
MjBkODMwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9hdWRpby1v
dXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFT
UyBzZXRTaW5rSWQgcmVxdWlyZXMgdXNlciBnZXN0dXJlIAorUEFTUyBzZXRTaW5rSWQgYW5kIHNp
bmtJZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVkaW8tb3V0cHV0L3Nl
dFNpbmtJZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVkaW8tb3V0cHV0L3Nl
dFNpbmtJZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhMjFiNTQxN2Y2ZDFkZjk4YzVkOGJiZGU4
ZjRjOTBjMGE4NWY0YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9h
dWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IHNldFNpbmtJZCBiZWhhdmlvciA8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJEb21pbmlxdWUgSGF6YWVsLU1hc3NpZXV4IiBo
cmVmPSJtYWlsdG86ZG9tQHczLm9yZyIvPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L3d3dy53My5vcmcvVFIvYXVkaW8tb3V0cHV0LyNkb20taHRtbG1lZGlhZWxlbWVudC1zZXRzaW5r
aWQiPgorPC9oZWFkPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitjb25zdCBhdWRpbyA9IG5ldyBBdWRpbygp
OworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICByZXR1cm47CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNwZWFrZXJTZWxlY3Rpb25S
ZXF1aXJlc1VzZXJHZXN0dXJlKHRydWUpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4geyBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNlckdlc3R1cmUoZmFs
c2UpOyB9KTsKKworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJOb3RBbGxvd2Vk
RXJyb3IiLCBhdWRpby5zZXRTaW5rSWQoIiIpKTsKK30sICJzZXRTaW5rSWQgcmVxdWlyZXMgdXNl
ciBnZXN0dXJlIik7CisKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGF3YWl0IG5h
dmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW8gOiB0cnVlIH0pOworICAg
IGNvbnN0IGxpc3QgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmlj
ZXMoKTsKKyAgICBjb25zdCBvdXRwdXREZXZpY2VzTGlzdCA9IGxpc3QuZmlsdGVyKCh7a2luZH0p
ID0+IGtpbmQgPT0gImF1ZGlvb3V0cHV0Iik7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMob3V0cHV0
RGV2aWNlc0xpc3QubGVuZ3RoLCAwLCAibWVkaWEgZGV2aWNlIGxpc3QgaW5jbHVkZXMgYXQgbGVh
c3Qgb25lIGF1ZGlvIG91dHB1dCBkZXZpY2UiKTsKKworICAgIGxldCBwcm9taXNlID0gYXVkaW8u
c2V0U2lua0lkKG91dHB1dERldmljZXNMaXN0WzBdLmRldmljZUlkKTsKKworICAgIGFzc2VydF9l
cXVhbHMoYXVkaW8uc2lua0lkLCAiIik7CisgICAgYXdhaXQgcHJvbWlzZTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF1ZGlvLnNpbmtJZCwgb3V0cHV0RGV2aWNlc0xpc3RbMF0uZGV2aWNlSWQpOworfSwg
InNldFNpbmtJZCBhbmQgc2lua0lkIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24K
aW5kZXggODVjZWIzNWUxNzkyOGQ3YTE2OTA2MGZmNDRlYjBiNDRkZmU0NzA1Mi4uYWM2MWU2OGQ1
Y2Y3ZmY4ZTE4MDhiNWEzM2NiZjRhOTExMzdlMzdiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24K
QEAgLTQ5LDcgKzQ5LDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2FwbmciOiAic2tpcCIs
IAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXBwLXVyaSI6ICJza2lwIiwgCiAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9hc3N1bXB0aW9ucyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9hdWRpby1vdXRwdXQiOiAic2tpcCIsIAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXVk
aW8tb3V0cHV0IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXV4Y2xpY2si
OiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaCI6ICJp
bXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JhdHRlcnktc3RhdHVzIjogInNraXAi
LCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvYXVkaW8tb3V0cHV0L01FVEEueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhN2Q0ZDA2
MjU5MTE3YWY4ZmI4NDNmNmE4ZDI1MmJhYzAxYThmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L01FVEEu
eW1sCkBAIC0wLDAgKzEsNCBAQAorc3BlYzogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2Fw
dHVyZS1vdXRwdXQvCitzdWdnZXN0ZWRfcmV2aWV3ZXJzOgorICAtIGd1aWRvdQorICAtIGphbi1p
dmFyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9p
ZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAzOTA2ZTJl
MTkyMWY4MGY5YTY4ZTlmM2RjOWU5OTY1ZGFiZGY3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhh
cm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACisKK1BBU1Mg
aWRsX3Rlc3Qgc2V0dXAgCitQQVNTIGlkbF90ZXN0IHZhbGlkYXRpb24gCitQQVNTIFBhcnRpYWwg
aW50ZXJmYWNlIEhUTUxNZWRpYUVsZW1lbnQ6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAor
UEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MTWVkaWFFbGVtZW50OiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3Vt
ZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFT
UyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q29udGVudEVkaXRhYmxlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVu
dDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9u
RG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgRWxl
bWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBF
bGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNT
IEhUTUxNZWRpYUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2lua0lkIAorUEFTUyBIVE1M
TWVkaWFFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHNldFNpbmtJZChET01TdHJpbmcpIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5o
dHRwcy53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1
MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cu
aHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0
IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRv
dy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8t
b3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3Y2RiZDA3Njgz
MzQ4MWI1M2YzNWIyNmQ1ZWUwMTZmZDcwYzQxMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJu
ZXNzLmh0dHBzLndpbmRvdy5qcwpAQCAtMCwwICsxLDIwIEBACisvLyBNRVRBOiBzY3JpcHQ9L3Jl
c291cmNlcy9XZWJJRExQYXJzZXIuanMKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL2lkbGhh
cm5lc3MuanMKKworLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1vdXRwdXQv
CisKKyd1c2Ugc3RyaWN0JzsKKworaWRsX3Rlc3QoCisgIFsnYXVkaW8tb3V0cHV0J10sCisgIFsn
bWVkaWFjYXB0dXJlLXN0cmVhbXMnLCAnaHRtbCcsICdkb20nXSwKKyAgaWRsX2FycmF5ID0+IHsK
KyAgICBzZWxmLmF1ZGlvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYXVkaW8nKTsKKyAgICBz
ZWxmLnZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBpZGxfYXJy
YXkuYWRkX29iamVjdHMoeworICAgICAgSFRNTEF1ZGlvRWxlbWVudDogWydhdWRpbyddLAorICAg
ICAgSFRNTFZpZGVvRWxlbWVudDogWyd2aWRlbyddLAorICAgICAgTWVkaWFEZXZpY2VzOiBbJ25h
dmlnYXRvci5tZWRpYURldmljZXMnXSwKKyAgICB9KTsKKyAgfQorKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3Nl
dFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU0ZTE3MzIzMjQyMTIyYWI5YzI3M2MyMjk3OGIyYjljODNmZTY1MTgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorCitQQVNTIHNldFNpbmtJZCBvbiBkZWZhdWx0IGF1ZGlvIG91dHB1dCBzaG91bGQgYWx3
YXlzIHdvcmsgCitQQVNTIHNldFNpbmtJZCBmYWlscyB3aXRoIE5vdEZvdW5kRXJyb3Igb24gbWFk
ZSB1cCBkZXZpY2VpZCAKK0ZBSUwgTGlzdCBkZXZpY2UsIHNldFNpbmtJZCBzaG91bGQgYmUgYWxs
b3dlZCBvbiB0aGUgZGVmYXVsdCwgdGhlIHJlc3Qgb2YgdGhlIGRldmljZXMgd2lsbCBnZXQgYSBO
b3RBbGxvd2VkRXJyb3IgYXNzZXJ0X25vdF9lcXVhbHM6IG1lZGlhIGRldmljZSBsaXN0IGluY2x1
ZGVzIGF0IGxlYXN0IG9uZSBhdWRpbyBvdXRwdXQgZGV2aWNlIGdvdCBkaXNhbGxvd2VkIHZhbHVl
IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMWY3MDNhOTM1MGJmNTU3ZjBkMzg5MTFhMDljMDlhOWQwMmVhYTNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw0NiBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IHNldFNpbmtJZCBiZWhhdmlv
ciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJEb21pbmlxdWUgSGF6YWVsLU1h
c3NpZXV4IiBocmVmPSJtYWlsdG86ZG9tQHczLm9yZyIvPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL3d3dy53My5vcmcvVFIvYXVkaW8tb3V0cHV0LyNkb20taHRtbG1lZGlhZWxlbWVu
dC1zZXRzaW5raWQiPgorPC9oZWFkPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitjb25zdCBhdWRpbyA9IG5l
dyBBdWRpbygpOworCitwcm9taXNlX3Rlc3QodCA9PiBhdWRpby5zZXRTaW5rSWQoIiIpLCAic2V0
U2lua0lkIG9uIGRlZmF1bHQgYXVkaW8gb3V0cHV0IHNob3VsZCBhbHdheXMgd29yayIpOworCitw
cm9taXNlX3Rlc3QodCA9PiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJOb3RGb3VuZEVycm9yIiwg
YXVkaW8uc2V0U2lua0lkKCJub25leGlzdGVudF9kZXZpY2VfaWQiKSksCisgICJzZXRTaW5rSWQg
ZmFpbHMgd2l0aCBOb3RGb3VuZEVycm9yIG9uIG1hZGUgdXAgZGV2aWNlaWQiKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBsaXN0ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CisgIGNvbnN0IG91dHB1dERldmljZXNMaXN0ID0g
bGlzdC5maWx0ZXIoKHtraW5kfSkgPT4ga2luZCA9PSAiYXVkaW9vdXRwdXQiKTsKKyAgYXNzZXJ0
X25vdF9lcXVhbHMob3V0cHV0RGV2aWNlc0xpc3QubGVuZ3RoLCAwLAorICAgICJtZWRpYSBkZXZp
Y2UgbGlzdCBpbmNsdWRlcyBhdCBsZWFzdCBvbmUgYXVkaW8gb3V0cHV0IGRldmljZSIpOworCisg
IGxldCBhY2NlcHRlZERldmljZXMgPSAwOworICBmb3IgKGNvbnN0IHtkZXZpY2VJZH0gb2Ygb3V0
cHV0RGV2aWNlc0xpc3QpIHsKKyAgICBjb25zdCB7ZGV2aWNlSWR9ID0gb3V0cHV0RGV2aWNlc0xp
c3RbMF07CisgICAgY29uc3QgcDEgPSBhdWRpby5zZXRTaW5rSWQoZGV2aWNlSWQpOworICAgIGFz
c2VydF9lcXVhbHMoYXVkaW8uc2lua0lkLCAiIiwgImJlZm9yZSBpdCByZXNvbHZlcywgc2V0U2lu
a0lkIGlzIHVuY2hhbmdlZCIpOworICAgIHRyeSB7CisgICAgICBsZXQgciA9IGF3YWl0IHAxOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhhY2NlcHRlZERldmljZXMsIDAsICJvbmx5IHRoZSBkZWZhdWx0
IHNpbmsgZGV2aWNlIGNhbiBiZSBzZXQiKTsKKyAgICAgIGFjY2VwdGVkRGV2aWNlcysrOworICAg
ICAgYXNzZXJ0X2VxdWFscyhyLCB1bmRlZmluZWQsICJzZXRTaW5rSWQgcmVzb2x2ZXMgd2l0aCB1
bmRlZmluZWQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYXVkaW8uc2lua0lkLCBkZXZpY2VJZCwg
IndoZW4gaXQgcmVzb2x2ZXMsIHNldFNpbmtJZCB1cGRhdGVzIHNpbmtJZCB0byB0aGUgcmVxdWVz
dGVkIGRldmljZUlkIik7CisgICAgICByID0gYXdhaXQgYXVkaW8uc2V0U2lua0lkKGRldmljZUlk
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMociwgdW5kZWZpbmVkLCAicmVzZXR0aW5nIHNpbmtpZCBv
biBzYW1lIGN1cnJlbnQgdmFsdWUgc2hvdWxkIGFsd2F5cyB3b3JrIik7CisgICAgICByID0gYXdh
aXQgYXVkaW8uc2V0U2lua0lkKCIiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMociwgdW5kZWZpbmVk
LCAicmVzZXR0aW5nIHNpbmtpZCBvbiBkZWZhdWx0IGF1ZGlvIG91dHB1dCBzaG91bGQgYWx3YXlz
IHdvcmsiKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwg
Ik5vdEFsbG93ZWRFcnJvciIsICJOb24tZGVmYXVsdCBkZXZpY2VzIGFyZSBmYWlsaW5nIHdpdGgg
Tm90QWxsb3dlZCBlcnJvciIpOworICAgIH0KKyAgfQorfSwgIkxpc3QgZGV2aWNlLCBzZXRTaW5r
SWQgc2hvdWxkIGJlIGFsbG93ZWQgb24gdGhlIGRlZmF1bHQsIHRoZSByZXN0IG9mIHRoZSBkZXZp
Y2VzIHdpbGwgZ2V0IGEgTm90QWxsb3dlZEVycm9yIik7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRw
dXQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2F1ZGlvLW91dHB1dC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjNjNTE1Y2Vm
NmVhOWQyYzhhMzI1Njc5NjkyYWRhYTgxMTVjZDEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC1tYW51YWwuaHR0cHMuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJ
ZC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wbGF5LWZy
b20tc2VsZWN0LWNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1w
bGF5LWZyb20tc2VsZWN0LWNoYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFlMzViMjYw
ZTA1YzU3ZDYxMTk2MmFkYjc1NGU5MjM0YTI2YjFiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXktZnJvbS1zZWxlY3QtY2hhbmdlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDUgQEAKKyNQSUQgVU5SRVNQT05TSVZFIC0gV2ViS2l0VGVzdFJ1bm5lciAocGlk
IDQ5NDQyKQorRkFJTDogVGltZWQgb3V0IHdhaXRpbmcgZm9yIG5vdGlmeURvbmUgdG8gYmUgY2Fs
bGVkCisKKyNFT0YKKyNFT0YKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBs
YXktZnJvbS1zZWxlY3QtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wbGF5
LWZyb20tc2VsZWN0LWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZDQwZDVlNTE2ZmNjMWRiYTMw
N2MxODBiZDMzYjg5NDU3ZGI0NWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS92aWRlby1wbGF5LWZyb20tc2VsZWN0LWNoYW5nZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlNlbGVjdCBlbGVtZW50IGFuZCB1c2VyIGdlc3R1cmU8
L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYS1maWxlLmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9InZpZGVvLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxz
ZWxlY3QgaWQ9InBvcHVwIj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPjE8L29wdGlvbj4KKyAg
ICAgICAgICAgICAgICA8b3B0aW9uPjI8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9u
PjM8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPjQ8L29wdGlvbj4KKyAgICAgICAg
ICAgICAgICA8b3B0aW9uPjU8L29wdGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPjY8L29w
dGlvbj4KKyAgICAgICAgICAgICAgICA8b3B0aW9uPjc8L29wdGlvbj4KKyAgICAgICAgICAgICAg
ICA8b3B0aW9uPjg8L29wdGlvbj4KKyAgICAgICAgICAgIDwvc2VsZWN0PgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPgorICAgICAgICA8ZGl2PnNlbGVjdCBhbiBpdGVtIGluIHRoZSBsaXN0
PC9kaXY+PGJyPgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvMSIgY29udHJvbHM+PC92aWRlbz4K
KyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KK2lmICh3aW5k
b3cuaW50ZXJuYWxzKSAKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1ZGlvUGxh
eWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKHRydWUpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkg
PT4geworICAgbGV0IHZpZGVvUHJvbWlzZTsKKyAgIGxldCBzZWxlY3RQcm9taXNlID0gbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgcG9wdXAub25jaGFuZ2UgPSByZXNvbHZlOworICAg
ICAgIC8vcG9wdXAub25jaGFuZ2UgPSAoKSA9PiB7CisgICAgICAgLy8gICAgY29uc3QgdXJsID0g
ZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnY29udGVudC90ZXN0LTI1ZnBzJyk7CisgICAgICAgLy8g
ICAgdmlkZW8xLnNyYyA9IHVybDsKKyAgICAgICAvLyAgICB2aWRlb1Byb21pc2UgPSB2aWRlbzEu
cGxheSgpLnRoZW4oKCkgPT4gbG9nLmlubmVySFRNTCA9ICdzdGFydGVkJywgKGVycikgPT4gbG9n
LmlubmVySFRNTCA9IGVycik7CisgICAgICAgLy8gICAgcmVzb2x2ZSgpOworICAgICAgIC8vfQor
ICAgfSk7CisKKyAgIHBvcHVwLmZvY3VzKCk7CisKKyAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisvLyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8ocG9wdXAub2Zmc2V0TGVmdCArIHBv
cHVwLm9mZnNldFdpZHRoIC0gMiwgcG9wdXAub2Zmc2V0VG9wICsgcG9wdXAub2Zmc2V0SGVpZ2h0
IC0gMik7CisvLyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisvLyAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOworLy8KKy8vICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhwb3B1cC5vZmZzZXRMZWZ0ICsgNCwgcG9wdXAub2Zmc2V0VG9wICsgNCk7CisvLyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisvLyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgp
OworLy8KKyAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICAgICAgZXZl
bnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCJ1cEFycm93Iik7CisgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgICB9
CisgICAKKyAgIGF3YWl0IHNlbGVjdFByb21pc2U7CisvLyAgIGF3YWl0IHZpZGVvUHJvbWlzZTsK
K30sICJvbmNoYW5nZSBzaG91bGQgaGF2ZSB1c2VyIGdlc3R1cmUgcHJpdmlsZWRnZSIpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjdjZTFkMzc5M2IzYTRiMDBlMWYx
ODdiMDUyMzRiNzhmNmY3NDlkZS4uNGVhMzliM2M3ZjQ2NGZmMTA3ZGE2ZWU0ZDI4M2FjOTQ1ZDA1
YjQ5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNjUsNiArNjUsOSBAQCBpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctTW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZC5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1nZXRVc2VyTWVkaWEtcGVuZGluZy1wcm9taXNlLmh0bWwgWyBTa2lwIF0KIGh0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLW1lZGlhc3RyZWFtLmh0bWwgWyBTa2lwIF0K
IAoraHR0cC93cHQvYXVkaW8tb3V0cHV0IFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2F1ZGlvLW91dHB1dCBbIFNraXAgXQorCiAjIERhdGFsaXN0IGlzIHVuc3VwcG9y
dGVkIGluIFdLMQogYWNjZXNzaWJpbGl0eS9kYXRhbGlzdC5odG1sIFsgV29udEZpeCBdCiBmYXN0
L2Zvcm1zL2RhdGFsaXN0IFsgV29udEZpeCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDVjYjM3MDg3ZWQxMmFjMDYyZjZlNGExZjVkOGQ0YmExYWY2Zjgx
OGUuLmI1ZDZjMDNjNDQ5ZTNjYzFhMzFkZjJmMjM4NWQwNzI5NzJkN2U2YmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC04NTksNiArODU5LDkgQEAgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcyBbIFNraXAg
XQogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0gWyBTa2lwIF0KIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLWdldFVzZXJNZWRpYS1wZW5kaW5nLXByb21pc2UuaHRtbCBbIFNr
aXAgXQogCitodHRwL3dwdC9hdWRpby1vdXRwdXQgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0IFsgU2tpcCBdCisKICMgbmVlZHMgZW5oYW5jZWQg
ZXZlbnRTZW5kZXIuY29udGV4dE1lbnUoKSByZXR1cm4gdmFsdWUKICN3ZWJraXQub3JnL2IvNDUw
MjEgbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409237</attachid>
            <date>2020-09-20 10:29:30 -0700</date>
            <delta_ts>2020-09-21 00:37:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216696-20200920192929.patch</filename>
            <type>text/plain</type>
            <size>47278</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTMyMjEwMTVmNWZkY2Ix
OTExMjZkMWIwYzVhNmVjZjczZTY1M2YyYy4uNzMxYmUwMmQyNWYzMWRmOTdjOGU0NDliZWYyODI3
ODk4NmM5MzFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIwLTA5LTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
SFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBzZXRTaW5rSWQgYW5kIHNpbmtJZCBhcyBwZXIg
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1vdXRwdXQvI2h0bWxtZWRpYWVsZW1l
bnQtZXh0ZW5zaW9ucy4KKyAgICAgICAgSW50cm9kdWNlIGEgc2V0dGluZyB0byBleHBvc2UgdGhl
c2UgbWV0aG9kcyBhbmQgdG8gZW5hYmxlL2Rpc2FibGUgdXNlciBnZXN0dXJlIHJlcXVpcmVtZW50
LgorICAgICAgICBBZGQgaW50ZXJmYWNlcyB0byBjaGFuZ2UgZGV2aWNlIG91dHB1dCBmb3Igc3Bl
Y2lmaWMgbWVkaWEgcGxheWVycy4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhMUywgTVNFIGFu
ZCBNZWRpYVN0cmVhbVRyYWNrIHJlbmRlcmVycyBvbiBNYWNPUy4KKworICAgICAgICBUZXN0czog
aHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbAorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRBdWRpb091dHB1
dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1
dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvT3V0cHV0SGFzaGVkRGV2aWNl
SWQgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGw6CisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERl
dmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJ
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRw
dXREZXZpY2VJZE92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
QVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNl
Q2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRBdWRpb091dHB1dERldmljZUlkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Lmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lz
dGVudFN0YXRlKToKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2VzcyBpbnN0ZWFkIG9mIFVJ
UHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBpbiBXZWJQcm9jZXNzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDgyMGVkNDNmNWQ2MzEyZmE2OTZkN2I4NWJhOGVlMDQ0OTBiZDFiZDMuLjY1YjI3
ZjFiODE0ZGVhMmJjODNlMzRmNDcwZjZkNmQyMTE4ZWIxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50LnNldFNpbmtJZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2Njk2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2Vz
cyBpbnN0ZWFkIG9mIFVJUHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBp
biBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHAKaW5kZXggYmU3MGFhYWJkOGU4MGQyZjdiNWNmNTJlNzMyNzE1ZjYx
ODM5OGYwZS4uODUxOTNhYzg1ZTE0YTBmNDRkNDFjZWU0Nzk5YjM3OWRkYWQyYjBiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNw
cApAQCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKGNv
bnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICBib29sIGNh
bkFjY2Vzc01pY3JvcGhvbmUgPSBjaGVja01pY3JvcGhvbmVBY2Nlc3MoZG9jdW1lbnQpOwogICAg
IGJvb2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2Vzcyhkb2N1bWVudCk7CiAK
KyAgICBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5jbGVhcigpOworCiAgICAg
VmVjdG9yPFJlZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VzOwogICAgIGZvciAoYXV0byYgbmV3
RGV2aWNlIDogbmV3RGV2aWNlcykgewogICAgICAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUg
JiYgbmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bo
b25lKQpAQCAtMjE0LDYgKzIxNiw5IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2Vz
KGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICAgICAg
YXV0byBkZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZUlESGFzaFNh
bHQpOwogICAgICAgICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9ncm91
cElkSGFzaFNhbHQpOwogCisgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlNwZWFrZXIpCisgICAgICAgICAgICBtX2F1ZGlvT3V0cHV0RGV2
aWNlSWRUb1BlcnNpc3RlbnRJZC5hZGQoZGV2aWNlSWQsIG5ld0RldmljZS5wZXJzaXN0ZW50SWQo
KSk7CisKICAgICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3
RGV2aWNlLmxhYmVsKCksIFdURk1vdmUoZGV2aWNlSWQpLCBXVEZNb3ZlKGdyb3VwSWQpLCB0b01l
ZGlhRGV2aWNlSW5mb0tpbmQobmV3RGV2aWNlLnR5cGUoKSkpKTsKICAgICB9CiAgICAgcHJvbWlz
ZS5yZXNvbHZlKGRldmljZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggNTgyODY3MjUzY2FkMTY5OGQ4MDE1ZjY2ZWE1ZjUz
NGY5MmY1MzlkMS4uNmY5MDYyOGFiMGNjOGYwYTM0MTExMzRmODc5N2U2NGJmYzgxNmYzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5o
CkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51
bWVyYXRlRGV2aWNlc1Byb21pc2UmJik7CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFp
bnRzIGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7CiAKKyAgICBTdHJpbmcgZGV2aWNlSWRUb1Bl
cnNpc3RlbnRJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKSBjb25zdCB7IHJldHVybiBtX2F1ZGlv
T3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5nZXQoZGV2aWNlSWQpOyB9CisKICAgICB1c2lu
ZyBSZWZDb3VudGVkPE1lZGlhRGV2aWNlcz46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPE1l
ZGlhRGV2aWNlcz46OmRlcmVmOwogCkBAIC0xMzAsNiArMTMyLDkgQEAgcHJpdmF0ZToKIAogICAg
IE9wdGlvblNldDxHZXN0dXJlQWxsb3dlZFJlcXVlc3Q+IG1fcmVxdWVzdFR5cGVzRm9yQ3VycmVu
dEdlc3R1cmU7CiAgICAgV2Vha1B0cjxVc2VyR2VzdHVyZVRva2VuPiBtX2N1cnJlbnRHZXN0dXJl
VG9rZW47CisKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2F1ZGlvT3V0cHV0RGV2aWNl
SWRUb1BlcnNpc3RlbnRJZDsKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0MjNjNmZiMGE2ZmEwODY5NmIyMS4u
ZTg5NTQ4YmEwZWYzYTU4YjhjNDUzZWNlNmE5Yzk2OTE0YjA3NGRjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgiCiAjaW5j
bHVkZSAiTWVkaWFEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1lZGlhRXJyb3IuaCIKICNpbmNsdWRl
ICJNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmgiCkBAIC03OCw2ICs3OSw3IEBACiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVk
ZSAiTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRvck1lZGlhRGV2aWNl
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUE9ESW50ZXJ2
YWxUcmVlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjg0Myw2ICsyODQ1LDU5IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6ZmFzdFNlZWsoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogICAgIHNl
ZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWU6Onplcm9U
aW1lKCksIHRydWUpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1N0cmluZyBIVE1M
TWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
YXVkaW9PdXRwdXRQZXJzaXN0ZW50RGV2aWNlSWQ7Cit9CisKK3ZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2V0QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQoKS5k
b21XaW5kb3coKTsKKyAgICBhdXRvKiBtZWRpYURldmljZXMgPSB3aW5kb3cgPyBOYXZpZ2F0b3JN
ZWRpYURldmljZXM6Om1lZGlhRGV2aWNlcyh3aW5kb3ctPm5hdmlnYXRvcigpKSA6IG51bGxwdHI7
CisgICAgaWYgKCFtZWRpYURldmljZXMpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFkb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgJiYgZG9jdW1l
bnQoKS50b3BEb2N1bWVudCgpLnNldHRpbmdzKCkuc3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNl
ckdlc3R1cmUoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxv
d2VkRXJyb3IsICJBIHVzZXIgZ2VzdHVyZSBpcyByZXF1aXJlZCJfcyB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmIChkZXZpY2VJZC5pc0VtcHR5KCkpCisgICAgICAgIGRldmlj
ZUlkID0geyB9OworCisgICAgaWYgKGRldmljZUlkID09IG1fYXVkaW9PdXRwdXRIYXNoZWREZXZp
Y2VJZCkgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFN0cmluZyBwZXJzaXN0ZW50SWQ7CisgICAgaWYgKCFkZXZpY2VJZC5pc051bGwo
KSkgeworICAgICAgICBwZXJzaXN0ZW50SWQgPSBtZWRpYURldmljZXMtPmRldmljZUlkVG9QZXJz
aXN0ZW50SWQoZGV2aWNlSWQpOworICAgICAgICBpZiAocGVyc2lzdGVudElkLmlzTnVsbCgpKSB7
CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yIH0p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9hdWRpb091
dHB1dFBlcnNpc3RlbnREZXZpY2VJZCA9IFdURk1vdmUocGVyc2lzdGVudElkKTsKKyAgICBpZiAo
bV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsK
KworICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRh
c2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgZGV2aWNlSWQgPSBXVEZNb3ZlKGRldmljZUlkKSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKCkgbXV0YWJsZSB7CisgICAgICAgIG1fYXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJZCA9
IFdURk1vdmUoZGV2aWNlSWQpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsK
K30KKyNlbmRpZgorCitTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2VJ
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXVkaW9PdXRwdXRQZXJzaXN0ZW50RGV2aWNlSWQ7
Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vlayhjb25zdCBNZWRpYVRpbWUmIHRpbWUp
CiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0aW1lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYWIyYjAwMTFiNTk0MzllYTUxZThhYTNlMjA4ZmUw
MTJjNjNkMTJlZC4uZDBkZWZiMTc1NGZhOTBiODNhN2NjNDI5NTg3OWI1MTRmMjM0ZWRhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTI2OCw2ICsyNjgsMTEgQEAg
cHVibGljOgogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdDsKICAgICBkb3Vi
bGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZSgpIGNvbnN0OworICAgIHZvaWQgc2V0QXVk
aW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKKyNlbmRpZgorCiAgICAgdXNpbmcgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpCdWZmZXJp
bmdQb2xpY3k7CiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koQnVmZmVyaW5nUG9saWN5KTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBCdWZmZXJpbmdQb2xpY3kgYnVmZmVyaW5nUG9saWN5KCkgY29u
c3Q7CkBAIC01ODAsNiArNTg1LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0T3ZlcnJpZGVQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpOwog
ICAgIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlKTsK
IAorICAgIFN0cmluZyBhdWRpb091dHB1dEhhc2hlZERldmljZUlkKCkgY29uc3QgeyByZXR1cm4g
bV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkOyB9CisKIHByb3RlY3RlZDoKICAgICBIVE1MTWVk
aWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoSW5pdGlhbGl6YXRpb24oKTsKQEAgLTYw
NCw2ICs2MTEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKIAogICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1bWVudFNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBj
b25zdCBmaW5hbDsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZpY2VJZDsgfQogCiAg
ICAgYm9vbCBtZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQg
c2V0TWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKGJvb2wpOwpAQCAtMTE5Nyw2
ICsxMjA2LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQbGF5aW5nVG9XaXJlbGVzc1Rhcmdl
dCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BsYXlpbmdPblNlY29uZFNjcmVlbiB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhhdmlvclJlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2Vz
dHVyZSB7IGZhbHNlIH07CisKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZp
Y2VJZDsKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkOwogfTsKIAogU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6OkF1dG9wbGF5
RXZlbnRQbGF5YmFja1N0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aWRsCmluZGV4IGI0MmQwZWEzNzEwNmI0NzJiYmM5Y2VkZjYwNzgzZmUwYTM5ZWZmYzkuLmFlMGE0
MmJlNDc4ZTdjYTM1ZDBlY2VlNTZmZWQ3NDBkYTZlODMyY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmlkbApAQCAtODYsNiArODYsMTEgQEAgdHlwZWRlZiAoCiAgICAg
dW5kZWZpbmVkIHBhdXNlKCk7CiAgICAgdW5kZWZpbmVkIGZhc3RTZWVrKHVucmVzdHJpY3RlZCBk
b3VibGUgdGltZSk7CiAKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlT
ZXR0aW5nPUV4cG9zZVNwZWFrZXJzJlBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uXSByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlOworICAgIFtDb25kaXRpb25h
bD1NRURJQV9TVFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVu
dFNwZWFrZXJTZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJ
ZF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzaW5rSWQ7CisgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NUUkVBTSwgRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50
U3BlYWtlclNlbGVjdGlvbl0gUHJvbWlzZTx1bmRlZmluZWQ+IHNldEF1ZGlvT3V0cHV0RGV2aWNl
KERPTVN0cmluZyBkZXZpY2VJZCk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgRW5h
YmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbiwg
SW1wbGVtZW50ZWRBcz1zZXRBdWRpb091dHB1dERldmljZV0gUHJvbWlzZTx1bmRlZmluZWQ+IHNl
dFNpbmtJZChET01TdHJpbmcgZGV2aWNlSWQpOworCiAgICAgLy8gY29udHJvbHMKICAgICBbQ0VS
ZWFjdGlvbnM9Tm90TmVlZGVkXSBhdHRyaWJ1dGUgYm9vbGVhbiBjb250cm9sczsKICAgICBhdHRy
aWJ1dGUgZG91YmxlIHZvbHVtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAxNzg5
N2VlMzA0YWViMjJiNTgyZmJkOTNiNGI5MjYxNDIwMjczYjZmLi40YmM2ODE2OTk4MGExMzMxNGU3
YmZlNGNlNjQ1MDNiOTUyZGZkOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC04
MjYsNiArODI2LDEyIEBAIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk6CiBleHBvc2VTcGVha2Vy
c0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKK3BlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9u
RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKworc3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNl
ckdlc3R1cmU6CisgIGluaXRpYWw6IHRydWUKKwogbWVkaWFEZXZpY2VJZGVudGlmaWVyU3RvcmFn
ZURpcmVjdG9yeToKICAgdHlwZTogU3RyaW5nCiAgIGNvbmRpdGlvbmFsOiBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCmluZGV4IDYzY2YzY2NlZTgxMTJlMTU1ZTE5MzgwNWE2NDQ4Y2U4ZGJhMWUzYTIuLjkw
MmY1ODk5N2Y3MjZjZmIxN2E2MjZiZDllOTQ2NWU1OWRkZWNiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTE2MDQsNiArMTYw
NCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5
bmFtaWNSYW5nZU1vZGUgbW9kZSkKICAgICBtX3ByaXZhdGUtPnNldFByZWZlcnJlZER5bmFtaWNS
YW5nZU1vZGUobW9kZSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNl
Q2hhbmdlZCgpCit7CisgICAgbV9wcml2YXRlLT5hdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsK
K30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogY29uc3QgTG9nZ2VyJiBNZWRpYVBsYXll
cjo6bWVkaWFQbGF5ZXJMb2dnZXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggZWEyNTdmMTJhY2YwOWUwYmJkZmIzMjliMTE1M2Nj
ZTUxYWNhZjRmMy4uZDQ2NzMxYTJiYWRmODg1NzAxODAxOTg4MTU2MjMyYzM0YjFmZGZlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0y
NzMsNiArMjczLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTZWN1cml0eU9yaWdpbkRhdGEg
ZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogCisgICAgdmly
dHVhbCBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQor
ICAgIHZpcnR1YWwgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IHsg
cmV0dXJuIHsgfTsgfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdmlydHVhbCBj
b25zdCB2b2lkKiBtZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgPSAwOwpAQCAt
NjMxLDYgKzYzNCwxMCBAQCBwdWJsaWM6CiAgICAgRHluYW1pY1JhbmdlTW9kZSBwcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VN
b2RlOyB9CiAgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5n
ZU1vZGUpOwogCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdDsKKyAgICBT
dHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3Q7CisgICAgdm9pZCBhdWRp
b091dHB1dERldmljZUNoYW5nZWQoKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRp
YVBsYXllckNsaWVudCYpOwogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50JiwgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyKTsKQEAgLTcwNSw2ICs3MTIsMTYg
QEAgcHVibGljOgogfTsKIAogCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxheWVyOjphdWRpb091dHB1
dERldmljZUlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YXVk
aW9PdXRwdXREZXZpY2VJZCgpIDogU3RyaW5nIHsgfTsKK30KKworaW5saW5lIFN0cmluZyBNZWRp
YVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgOiBT
dHJpbmcgeyB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDY3MGMwYTQ5NGMxMWEyNzM3NjA0Mjg0MTgzYzAwNzg4
ZDk3NTk3OGQuLjgxMjUzMzAyNzZkZDU0NGUxZmNhYmRhMTdkNjM2Y2JjZjg3YmFkNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCkBAIC0yODksNiArMjg5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIHsgfQor
CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIHsgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGFkZTA2MzJjOWY2Y2RjMGMxNGQ1ZGE4ODVjYTdi
NzQyNzhiYmQzZTMuLjg1Y2U4MWQxMDNiODVkMWQ0MjZiN2EzNDhkOGYwM2EwYmUzNjY0NTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTMxOCw2ICszMTgsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2V0U2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3RhdHVzKGJvb2wpOwogCiAgICAgdm9pZCBz
ZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpIGZpbmFsOworICAg
IHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICBSZXRhaW5QdHI8
QVZVUkxBc3NldD4gbV9hdkFzc2V0OwogICAgIFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBsYXll
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGFjMGY4ZmZhMDI4ODNlNGFhZmZmMzJiZjM4
MGY4ODIzMDAyYjU2MTUuLjhmNGU0MDNjZmIxMWVkZGE5NjAxNjViYWY5YmU2NTVmZjg4ZTk2M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtOTUzLDYgKzk1MywxMiBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKICAgICBpZiAo
bV9hdlBsYXllckl0ZW0pCiAgICAgICAgIHNldEFWUGxheWVySXRlbShtX2F2UGxheWVySXRlbS5n
ZXQoKSk7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgYXV0byBhdWRpb091dHB1dERldmljZUlk
ID0gcGxheWVyKCktPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGlmICghYXVk
aW9PdXRwdXREZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAgbV9hdlBsYXllci5nZXQoKS5hdWRp
b091dHB1dERldmljZVVuaXF1ZUlEID0gYXVkaW9PdXRwdXREZXZpY2VJZDsKKyNlbmRpZgorCiAg
ICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogfQogCkBAIC0zMjkzLDYgKzMyOTksMTUgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRQcmVmZXJyZWREeW5h
bWljUmFuZ2VNb2RlKER5bmFtaWNSYW4KICNlbmRpZgogfQogCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGlmICghbV9hdlBsYXllciB8fCAhcGxheWVyKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQg
PSBwbGF5ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZCgpOworI2VuZGlmCit9CisKIE5TQXJyYXkq
IGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBb
W05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgK
aW5kZXggMDliZjU1NzQ4NDMzMWQ1ODIyMGQyMGY1ZjIwMzMyOTZlNjljZWM0Mi4uOGNlM2I3YjQw
NWRmZGY5NzAyZjJmOTUxOGFkNjlkZDg1YmRmNzc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTI1NCw2ICsyNTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIHBlcmZv
cm1UYXNrQXRNZWRpYVRpbWUoRnVuY3Rpb248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKSBm
aW5hbDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAg
dm9pZCBlbnN1cmVMYXllcigpOwogICAgIHZvaWQgZGVzdHJveUxheWVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KaW5kZXggOGI5NDE1MDdjMDM4ODFjMDIxNmI0ZTc5MmUzOWRiMjZlMzU3
ZmRiOS4uN2IxMGRiNGM5ZjdiMzNiY2E1MjQ5MWI5NjQ5ZTZmMmRlMGRhZjJlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTE2Niw2ICsxMTY2LDEyIEBAIEFMTE9XX05FV19BUElf
V0lUSE9VVF9HVUFSRFNfRU5ECiAgICAgW2F1ZGlvUmVuZGVyZXIgc2V0Vm9sdW1lOm1fcGxheWVy
LT52b2x1bWUoKV07CiAgICAgW2F1ZGlvUmVuZGVyZXIgc2V0QXVkaW9UaW1lUGl0Y2hBbGdvcml0
aG06KG1fcGxheWVyLT5wcmVzZXJ2ZXNQaXRjaCgpID8gQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRo
bVNwZWN0cmFsIDogQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRobVZhcmlzcGVlZCldOwogCisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXRE
ZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFkZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAg
YXVkaW9SZW5kZXJlci5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gZGV2aWNlSWQ7CisjZW5k
aWYKKwogICAgIEB0cnkgewogICAgICAgICBbbV9zeW5jaHJvbml6ZXIgYWRkUmVuZGVyZXI6YXVk
aW9SZW5kZXJlcl07CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewpAQCAt
MTI3Niw2ICsxMjgyLDE3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphdWRp
b091dHB1dERldmljZUNoYW5nZWQoKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAoIW1f
cGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5h
dWRpb091dHB1dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBrZXkgOiBtX3NhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXJNYXAua2V5cygpKQorICAgICAgICAoKF9fYnJpZGdlIEFWU2FtcGxlQnVm
ZmVyQXVkaW9SZW5kZXJlciAqKWtleS5nZXQoKSkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9
IGRldmljZUlkOworI2VuZGlmCit9CisKIFdURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExv
Z01lZGlhU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCA4ZGU4OTVkN2IyNDEx
OGZkYjI4ZmFjMzljYjFiZmJlOThiOGY3NjEzLi42MzFmMzAzMWVhNDM4MGVhMzhkMWQ0NWFmNmIz
NDI5MDAwMjUwZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMTU5LDYgKzE1OSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
ZW5kZWQ7IH0KIAogICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZm
ZXJpbmdQb2xpY3kpIG92ZXJyaWRlOworICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2Vk
KCkgZmluYWw7CiAKICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBjdXJyZW50UmVhZHlTdGF0
ZSgpOwogICAgIHZvaWQgdXBkYXRlUmVhZHlTdGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tCmluZGV4IDJkYjUwYmI4OTU3NGVkYzM3YWQ5YzdjYzliYWJmY2MxOTM3MDMwMzYuLjBmYWI4
YjFkZTQwYjYzM2NiYjc2MDFmZGY2ODc0Njk4MjY0M2U4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0KQEAgLTg2Nyw3ICs4NjcsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkKIHsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZVZlY3RvciBjdXJyZW50VHJhY2tzID0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygp
OwogCi0gICAgYXV0byBzZXRBdWRpb1RyYWNrU3RhdGUgPSBbdGhpc10oQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbSYgdHJhY2ssIGludCBpbmRleCwgVHJhY2tTdGF0ZSBzdGF0ZSkKKyAgICBh
dXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOwor
ICAgIGF1dG8gc2V0QXVkaW9UcmFja1N0YXRlID0gW3RoaXMsICZkZXZpY2VJZF0oQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbSYgdHJhY2ssIGludCBpbmRleCwgVHJhY2tTdGF0ZSBzdGF0ZSkK
ICAgICB7CiAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICAgICAgY2FzZSBUcmFja1N0YXRl
OjpSZW1vdmU6CkBAIC04ODQsNiArODg1LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcygpCiAgICAgICAgICAgICB0cmFjay5zZXRWb2x1
bWUobV92b2x1bWUpOwogICAgICAgICAgICAgdHJhY2suc2V0TXV0ZWQobV9tdXRlZCk7CiAgICAg
ICAgICAgICB0cmFjay5zZXRFbmFibGVkKHRyYWNrLnN0cmVhbVRyYWNrKCkuZW5hYmxlZCgpICYm
ICF0cmFjay5zdHJlYW1UcmFjaygpLm11dGVkKCkpOworICAgICAgICAgICAgaWYgKCFkZXZpY2VJ
ZC5pc051bGwoKSkKKyAgICAgICAgICAgICAgICB0cmFjay5zZXRBdWRpb091dHB1dERldmljZUlk
KGRldmljZUlkKTsKKwogICAgICAgICAgICAgaWYgKHBsYXlpbmcoKSkKICAgICAgICAgICAgICAg
ICB0cmFjay5wbGF5KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwMTcsNiArMTAyMSwxNSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0QnVmZmVyaW5n
UG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZQogICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci0+Zmx1c2hBbmRSZW1vdmVJbWFnZSgpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBp
ZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxh
eWVyLT5hdWRpb091dHB1dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrIDog
bV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQorICAgICAgICBhdWRpb1RyYWNrLT5zZXRBdWRpb091
dHB1dERldmljZUlkKGRldmljZUlkKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYg
ZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlci5oCmluZGV4IDY0ODlmOWRhN2M1NjI2YzIwMjk3ODUzZjFhMDFlOWVhZmJl
NTYwMGIuLjQ4ZTVmMzI3MWFiNDhjN2EyNzk2MDVhMzUxNGFiNjlkMmE4ZGE1Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgZmxvYXQgdm9sdW1lKCkg
Y29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBT
dHJpbmcmKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHZvaWQgc2V0TG9nZ2Vy
KGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKICNlbmRpZgpAQCAtMTA5LDYgKzExMSwxMCBA
QCBpbmxpbmUgY29uc3QgY2hhciogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmxvZ0Ns
YXNzTmFtZSgpIGNvbnN0CiB9CiAjZW5kaWYKIAoraW5saW5lIHZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJikKK3sK
K30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKaW5kZXggYTE4NWNkNDcwMzYzZTYwNWY5MGQ0OTlkZTAz
ODA5Nzk2YWM5YzVhYy4uNmJlMGExOGYzMDU4NjNjYWVmYmU4OWViMTZlNjhiOGRlNzI0NzRmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKQEAgLTk3LDYgKzk3LDEx
IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW06OnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
ZCkKK3sKKyAgICBtX3JlbmRlcmVyLT5zZXRBdWRpb091dHB1dERldmljZUlkKGRldmljZUlkKTsK
K30KKwogZmxvYXQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dm9sdW1lKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9yZW5kZXJlci0+dm9sdW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtLmgKaW5kZXggYTQ4NWMxOGNhODdhMWM2ZjMyYTYxOWVlOGNkYzVhM2M4ZWFk
NzRlMy4uOTNhNDA2NTNjMTdkYzU3ZjhkOGNkMjgwMjk3Njk5OWU5NDhjYjJiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAg
ICAgfkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKTsKIAogICAgIHZvaWQgc2V0VHJhY2tJ
bmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CisgICAgdm9pZCBzZXRBdWRpb091
dHB1dERldmljZUlkKGNvbnN0IFN0cmluZyYpOwogCiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAKaW5k
ZXggNzYyMzJiNzlkOWQwN2ViMWI4OWM0MmViNTM0NGRkYzMwNTQyYWUwOC4uM2QzOTQwMTZmMWIw
MjU3OWJiNGQyY2VkNDdiYjUyMTE0NDY2ODBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcApAQCAtNjcsMTEgKzY3LDE4IEBAIHZv
aWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICAgICAgbV9kYXRhU291cmNlLT5zZXRWb2x1bWUodm9sdW1lKTsKIH0KIAordm9p
ZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRBdWRpb091dHB1dERldmlj
ZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQpCit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBj
cmVhdGUgYSB1bml0IGZvciBvdXJzZWx2ZXMgaGVyZSBvciB1c2UgdGhlIGRlZmF1bHQgdW5pdCBp
ZiBkZXZpY2VJZCBpcyBtYXRjaGluZy4KKyAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNpbmdsZXRvbigpLnNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoZGV2aWNlSWQpOworICAg
IG1fc2hvdWxkUmVzZXQgPSB0cnVlOworfQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgc2FtcGxlVGltZSwgY29u
c3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlv
bigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7
Ci0gICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlv
bigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNjcmlwdGlvbikg
eworICAgIGlmICghbV9kYXRhU291cmNlIHx8IG1fc2hvdWxkUmVzZXQgfHwgIW1fZGF0YVNvdXJj
ZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24o
KSAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBs
ZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyLCAqdGhpcyk7
CiAKICAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KHRvQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkpIHsKQEAgLTk1LDYgKzEwMiw3IEBAIHZvaWQgQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFU
aW1lJiBzYW1wbGVUaW1lCiAgICAgICAgICAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNpbmdsZXRvbigpLmFkZFNvdXJjZShXVEZNb3ZlKG5ld1NvdXJjZSkpOwogICAgICAg
ICB9KTsKICAgICAgICAgbV9kYXRhU291cmNlID0gV1RGTW92ZShkYXRhU291cmNlKTsKKyAgICAg
ICAgbV9zaG91bGRSZXNldCA9IGZhbHNlOwogICAgIH0KIAogICAgIG1fZGF0YVNvdXJjZS0+cHVz
aFNhbXBsZXMoc2FtcGxlVGltZSwgYXVkaW9EYXRhLCBzYW1wbGVDb3VudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAppbmRleCA1MWFjNDMz
N2M0ZTAzNThmZGRjYjRlYTg1NDdmMmFiYjBiYzBmYTg3Li41MDI1NTYxNjc0ZDA1ZWEwZThkZTBk
ZTg1ZTQyYjVlYzQ0NTYxNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckNvY29hLmgKQEAgLTUzLDkgKzUzLDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzdG9wKCkgZmluYWw7CiAgICAgdm9pZCBjbGVhcigpIGZpbmFsOwogICAgIHZvaWQgc2V0Vm9s
dW1lKGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3Qg
U3RyaW5nJikgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uPiBtX291dHB1dERlc2NyaXB0aW9uOwogICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFT
b3VyY2U+IG1fZGF0YVNvdXJjZTsKKyAgICBib29sIG1fc2hvdWxkUmVzZXQgeyBmYWxzZSB9Owog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0LmNwcAppbmRleCBkYWM3NGExMjU1YzVlNTRhNTIzNDM2ZmU2OWE4ZTQ0NGMyZTcwYjE1Li4x
MTRhMzQwYmZiZTQ3N2QzNzM2ODM4NGIxM2JjMmU4NWQ2MDkxZGQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMzYsNiArMzYs
MTEgQEAKICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0F1ZGlvVG9vbGJveFNQSS5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJDb3JlQXVk
aW9DYXB0dXJlRGV2aWNlLmgiCisjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXIuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDYgKzU2LDI2IEBAIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdDo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdCgpCiAg
ICAgc3RvcCgpOwogfQogCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6
c2V0QXVkaW9PdXRwdXREZXZpY2VJZChjb25zdCBTdHJpbmcmIGRldmljZUlEKQoreworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKKyAgICBp
ZiAoIWRldmljZSB8fCBtX2RldmljZUlEID09IGRldmljZS0+ZGV2aWNlSUQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYm9vbCBzaG91bGRSZXN0YXJ0ID0gbV9pc1N0YXJ0ZWQ7CisgICAgaWYg
KG1faXNTdGFydGVkKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2RldmljZUlEID0gZGV2aWNl
LT5kZXZpY2VJRCgpOworCisgICAgaWYgKHNob3VsZFJlc3RhcnQpCisgICAgICAgIHN0YXJ0KCk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZXZpY2VJRCk7CisjZW5kaWYKK30KKwogdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZShSZWY8QXVkaW9TYW1w
bGVEYXRhU291cmNlPiYmIHNvdXJjZSkKIHsKICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZSIpOwpAQCAtMTYxLDYgKzE4
NiwxNiBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVk
aW9Vbml0SWZOZWVkZWQoKQogICAgIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IGlmIChtX2RldmljZUlEKSB7CisgICAgICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHko
cmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1
ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2RldmljZUlEKSk7
CisgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXQg
dW5hYmxlIHRvIHNldCB1bml0IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludClt
X2RldmljZUlELCAoaW50KWVycm9yLCAoY2hhciopJmVycm9yKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVj
dCBjYWxsYmFjayA9IHsgaW5wdXRQcm9jLCBudWxscHRyIH07CiAgICAgZXJyb3IgPSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJD
YWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2Fs
bGJhY2spKTsKICAgICBpZiAoZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuaAppbmRleCA0NDA3NmE1NmVjOTc0ZjliYjg3MzQyYmZjNzQ4
MzBjODU5Yzc3MmY2Li40NTMxZWYzZDMzOWRjOGE1MzM4OTEyNGI3ZWNkZGUyMDZmNTI3YzA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCkBA
IC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgdm9pZCBzdG9w
KCk7CiAKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlSWQoY29uc3QgU3RyaW5nJik7CisK
ICAgICB2b2lkIGFkZFNvdXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmKTsKICAgICB2
b2lkIHJlbW92ZVNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKIApAQCAtNjgsNiArNzAs
OSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRVcGRhdGVSZW5kZXJTb3VyY2VzIHsgZmFs
c2UgfTsKICAgICBMb2NrIG1fc291cmNlc0xvY2s7CiAgICAgYm9vbCBtX2lzU3RhcnRlZCB7IGZh
bHNlIH07CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHVpbnQzMl90IG1fZGV2aWNlSUQgeyAwIH07
CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1
OTEwNjEyMWE2NjVlMThlZDQ5NjY4MWU3ZmRkMzVkYzcyYTBiMGU3Li5mNDM0Nzc4NjhlYTk5ZWQ3
Y2FkNWQ2ZmFmMjBhODc1MWE5ZDcwMGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC01NjcsNiArNTY3LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50
U3RhdGUoUGFnZSYgcGFnZSkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQodHJ1ZSk7CiAgICAgcGFnZS5zZXR0aW5n
cygpLnNldFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkKHRydWUpOwogI2VuZGlmCisgICAgcGFnZS5z
ZXR0aW5ncygpLnNldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKGZhbHNlKTsK
IAogICAgIHBhZ2Uuc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oMF9zKTsKICAgICBwYWdl
LnNldEZ1bGxzY3JlZW5JbnNldHMoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGVkZjU4YmVkYTJlOWQwNGY1
ODIyMWRhYWRlY2JlMjVmZTAxNjBiMDAuLjIxZDBkMzcxNmYzYWU3N2ZiYWJiMDQ5OWIxODA4ODFm
ZjM0ZGJjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM4LDYgKzEzOCwxNCBAQCBFeHBvc2VTcGVha2Vyc0Vu
YWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHNwZWFrZXIgZGV2aWNl
IHNlbGVjdGlvbiIKICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX1JUQykKIAorUGVyRWxlbWVudFNw
ZWFrZXJTZWxlY3Rpb25FbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFs
c2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBbGxvdyBwZXIgbWVkaWEgZWxlbWVudCBzcGVha2Vy
IGRldmljZSBzZWxlY3Rpb24iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHBl
ciBtZWRpYSBlbGVtZW50IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgY2F0ZWdvcnk6IGV4
cGVyaW1lbnRhbAorICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQorCiBWUDlEZWNvZGVyRW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWUDlEZWNvZGVyRW5h
YmxlZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNGI4ODUwMGM5Y2FkMThhOTBjYWM4MDAyNDFhYWEyMTk2MjQ4NDlhNi4u
OTA4ODRhZWVmMGZhMGMyMGIxMGVjMDgzN2RlNDY4MzE3NGE0MTBkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDIwLTA5LTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNraXAgbmV3IHRlc3Rz
IG9uIFdLMS4KKworICAgICAgICAqIGh0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0
cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9hdWRpby1vdXRwdXQv
c2V0U2lua0lkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2VzcyBpbnN0ZWFkIG9mIFVJUHJvY2VzcyB0
byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBpbiBXZWJQcm9jZXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmNzg5NWVlMzRkOTgxNWFlYmZhY2QzMWU1ZjA5MzNmYjZi
OTA0Mzg3Li4zYmYwNWJlYjY2MmZkNTRhOTUzYmExMGY3NzVlOTE0NWRmYWVmNDJkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wOS0xOCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IEhUTUxNZWRpYUVsZW1lbnQuc2V0U2lua0lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb246
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9NRVRBLnltbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0
dHBzLndpbmRvdy5qczogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlv
LW91dHB1dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3czYy1pbXBvcnQu
bG9nOiBBZGRlZC4KKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2VzcyBpbnN0ZWFkIG9mIFVJ
UHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBpbiBXZWJQcm9jZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRT
aW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZDUzNzIyZTliMTgwMWEzZTM5
ZWU5OWM1YmE2ZjdiMjBkODMwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQgQEAKKworUEFTUyBzZXRTaW5rSWQgcmVxdWlyZXMgdXNlciBnZXN0dXJlIAorUEFTUyBzZXRT
aW5rSWQgYW5kIHNpbmtJZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVk
aW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVk
aW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhMjFiNTQxN2Y2ZDFk
Zjk4YzVkOGJiZGU4ZjRjOTBjMGE4NWY0YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwz
NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IHNldFNpbmtJZCBiZWhh
dmlvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJEb21pbmlxdWUgSGF6YWVs
LU1hc3NpZXV4IiBocmVmPSJtYWlsdG86ZG9tQHczLm9yZyIvPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL3d3dy53My5vcmcvVFIvYXVkaW8tb3V0cHV0LyNkb20taHRtbG1lZGlhZWxl
bWVudC1zZXRzaW5raWQiPgorPC9oZWFkPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitjb25zdCBhdWRpbyA9
IG5ldyBBdWRpbygpOworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgaWYgKCF3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICByZXR1cm47CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNwZWFr
ZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKHRydWUpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4geyBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNl
ckdlc3R1cmUoZmFsc2UpOyB9KTsKKworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQs
ICJOb3RBbGxvd2VkRXJyb3IiLCBhdWRpby5zZXRTaW5rSWQoIiIpKTsKK30sICJzZXRTaW5rSWQg
cmVxdWlyZXMgdXNlciBnZXN0dXJlIik7CisKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICAgIGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW8gOiB0
cnVlIH0pOworICAgIGNvbnN0IGxpc3QgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVu
dW1lcmF0ZURldmljZXMoKTsKKyAgICBjb25zdCBvdXRwdXREZXZpY2VzTGlzdCA9IGxpc3QuZmls
dGVyKCh7a2luZH0pID0+IGtpbmQgPT0gImF1ZGlvb3V0cHV0Iik7CisgICAgYXNzZXJ0X25vdF9l
cXVhbHMob3V0cHV0RGV2aWNlc0xpc3QubGVuZ3RoLCAwLCAibWVkaWEgZGV2aWNlIGxpc3QgaW5j
bHVkZXMgYXQgbGVhc3Qgb25lIGF1ZGlvIG91dHB1dCBkZXZpY2UiKTsKKworICAgIGxldCBwcm9t
aXNlID0gYXVkaW8uc2V0U2lua0lkKG91dHB1dERldmljZXNMaXN0WzBdLmRldmljZUlkKTsKKwor
ICAgIGFzc2VydF9lcXVhbHMoYXVkaW8uc2lua0lkLCAiIik7CisgICAgYXdhaXQgcHJvbWlzZTsK
KyAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvLnNpbmtJZCwgb3V0cHV0RGV2aWNlc0xpc3RbMF0uZGV2
aWNlSWQpOworfSwgInNldFNpbmtJZCBhbmQgc2lua0lkIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9u
cy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0
YXRpb25zLmpzb24KaW5kZXggODVjZWIzNWUxNzkyOGQ3YTE2OTA2MGZmNDRlYjBiNDRkZmU0NzA1
Mi4uYWM2MWU2OGQ1Y2Y3ZmY4ZTE4MDhiNWEzM2NiZjRhOTExMzdlMzdiNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpz
b24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0
YXRpb25zLmpzb24KQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Fw
bmciOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXBwLXVyaSI6ICJza2lwIiwg
CiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hc3N1bXB0aW9ucyI6ICJza2lwIiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQiOiAic2tpcCIsIAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvYXVkaW8tb3V0cHV0IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvYXV4Y2xpY2siOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3Vu
ZC1mZXRjaCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JhdHRlcnktc3Rh
dHVzIjogInNraXAiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L01FVEEueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjZhN2Q0ZDA2MjU5MTE3YWY4ZmI4NDNmNmE4ZDI1MmJhYzAxYThmMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8t
b3V0cHV0L01FVEEueW1sCkBAIC0wLDAgKzEsNCBAQAorc3BlYzogaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL21lZGlhY2FwdHVyZS1vdXRwdXQvCitzdWdnZXN0ZWRfcmV2aWV3ZXJzOgorICAtIGd1aWRv
dQorICAtIGphbi1pdmFyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1
ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDAzOTA2ZTJlMTkyMWY4MGY5YTY4ZTlmM2RjOWU5OTY1ZGFiZGY3YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8t
b3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2
IEBACisKK1BBU1MgaWRsX3Rlc3Qgc2V0dXAgCitQQVNTIGlkbF90ZXN0IHZhbGlkYXRpb24gCitQ
QVNTIFBhcnRpYWwgaW50ZXJmYWNlIEhUTUxNZWRpYUVsZW1lbnQ6IG9yaWdpbmFsIGludGVyZmFj
ZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MTWVkaWFFbGVtZW50OiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZl
bnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEhUTUxFbGVtZW50IGlu
Y2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlIAorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q29udGVudEVkaXRhYmxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRN
TE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEVsZW1lbnQgaW5j
bHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEVsZW1lbnQg
aW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZSAKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlIAorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUgCitQQVNTIEhUTUxNZWRpYUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2lua0lk
IAorUEFTUyBIVE1MTWVkaWFFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHNldFNpbmtJZChE
T01TdHJpbmcpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQv
aWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2Iz
YTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5o
dHRwcy53aW5kb3cuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJl
ZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVz
dCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ3Y2RiZDA3NjgzMzQ4MWI1M2YzNWIyNmQ1ZWUwMTZmZDcwYzQxMTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91
dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcwpAQCAtMCwwICsxLDIwIEBACisvLyBNRVRB
OiBzY3JpcHQ9L3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMKKy8vIE1FVEE6IHNjcmlwdD0vcmVz
b3VyY2VzL2lkbGhhcm5lc3MuanMKKworLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2Fw
dHVyZS1vdXRwdXQvCisKKyd1c2Ugc3RyaWN0JzsKKworaWRsX3Rlc3QoCisgIFsnYXVkaW8tb3V0
cHV0J10sCisgIFsnbWVkaWFjYXB0dXJlLXN0cmVhbXMnLCAnaHRtbCcsICdkb20nXSwKKyAgaWRs
X2FycmF5ID0+IHsKKyAgICBzZWxmLmF1ZGlvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYXVk
aW8nKTsKKyAgICBzZWxmLnZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsK
KyAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMoeworICAgICAgSFRNTEF1ZGlvRWxlbWVudDogWydh
dWRpbyddLAorICAgICAgSFRNTFZpZGVvRWxlbWVudDogWyd2aWRlbyddLAorICAgICAgTWVkaWFE
ZXZpY2VzOiBbJ25hdmlnYXRvci5tZWRpYURldmljZXMnXSwKKyAgICB9KTsKKyAgfQorKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVk
aW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZTE3MzIzMjQyMTIyYWI5YzI3M2MyMjk3OGIyYjlj
ODNmZTY1MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIHNldFNpbmtJZCBvbiBkZWZhdWx0IGF1ZGlvIG91dHB1
dCBzaG91bGQgYWx3YXlzIHdvcmsgCitQQVNTIHNldFNpbmtJZCBmYWlscyB3aXRoIE5vdEZvdW5k
RXJyb3Igb24gbWFkZSB1cCBkZXZpY2VpZCAKK0ZBSUwgTGlzdCBkZXZpY2UsIHNldFNpbmtJZCBz
aG91bGQgYmUgYWxsb3dlZCBvbiB0aGUgZGVmYXVsdCwgdGhlIHJlc3Qgb2YgdGhlIGRldmljZXMg
d2lsbCBnZXQgYSBOb3RBbGxvd2VkRXJyb3IgYXNzZXJ0X25vdF9lcXVhbHM6IG1lZGlhIGRldmlj
ZSBsaXN0IGluY2x1ZGVzIGF0IGxlYXN0IG9uZSBhdWRpbyBvdXRwdXQgZGV2aWNlIGdvdCBkaXNh
bGxvd2VkIHZhbHVlIDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRT
aW5rSWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMWY3MDNhOTM1MGJmNTU3ZjBkMzg5MTFhMDlj
MDlhOWQwMmVhYTNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSw0NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IHNldFNp
bmtJZCBiZWhhdmlvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJEb21pbmlx
dWUgSGF6YWVsLU1hc3NpZXV4IiBocmVmPSJtYWlsdG86ZG9tQHczLm9yZyIvPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL3d3dy53My5vcmcvVFIvYXVkaW8tb3V0cHV0LyNkb20taHRt
bG1lZGlhZWxlbWVudC1zZXRzaW5raWQiPgorPC9oZWFkPgorPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitjb25z
dCBhdWRpbyA9IG5ldyBBdWRpbygpOworCitwcm9taXNlX3Rlc3QodCA9PiBhdWRpby5zZXRTaW5r
SWQoIiIpLCAic2V0U2lua0lkIG9uIGRlZmF1bHQgYXVkaW8gb3V0cHV0IHNob3VsZCBhbHdheXMg
d29yayIpOworCitwcm9taXNlX3Rlc3QodCA9PiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJOb3RG
b3VuZEVycm9yIiwgYXVkaW8uc2V0U2lua0lkKCJub25leGlzdGVudF9kZXZpY2VfaWQiKSksCisg
ICJzZXRTaW5rSWQgZmFpbHMgd2l0aCBOb3RGb3VuZEVycm9yIG9uIG1hZGUgdXAgZGV2aWNlaWQi
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBsaXN0ID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CisgIGNvbnN0IG91dHB1dERl
dmljZXNMaXN0ID0gbGlzdC5maWx0ZXIoKHtraW5kfSkgPT4ga2luZCA9PSAiYXVkaW9vdXRwdXQi
KTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMob3V0cHV0RGV2aWNlc0xpc3QubGVuZ3RoLCAwLAorICAg
ICJtZWRpYSBkZXZpY2UgbGlzdCBpbmNsdWRlcyBhdCBsZWFzdCBvbmUgYXVkaW8gb3V0cHV0IGRl
dmljZSIpOworCisgIGxldCBhY2NlcHRlZERldmljZXMgPSAwOworICBmb3IgKGNvbnN0IHtkZXZp
Y2VJZH0gb2Ygb3V0cHV0RGV2aWNlc0xpc3QpIHsKKyAgICBjb25zdCB7ZGV2aWNlSWR9ID0gb3V0
cHV0RGV2aWNlc0xpc3RbMF07CisgICAgY29uc3QgcDEgPSBhdWRpby5zZXRTaW5rSWQoZGV2aWNl
SWQpOworICAgIGFzc2VydF9lcXVhbHMoYXVkaW8uc2lua0lkLCAiIiwgImJlZm9yZSBpdCByZXNv
bHZlcywgc2V0U2lua0lkIGlzIHVuY2hhbmdlZCIpOworICAgIHRyeSB7CisgICAgICBsZXQgciA9
IGF3YWl0IHAxOworICAgICAgYXNzZXJ0X2VxdWFscyhhY2NlcHRlZERldmljZXMsIDAsICJvbmx5
IHRoZSBkZWZhdWx0IHNpbmsgZGV2aWNlIGNhbiBiZSBzZXQiKTsKKyAgICAgIGFjY2VwdGVkRGV2
aWNlcysrOworICAgICAgYXNzZXJ0X2VxdWFscyhyLCB1bmRlZmluZWQsICJzZXRTaW5rSWQgcmVz
b2x2ZXMgd2l0aCB1bmRlZmluZWQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYXVkaW8uc2lua0lk
LCBkZXZpY2VJZCwgIndoZW4gaXQgcmVzb2x2ZXMsIHNldFNpbmtJZCB1cGRhdGVzIHNpbmtJZCB0
byB0aGUgcmVxdWVzdGVkIGRldmljZUlkIik7CisgICAgICByID0gYXdhaXQgYXVkaW8uc2V0U2lu
a0lkKGRldmljZUlkKTsKKyAgICAgIGFzc2VydF9lcXVhbHMociwgdW5kZWZpbmVkLCAicmVzZXR0
aW5nIHNpbmtpZCBvbiBzYW1lIGN1cnJlbnQgdmFsdWUgc2hvdWxkIGFsd2F5cyB3b3JrIik7Cisg
ICAgICByID0gYXdhaXQgYXVkaW8uc2V0U2lua0lkKCIiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
ciwgdW5kZWZpbmVkLCAicmVzZXR0aW5nIHNpbmtpZCBvbiBkZWZhdWx0IGF1ZGlvIG91dHB1dCBz
aG91bGQgYWx3YXlzIHdvcmsiKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICBhc3NlcnRfZXF1
YWxzKGUubmFtZSwgIk5vdEFsbG93ZWRFcnJvciIsICJOb24tZGVmYXVsdCBkZXZpY2VzIGFyZSBm
YWlsaW5nIHdpdGggTm90QWxsb3dlZCBlcnJvciIpOworICAgIH0KKyAgfQorfSwgIkxpc3QgZGV2
aWNlLCBzZXRTaW5rSWQgc2hvdWxkIGJlIGFsbG93ZWQgb24gdGhlIGRlZmF1bHQsIHRoZSByZXN0
IG9mIHRoZSBkZXZpY2VzIHdpbGwgZ2V0IGEgTm90QWxsb3dlZEVycm9yIik7CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9hdWRpby1vdXRwdXQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44MjNjNTE1Y2VmNmVhOWQyYzhhMzI1Njc5NjkyYWRhYTgxMTVjZDEwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1v
dXRwdXQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1
dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC1tYW51YWwuaHR0cHMuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0
cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjdjZTFkMzc5M2IzYTRiMDBlMWYxODdiMDUyMzRiNzhm
NmY3NDlkZS4uNGVhMzliM2M3ZjQ2NGZmMTA3ZGE2ZWU0ZDI4M2FjOTQ1ZDA1YjQ5MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjUsNiAr
NjUsOSBAQCBpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctTW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZC5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1n
ZXRVc2VyTWVkaWEtcGVuZGluZy1wcm9taXNlLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLW1lZGlhc3RyZWFtLmh0bWwgWyBTa2lwIF0KIAoraHR0cC93cHQv
YXVkaW8tb3V0cHV0IFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1
ZGlvLW91dHB1dCBbIFNraXAgXQorCiAjIERhdGFsaXN0IGlzIHVuc3VwcG9ydGVkIGluIFdLMQog
YWNjZXNzaWJpbGl0eS9kYXRhbGlzdC5odG1sIFsgV29udEZpeCBdCiBmYXN0L2Zvcm1zL2RhdGFs
aXN0IFsgV29udEZpeCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDVjYjM3MDg3ZWQxMmFjMDYyZjZlNGExZjVkOGQ0YmExYWY2ZjgxOGUuLmI1ZDZjMDNj
NDQ5ZTNjYzFhMzFkZjJmMjM4NWQwNzI5NzJkN2U2YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC04NTksNiArODU5LDkgQEAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcyBbIFNraXAgXQogaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zdHJlYW0gWyBTa2lwIF0KIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWdldFVzZXJNZWRpYS1wZW5kaW5nLXByb21pc2UuaHRtbCBbIFNraXAgXQogCitodHRw
L3dwdC9hdWRpby1vdXRwdXQgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvYXVkaW8tb3V0cHV0IFsgU2tpcCBdCisKICMgbmVlZHMgZW5oYW5jZWQgZXZlbnRTZW5kZXIu
Y29udGV4dE1lbnUoKSByZXR1cm4gdmFsdWUKICN3ZWJraXQub3JnL2IvNDUwMjEgbWVkaWEvY29u
dGV4dC1tZW51LWFjdGlvbnMuaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409263</attachid>
            <date>2020-09-21 00:37:49 -0700</date>
            <delta_ts>2020-09-21 06:00:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216696-20200921093747.patch</filename>
            <type>text/plain</type>
            <size>49997</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEwYmY4YTU1MjdkMWU4N2FkOGJjNmVl
MTQ4OWM0NDg0NzhhYjUwZTAuLmI1ODI0Y2ViMTkwMGEwMWQ1NzZlYTViZjZmNWU2MDQyMmU4NTIw
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDktMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50
LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjAtMDktMTcgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT04ocjI2
Njg4NSk6IGZpeCBvcGVuIHNvdXJjZSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEzMjIxMDE1ZjVmZGNi
MTkxMTI2ZDFiMGM1YTZlY2Y3M2U2NTNmMmMuLjRkYjc5NTg3M2Y1ZTVhYTRiMzY4NWMyNDk2ODNj
NmRmMGQxMzJkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMC0wOS0xOCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IEhUTUxNZWRpYUVsZW1lbnQuc2V0U2lua0lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgc2V0U2lua0lkIGFuZCBzaW5rSWQgYXMgcGVy
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtb3V0cHV0LyNodG1sbWVkaWFlbGVt
ZW50LWV4dGVuc2lvbnMuCisgICAgICAgIEludHJvZHVjZSBhIHNldHRpbmcgdG8gZXhwb3NlIHRo
ZXNlIG1ldGhvZHMgYW5kIHRvIGVuYWJsZS9kaXNhYmxlIHVzZXIgZ2VzdHVyZSByZXF1aXJlbWVu
dC4KKyAgICAgICAgQWRkIGludGVyZmFjZXMgdG8gY2hhbmdlIGRldmljZSBvdXRwdXQgZm9yIHNw
ZWNpZmljIG1lZGlhIHBsYXllcnMuCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBITFMsIE1TRSBh
bmQgTWVkaWFTdHJlYW1UcmFjayByZW5kZXJlcnMgb24gTWFjT1MuCisgICAgICAgIEluIGNhc2Ug
b2Ygc2V0dGluZyB0aGUgZW1wdHkgc3RyaW5nLCB0aGUgZGVmYXVsdCBvdXRwdXQgZGV2aWNlIGlz
IHVzZWQKKworICAgICAgICBUZXN0czogaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5o
dHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQu
aHR0cHMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIGh0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjphdWRpb091dHB1dERldmljZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpzZXRBdWRpb091dHB1dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKiBodG1s
L0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OmF1ZGlvT3V0cHV0SGFzaGVkRGV2aWNlSWQgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5pZGw6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNs
aWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjphdWRpb091
dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2Vk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRp
b091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0QXVkaW9PdXRwdXREZXZpY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0QXVkaW9P
dXRwdXREZXZpY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRBdWRpb091dHB1dERldmlj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29h
OjpwdXNoU2FtcGxlcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0QXVkaW9P
dXRwdXREZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisKIDIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhhc2ggZGV2aWNlSWRzIGluIFdlYlByb2Nl
c3MgaW5zdGVhZCBvZiBVSVByb2Nlc3MgdG8gYWxsb3cgYXVkaW8gb3V0cHV0IGRldmljZSBJRHMg
aW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MjBlZDQzZjVkNjMxMmZhNjk2ZDdiODViYThlZTA0
NDkwYmQxYmQzLi5kZjY0NTY5MmM0ZWE0YmU1NzQzYmI5ODYxZGI3ZGI5ODE0NzUxMjM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA5LTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5z
ZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBpbnRlcm5hbCBmbGFnIHRvIGVuYWJsZS9kaXNhYmxlIHVzZXIgZ2VzdHVyZSByZXF1aXJl
bWVudCBmb3Igc2V0dGluZyBhdWRpbyBvdXRwdXQuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2Vz
cyBpbnN0ZWFkIG9mIFVJUHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBp
biBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDYwMGU1OGM1ZTIyZTEyMjcwMzNm
NWZjMWEyN2FkMGI2YmNkZDIwOWEuLjQ3MTBmNzg5YjMwNzc5OTIxNGZiMmI2ZmFhMzcxYTI4YzBj
NTIyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC02ODIsNiArNjgyLDEwIEBACiAjZGVmaW5l
IEhBVkVfTlNUQUJMRVZJRVdTVFlMRSAxCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNk
ZWZpbmUgSEFWRV9BVURJT19PVVRQVVRfREVWSUNFX1VOSVFVRV9JRCAxCisjZW5kaWYKKwogI2lm
ICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMCkgXAogICAgIHx8IChQTEFURk9STShXQVRD
SE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDcwMDAwKSBcCiAgICAg
fHwgKFBMQVRGT1JNKEFQUExFVFYpICYmIF9fVFZfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTQwMDAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuY3BwCmluZGV4IGJlNzBhYWFiZDhlODBkMmY3YjVjZjUyZTczMjcxNWY2MTgzOThm
MGUuLjg1MTkzYWM4NWUxNGEwZjQ0ZDQxY2VlNDc5OWIzNzlkZGFkMmIwYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAg
LTIwMiw2ICsyMDIsOCBAQCB2b2lkIE1lZGlhRGV2aWNlczo6ZXhwb3NlRGV2aWNlcyhjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMsIGNvbnN0CiAgICAgYm9vbCBjYW5BY2Nl
c3NNaWNyb3Bob25lID0gY2hlY2tNaWNyb3Bob25lQWNjZXNzKGRvY3VtZW50KTsKICAgICBib29s
IGNhbkFjY2Vzc1NwZWFrZXIgPSBjaGVja1NwZWFrZXJBY2Nlc3MoZG9jdW1lbnQpOwogCisgICAg
bV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuY2xlYXIoKTsKKwogICAgIFZlY3Rv
cjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gZGV2aWNlczsKICAgICBmb3IgKGF1dG8mIG5ld0Rldmlj
ZSA6IG5ld0RldmljZXMpIHsKICAgICAgICAgaWYgKCFjYW5BY2Nlc3NNaWNyb3Bob25lICYmIG5l
d0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkK
QEAgLTIxNCw2ICsyMTYsOSBAQCB2b2lkIE1lZGlhRGV2aWNlczo6ZXhwb3NlRGV2aWNlcyhjb25z
dCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMsIGNvbnN0CiAgICAgICAgIGF1dG8g
ZGV2aWNlSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3Ry
aW5nV2l0aFNhbHQobmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2VJREhhc2hTYWx0KTsK
ICAgICAgICAgYXV0byBncm91cElkID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG5ld0RldmljZS5ncm91cElkKCksIG1fZ3JvdXBJZEhh
c2hTYWx0KTsKIAorICAgICAgICBpZiAobmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpTcGVha2VyKQorICAgICAgICAgICAgbV9hdWRpb091dHB1dERldmljZUlk
VG9QZXJzaXN0ZW50SWQuYWRkKGRldmljZUlkLCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkpOwor
CiAgICAgICAgIGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKG5ld0Rldmlj
ZS5sYWJlbCgpLCBXVEZNb3ZlKGRldmljZUlkKSwgV1RGTW92ZShncm91cElkKSwgdG9NZWRpYURl
dmljZUluZm9LaW5kKG5ld0RldmljZS50eXBlKCkpKSk7CiAgICAgfQogICAgIHByb21pc2UucmVz
b2x2ZShkZXZpY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5oCmluZGV4IDU4Mjg2NzI1M2NhZDE2OThkODAxNWY2NmVhNWY1MzRmOTJm
NTM5ZDEuLjZmOTA2MjhhYjBjYzhmMGEzNDExMTM0Zjg3OTdlNjRiZmM4MTZmMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAt
ODksNiArODksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2VzKEVudW1lcmF0
ZURldmljZXNQcm9taXNlJiYpOwogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cyBn
ZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogCisgICAgU3RyaW5nIGRldmljZUlkVG9QZXJzaXN0
ZW50SWQoY29uc3QgU3RyaW5nJiBkZXZpY2VJZCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb091dHB1
dERldmljZUlkVG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsgfQorCiAgICAgdXNpbmcgUmVm
Q291bnRlZDxNZWRpYURldmljZXM+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYURl
dmljZXM+OjpkZXJlZjsKIApAQCAtMTMwLDYgKzEzMiw5IEBAIHByaXZhdGU6CiAKICAgICBPcHRp
b25TZXQ8R2VzdHVyZUFsbG93ZWRSZXF1ZXN0PiBtX3JlcXVlc3RUeXBlc0ZvckN1cnJlbnRHZXN0
dXJlOwogICAgIFdlYWtQdHI8VXNlckdlc3R1cmVUb2tlbj4gbV9jdXJyZW50R2VzdHVyZVRva2Vu
OworCisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9hdWRpb091dHB1dERldmljZUlkVG9Q
ZXJzaXN0ZW50SWQ7CisgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGE0ZjM2Nzk4ZTU0YWY0ZmQzOTRmNDIzYzZmYjBhNmZhMDg2OTZiMjEuLjRjN2U4
MmY4NjUwZTkzMmFkODQ1ZDU3NDY4ZGMxOWJlZmU1MDY1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgIk1JTUVU
eXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJN
ZWRpYUNvbnRyb2xzSG9zdC5oIgorI2luY2x1ZGUgIk1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUg
Ik1lZGlhRG9jdW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYUVycm9yLmgiCiAjaW5jbHVkZSAiTWVk
aWFGcmFnbWVudFVSSVBhcnNlci5oIgpAQCAtNzgsNiArNzksNyBAQAogI2luY2x1ZGUgIk1lZGlh
UGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2luY2x1ZGUgIk1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYURldmljZXMuaCIK
ICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBPREludGVydmFsVHJl
ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTI4NDMsNiArMjg0NSw1OSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmZhc3RTZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICBzZWVrV2l0
aFRvbGVyYW5jZSh0aW1lLCBuZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lOjp6ZXJvVGltZSgp
LCB0cnVlKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitTdHJpbmcgSFRNTE1lZGlh
RWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX2F1ZGlv
T3V0cHV0UGVyc2lzdGVudERldmljZUlkOworfQorCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNl
dEF1ZGlvT3V0cHV0RGV2aWNlKFN0cmluZyYmIGRldmljZUlkLCBET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50KCkuZG9tV2lu
ZG93KCk7CisgICAgYXV0byogbWVkaWFEZXZpY2VzID0gd2luZG93ID8gTmF2aWdhdG9yTWVkaWFE
ZXZpY2VzOjptZWRpYURldmljZXMod2luZG93LT5uYXZpZ2F0b3IoKSkgOiBudWxscHRyOworICAg
IGlmICghbWVkaWFEZXZpY2VzKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdEFsbG93ZWRFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgh
ZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpICYmIGRvY3VtZW50KCku
c2V0dGluZ3MoKS5zcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSgpKSB7CisgICAg
ICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNlciBn
ZXN0dXJlIGlzIHJlcXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKGRldmljZUlkLmlzRW1wdHkoKSkKKyAgICAgICAgZGV2aWNlSWQgPSB7IH07CisKKyAgICBp
ZiAoZGV2aWNlSWQgPT0gbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkKSB7CisgICAgICAgIHBy
b21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIHBl
cnNpc3RlbnRJZDsKKyAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKSB7CisgICAgICAgIHBlcnNp
c3RlbnRJZCA9IG1lZGlhRGV2aWNlcy0+ZGV2aWNlSWRUb1BlcnNpc3RlbnRJZChkZXZpY2VJZCk7
CisgICAgICAgIGlmIChwZXJzaXN0ZW50SWQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmlj
ZUlkID0gV1RGTW92ZShwZXJzaXN0ZW50SWQpOworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAg
bV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCisgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVt
ZW50LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkZXZpY2VJZCA9IFdU
Rk1vdmUoZGV2aWNlSWQpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkID0gV1RGTW92ZShkZXZpY2VJZCk7
CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIH0pOworfQorI2VuZGlmCisKK1N0cmlu
ZyBIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZpY2VJZDsKK30KKwogdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsIHRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCBhYjJiMDAxMWI1OTQzOWVhNTFlOGFhM2UyMDhmZTAxMmM2M2QxMmVkLi5kMGRlZmIx
NzU0ZmE5MGI4M2E3Y2M0Mjk1ODc5YjUxNGYyMzRlZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtMjY4LDYgKzI2OCwxMSBAQCBwdWJsaWM6CiAgICAgZG91Ymxl
IG1pbkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0OwogICAgIGRvdWJsZSBtYXhGYXN0Rm9yd2FyZFJh
dGUoKSBjb25zdDsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3RyaW5nIGF1ZGlv
T3V0cHV0RGV2aWNlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZShTdHJp
bmcmJiBkZXZpY2VJZCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworI2VuZGlmCisKICAg
ICB1c2luZyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkJ1ZmZlcmluZ1BvbGljeTsKICAgICB2b2lk
IHNldEJ1ZmZlcmluZ1BvbGljeShCdWZmZXJpbmdQb2xpY3kpOwogICAgIFdFQkNPUkVfRVhQT1JU
IEJ1ZmZlcmluZ1BvbGljeSBidWZmZXJpbmdQb2xpY3koKSBjb25zdDsKQEAgLTU4MCw2ICs1ODUs
OCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPdmVycmlkZVByZWZlcnJl
ZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSk7CiAgICAgdm9pZCBzZXRQcmVmZXJy
ZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpOwogCisgICAgU3RyaW5nIGF1ZGlv
T3V0cHV0SGFzaGVkRGV2aWNlSWQoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvT3V0cHV0SGFzaGVk
RGV2aWNlSWQ7IH0KKwogcHJvdGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZpcnR1
YWwgdm9pZCBmaW5pc2hJbml0aWFsaXphdGlvbigpOwpAQCAtNjA0LDYgKzYxMSw4IEBAIHByb3Rl
Y3RlZDoKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAg
ICAgU2VjdXJpdHlPcmlnaW5EYXRhIGRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCBmaW5h
bDsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0IGZpbmFsOworICAgIFN0
cmluZyBhdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmljZUlkOyB9CiAKICAgICBib29sIG1lZGlhQ29udHJv
bHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDb250cm9s
c0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yOyB9CiAgICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xzRGVw
ZW5kT25QYWdlU2NhbGVGYWN0b3IoYm9vbCk7CkBAIC0xMTk3LDYgKzEyMDYsOSBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0IHsgZmFsc2UgfTsKICAgICBi
b29sIG1fcGxheWluZ09uU2Vjb25kU2NyZWVuIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVtb3Zl
ZEJlaGF2aW9yUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlIHsgZmFsc2UgfTsKKwor
ICAgIFN0cmluZyBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmljZUlkOworICAgIFN0cmluZyBt
X2F1ZGlvT3V0cHV0SGFzaGVkRGV2aWNlSWQ7CiB9OwogCiBTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudDo6QXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKaW5kZXggYjQyZDBlYTM3
MTA2YjQ3MmJiYzljZWRmNjA3ODNmZTBhMzllZmZjOS4uZTc0YmVmNTYwOTI0MmQwNTEzNGU0YTg0
MWY0YmQwNmFhMmFlMzE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aWRsCkBAIC04Niw2ICs4Niw5IEBAIHR5cGVkZWYgKAogICAgIHVuZGVmaW5lZCBwYXVzZSgpOwog
ICAgIHVuZGVmaW5lZCBmYXN0U2Vlayh1bnJlc3RyaWN0ZWQgZG91YmxlIHRpbWUpOwogCisgICAg
W0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2Vy
cyZQZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbiwgSW1wbGVtZW50ZWRBcz1hdWRpb091dHB1dEhh
c2hlZERldmljZUlkXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNpbmtJZDsKKyAgICBb
Q29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPUV4cG9zZVNwZWFrZXJz
JlBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uLCBJbXBsZW1lbnRlZEFzPXNldEF1ZGlvT3V0cHV0
RGV2aWNlXSBQcm9taXNlPHVuZGVmaW5lZD4gc2V0U2lua0lkKERPTVN0cmluZyBkZXZpY2VJZCk7
CisKICAgICAvLyBjb250cm9scwogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWRdIGF0dHJpYnV0
ZSBib29sZWFuIGNvbnRyb2xzOwogICAgIGF0dHJpYnV0ZSBkb3VibGUgdm9sdW1lOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDE3ODk3ZWUzMDRhZWIyMmI1ODJmYmQ5M2I0YjkyNjE0
MjAyNzNiNmYuLjRiYzY4MTY5OTgwYTEzMzE0ZTdiZmU0Y2U2NDUwM2I5NTJkZmQ5M2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTgyNiw2ICs4MjYsMTIgQEAgbWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeToKIGV4cG9zZVNwZWFrZXJzRW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UK
IAorcGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25FbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQor
CitzcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZToKKyAgaW5pdGlhbDogdHJ1ZQor
CiBtZWRpYURldmljZUlkZW50aWZpZXJTdG9yYWdlRGlyZWN0b3J5OgogICB0eXBlOiBTdHJpbmcK
ICAgY29uZGl0aW9uYWw6IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNjNjZjNjY2VlODExMmUx
NTVlMTkzODA1YTY0NDhjZThkYmExZTNhMi4uOTAyZjU4OTk3ZjcyNmNmYjE3YTYyNmJkOWU5NDY1
ZTU5ZGRlY2IwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcApAQCAtMTYwNCw2ICsxNjA0LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnNl
dFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSBtb2RlKQogICAgIG1f
cHJpdmF0ZS0+c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShtb2RlKTsKIH0KIAordm9pZCBN
ZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBtX3ByaXZhdGUt
PmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjptZWRpYVBsYXllckxvZ2dlcigpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBl
YTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUzY2NlNTFhY2FmNGYzLi5kNDY3MzFhMmJhZGY4ODU3
MDE4MDE5ODgxNTYyMzJjMzRiMWZkZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3Myw2ICsyNzMsOSBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgY29u
c3QgeyByZXR1cm4geyB9OyB9CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBhdWRpb091dHB1dERldmlj
ZUlkKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAgdmlydHVhbCBTdHJpbmcgYXVkaW9PdXRw
dXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRl
bnRpZmllcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IExvZ2dlciYg
bWVkaWFQbGF5ZXJMb2dnZXIoKSA9IDA7CkBAIC02MzEsNiArNjM0LDEwIEBAIHB1YmxpYzoKICAg
ICBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoKSBjb25zdCB7IHJl
dHVybiBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7IH0KICAgICB2b2lkIHNldFByZWZlcnJl
ZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSk7CiAKKyAgICBTdHJpbmcgYXVkaW9P
dXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlkT3Zl
cnJpZGUoKSBjb25zdDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCiBw
cml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQ
bGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIpOwpAQCAtNzA1LDYgKzcxMiwxNiBAQCBwdWJsaWM6CiB9OwogCiAKK2lubGluZSBT
dHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091dHB1dERldmljZUlkKCkgOiBTdHJpbmcg
eyB9OworfQorCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUlk
T3ZlcnJpZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hdWRp
b091dHB1dERldmljZUlkT3ZlcnJpZGUoKSA6IFN0cmluZyB7IH07Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggNjcw
YzBhNDk0YzExYTI3Mzc2MDQyODQxODNjMDA3ODhkOTc1OTc4ZC4uODEyNTMzMDI3NmRkNTQ0ZTFm
Y2FiZGExN2Q2MzZjYmNmODdiYWQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI4OSw2ICsyODksOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKSB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9PdXRw
dXREZXZpY2VDaGFuZ2VkKCkgeyB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXgg
YWRlMDYzMmM5ZjZjZGMwYzE0ZDVkYTg4NWNhN2I3NDI3OGJiZDNlMy4uODVjZTgxZDEwM2I4NWQx
ZDQyNmI3YTM0OGQ4ZjAzYTBiZTM2NjQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMzE4
LDYgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTaG91bGRPYnNlcnZlVGltZUNvbnRy
b2xTdGF0dXMoYm9vbCk7CiAKICAgICB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUo
RHluYW1pY1JhbmdlTW9kZSkgZmluYWw7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5n
ZWQoKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxBVlVSTEFzc2V0PiBtX2F2QXNzZXQ7CiAgICAg
UmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5k
ZXggYWMwZjhmZmEwMjg4M2U0YWFmZmYzMmJmMzgwZjg4MjMwMDJiNTYxNS4uNTIyZTBjNzRkYjg5
NWRjMjM2OGJiOTdkY2VlMDdlZTI1YjBmZjkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBA
IC05NTMsNiArOTUzLDE2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3JlYXRlQVZQbGF5ZXIoKQogICAgIGlmIChtX2F2UGxheWVySXRlbSkKICAgICAgICAgc2V0
QVZQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgpKTsKIAorI2lmIEhBVkUoQVVESU9fT1VU
UFVUX0RFVklDRV9VTklRVUVfSUQpCisgICAgYXV0byBhdWRpb091dHB1dERldmljZUlkID0gcGxh
eWVyKCktPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGlmICghYXVkaW9PdXRw
dXREZXZpY2VJZC5pc051bGwoKSkgeworICAgICAgICBpZiAoYXVkaW9PdXRwdXREZXZpY2VJZC5p
c0VtcHR5KCkpCisgICAgICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0cHV0RGV2aWNl
VW5pcXVlSUQgPSBuaWw7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYXZQbGF5ZXIuZ2V0
KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IGF1ZGlvT3V0cHV0RGV2aWNlSWQ7CisgICAg
fQorI2VuZGlmCisKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKQEAgLTMyOTMs
NiArMzMwMywxOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNl
dFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbgogI2VuZGlmCiB9CiAKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFu
Z2VkKCkKK3sKKyNpZiBIQVZFKEFVRElPX09VVFBVVF9ERVZJQ0VfVU5JUVVFX0lEKQorICAgIGlm
ICghbV9hdlBsYXllciB8fCAhcGxheWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRl
dmljZUlkID0gcGxheWVyKCktPmF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKKyAgICBpZiAoZGV2aWNl
SWQuaXNFbXB0eSgpKQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0cHV0RGV2aWNl
VW5pcXVlSUQgPSBuaWw7CisgICAgZWxzZQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlv
T3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBkZXZpY2VJZDsKKyNlbmRpZgorfQorCiBOU0FycmF5KiBh
c3NldE1ldGFkYXRhS2V5TmFtZXMoKQogewogICAgIHN0YXRpYyBOU0FycmF5KiBrZXlzID0gW1tO
U0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmlu
ZGV4IDA5YmY1NTc0ODQzMzFkNTgyMjBkMjBmNWYyMDMzMjk2ZTY5Y2VjNDIuLjhjZTNiN2I0MDVk
ZmRmOTcwMmYyZjk1MThhZDY5ZGQ4NWJkZjc3NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5o
CkBAIC0yNTQsNiArMjU0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgYm9vbCBwZXJmb3Jt
VGFza0F0TWVkaWFUaW1lKEZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgZmlu
YWw7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIHZv
aWQgZW5zdXJlTGF5ZXIoKTsKICAgICB2b2lkIGRlc3Ryb3lMYXllcigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCmluZGV4IDhiOTQxNTA3YzAzODgxYzAyMTZiNGU3OTJlMzlkYjI2ZTM1N2Zk
YjkuLjBiYjQyMTI1YzgyOWEwODdlMWMxN2RkNTY2N2IxOTMzZGI0MWY5ODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KQEAgLTExNjYsNiArMTE2NiwxNiBAQCBBTExPV19ORVdfQVBJX1dJ
VEhPVVRfR1VBUkRTX0VORAogICAgIFthdWRpb1JlbmRlcmVyIHNldFZvbHVtZTptX3BsYXllci0+
dm9sdW1lKCldOwogICAgIFthdWRpb1JlbmRlcmVyIHNldEF1ZGlvVGltZVBpdGNoQWxnb3JpdGht
OihtX3BsYXllci0+cHJlc2VydmVzUGl0Y2goKSA/IEFWQXVkaW9UaW1lUGl0Y2hBbGdvcml0aG1T
cGVjdHJhbCA6IEFWQXVkaW9UaW1lUGl0Y2hBbGdvcml0aG1WYXJpc3BlZWQpXTsKIAorI2lmIEhB
VkUoQVVESU9fT1VUUFVUX0RFVklDRV9VTklRVUVfSUQpCisgICAgYXV0byBkZXZpY2VJZCA9IG1f
cGxheWVyLT5hdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKTsKKyAgICBpZiAoIWRldmljZUlk
LmlzTnVsbCgpKSB7CisgICAgICAgIGlmIChkZXZpY2VJZC5pc0VtcHR5KCkpCisgICAgICAgICAg
ICBhdWRpb1JlbmRlcmVyLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBuaWw7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGF1ZGlvUmVuZGVyZXIuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJ
RCA9IGRldmljZUlkOworICAgIH0KKyNlbmRpZgorCiAgICAgQHRyeSB7CiAgICAgICAgIFttX3N5
bmNocm9uaXplciBhZGRSZW5kZXJlcjphdWRpb1JlbmRlcmVyXTsKICAgICB9IEBjYXRjaChOU0V4
Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CkBAIC0xMjc2LDYgKzEyODYsMjIgQEAgYm9vbCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RG
OjpGdW5jdGlvbjwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisjaWYg
SEFWRShBVURJT19PVVRQVVRfREVWSUNFX1VOSVFVRV9JRCkKKyAgICBpZiAoIW1fcGxheWVyKQor
ICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5hdWRpb091dHB1
dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBrZXkgOiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXJNYXAua2V5cygpKSB7CisgICAgICAgIGF1dG8gcmVuZGVyZXIgPSAoKF9fYnJpZGdlIEFW
U2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqKWtleS5nZXQoKSk7CisgICAgICAgIGlmIChkZXZp
Y2VJZC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZW5kZXJlci5hdWRpb091dHB1dERldmljZVVu
aXF1ZUlEID0gbmlsOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZW5kZXJlci5hdWRpb091
dHB1dERldmljZVVuaXF1ZUlEID0gZGV2aWNlSWQ7CisgICAgfQorI2VuZGlmCit9CisKIFdURkxv
Z0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bG9nQ2hhbm5l
bCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExvZ01lZGlhU291cmNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMuaAppbmRleCA4ZGU4OTVkN2IyNDExOGZkYjI4ZmFjMzljYjFiZmJlOThiOGY3NjEzLi42
MzFmMzAzMWVhNDM4MGVhMzhkMWQ0NWFmNmIzNDI5MDAwMjUwZTllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMuaApAQCAtMTU5LDYgKzE1OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBlbmRlZCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZW5kZWQ7IH0KIAogICAgIHZvaWQgc2V0QnVmZmVy
aW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIG92ZXJyaWRlOworICAgIHZv
aWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSBjdXJyZW50UmVhZHlTdGF0ZSgpOwogICAgIHZvaWQgdXBkYXRlUmVhZHlTdGF0
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDJkYjUwYmI4OTU3NGVkYzM3YWQ5
YzdjYzliYWJmY2MxOTM3MDMwMzYuLjNhOGMzOGM3Njg0ZDQxNThhNTYzNjljNDcwZDEwNGEwNzRj
OWVlOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTg2Nyw3ICs4NjcsOCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkK
IHsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciBjdXJyZW50VHJhY2tzID0gbV9t
ZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpOwogCi0gICAgYXV0byBzZXRBdWRpb1RyYWNrU3Rh
dGUgPSBbdGhpc10oQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSYgdHJhY2ssIGludCBpbmRl
eCwgVHJhY2tTdGF0ZSBzdGF0ZSkKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlv
T3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGF1dG8gc2V0QXVkaW9UcmFja1N0YXRlID0g
W3RoaXMsICZkZXZpY2VJZF0oQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSYgdHJhY2ssIGlu
dCBpbmRleCwgVHJhY2tTdGF0ZSBzdGF0ZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoc3RhdGUp
IHsKICAgICAgICAgY2FzZSBUcmFja1N0YXRlOjpSZW1vdmU6CkBAIC04ODQsNiArODg1LDkgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcygp
CiAgICAgICAgICAgICB0cmFjay5zZXRWb2x1bWUobV92b2x1bWUpOwogICAgICAgICAgICAgdHJh
Y2suc2V0TXV0ZWQobV9tdXRlZCk7CiAgICAgICAgICAgICB0cmFjay5zZXRFbmFibGVkKHRyYWNr
LnN0cmVhbVRyYWNrKCkuZW5hYmxlZCgpICYmICF0cmFjay5zdHJlYW1UcmFjaygpLm11dGVkKCkp
OworICAgICAgICAgICAgaWYgKCFkZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAgICAgICAgICB0
cmFjay5zZXRBdWRpb091dHB1dERldmljZShkZXZpY2VJZCk7CisKICAgICAgICAgICAgIGlmIChw
bGF5aW5nKCkpCiAgICAgICAgICAgICAgICAgdHJhY2sucGxheSgpOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC0xMDE3LDYgKzEwMjEsMTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNldEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmUKICAgICAg
ICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmZsdXNoQW5kUmVtb3ZlSW1hZ2UoKTsKIH0K
IAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmF1ZGlvT3V0cHV0
RGV2aWNlQ2hhbmdlZCgpCit7CisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOwor
ICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VJZCgpOworICAg
IGZvciAoYXV0byYgYXVkaW9UcmFjayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMoKSkKKyAgICAg
ICAgYXVkaW9UcmFjay0+c2V0QXVkaW9PdXRwdXREZXZpY2UoZGV2aWNlSWQpOworfQorCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2NoZWR1bGVEZWZlcnJlZFRh
c2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKaW5kZXggNjQ4OWY5ZGE3YzU2
MjZjMjAyOTc4NTNmMWEwMWU5ZWFmYmU1NjAwYi4uZTcyNTVhMzZlMDIwMzZiNzE2ODJlMzc1NGM4
NTkyZDE4YWZmNWE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCkBA
IC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0
KTsKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRBdWRp
b091dHB1dERldmljZShjb25zdCBTdHJpbmcmKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKICNlbmRp
ZgpAQCAtMTA5LDYgKzExMSwxMCBAQCBpbmxpbmUgY29uc3QgY2hhciogQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OmxvZ0NsYXNzTmFtZSgpIGNvbnN0CiB9CiAjZW5kaWYKIAoraW5saW5l
IHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldEF1ZGlvT3V0cHV0RGV2aWNl
KGNvbnN0IFN0cmluZyYpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCmluZGV4IGExODVjZDQ3
MDM2M2U2MDVmOTBkNDk5ZGUwMzgwOTc5NmFjOWM1YWMuLjVkYTU3OTUwYjk4OTA0Y2EwOThkYmEz
NDc5MjJmZGNjNzZjNDgwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0u
Y3BwCkBAIC05Nyw2ICs5NywxMSBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06
OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgdXBkYXRlUmVuZGVyZXIoKTsKIH0KIAordm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRBdWRpb091dHB1dERldmljZShjb25z
dCBTdHJpbmcmIGRldmljZUlkKQoreworICAgIG1fcmVuZGVyZXItPnNldEF1ZGlvT3V0cHV0RGV2
aWNlKGRldmljZUlkKTsKK30KKwogZmxvYXQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6
dm9sdW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yZW5kZXJlci0+dm9sdW1lKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9B
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKaW5kZXggYTQ4NWMxOGNhODdhMWM2ZjMyYTYx
OWVlOGNkYzVhM2M4ZWFkNzRlMy4uMmY3NGQ5NTUyNGZkZmMzMThmNmVkNTUyMWE1OGYwNDJhYjY1
ZWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaApAQCAtNDcsNiArNDcs
NyBAQCBwdWJsaWM6CiAgICAgfkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKTsKIAogICAg
IHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CisgICAg
dm9pZCBzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmKTsKIAogICAgIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiBzdHJlYW1UcmFjaygpIHsgcmV0dXJuIG1fc3RyZWFtVHJhY2suZ2V0
KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
Q29jb2EuY3BwCmluZGV4IDc2MjMyYjc5ZDlkMDdlYjFiODljNDJlYjUzNDRkZGMzMDU0MmFlMDgu
LjViMTFkZGVlN2MxMjE4OWY3MDBkYzNkZjI0OGVkZmJhMDA4YTk3NTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAKQEAgLTY3LDEx
ICs2NywxOCBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldFZv
bHVtZShmbG9hdCB2b2x1bWUpCiAgICAgICAgIG1fZGF0YVNvdXJjZS0+c2V0Vm9sdW1lKHZvbHVt
ZSk7CiB9CiAKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVk
aW9PdXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJZCkKK3sKKyAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGNyZWF0ZSBhIHVuaXQgZm9yIG91cnNlbHZlcyBoZXJlIG9yIHVzZSB0aGUgZGVm
YXVsdCB1bml0IGlmIGRldmljZUlkIGlzIG1hdGNoaW5nLgorICAgIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdDo6c2luZ2xldG9uKCkuc2V0QXVkaW9PdXRwdXREZXZpY2UoZGV2aWNl
SWQpOworICAgIG1fc2hvdWxkUmVzZXQgPSB0cnVlOworfQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgc2FtcGxl
VGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJh
c2ljVHlwZSk7Ci0gICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXRE
ZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNj
cmlwdGlvbikgeworICAgIGlmICghbV9kYXRhU291cmNlIHx8IG1fc2hvdWxkUmVzZXQgfHwgIW1f
ZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVz
Y3JpcHRpb24oKSAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBB
dWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAy
LCAqdGhpcyk7CiAKICAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KHRvQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkpIHsKQEAgLTk1LDYgKzEwMiw3IEBA
IHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29u
c3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lCiAgICAgICAgICAgICBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlclVuaXQ6OnNpbmdsZXRvbigpLmFkZFNvdXJjZShXVEZNb3ZlKG5ld1NvdXJjZSkp
OwogICAgICAgICB9KTsKICAgICAgICAgbV9kYXRhU291cmNlID0gV1RGTW92ZShkYXRhU291cmNl
KTsKKyAgICAgICAgbV9zaG91bGRSZXNldCA9IGZhbHNlOwogICAgIH0KIAogICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXMoc2FtcGxlVGltZSwgYXVkaW9EYXRhLCBzYW1wbGVDb3VudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAppbmRl
eCA1MWFjNDMzN2M0ZTAzNThmZGRjYjRlYTg1NDdmMmFiYjBiYzBmYTg3Li5kZTgzOTY3NGJkN2Qw
NDkzZWRjYzYxOTJjMGIxOTJhNGY3NDUwOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKQEAgLTUzLDkgKzUzLDExIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgdm9pZCBjbGVhcigpIGZpbmFsOwogICAgIHZv
aWQgc2V0Vm9sdW1lKGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNl
KGNvbnN0IFN0cmluZyYpIGZpbmFsOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPENBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbj4gbV9vdXRwdXREZXNjcmlwdGlvbjsKICAgICBSZWZQdHI8QXVkaW9TYW1w
bGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7CisgICAgYm9vbCBtX3Nob3VsZFJlc2V0IHsgZmFs
c2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyVW5pdC5jcHAKaW5kZXggZGFjNzRhMTI1NWM1ZTU0YTUyMzQzNmZlNjlhOGU0NDRjMmU3
MGIxNS4uZTcxNTg3ODQ2YTQ5NGZkYzg4MTBkODgyNGYyNmY2Yzg3NjU1NjAxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKQEAgLTM2
LDYgKzM2LDExIEBACiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9BdWRpb1Rvb2xib3hTUEkuaD4K
ICNpbmNsdWRlIDx3dGYvTG9jay5oPgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAi
Q29yZUF1ZGlvQ2FwdHVyZURldmljZS5oIgorI2luY2x1ZGUgIkNvcmVBdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyLmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MSw2ICs1NiwzMyBAQCBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6On5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQoKQogICAgIHN0b3AoKTsKIH0KIAordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCit7Cisj
aWYgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXI6OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOwor
CisgICAgaWYgKCFkZXZpY2UgJiYgIWRldmljZUlELmlzRW1wdHkoKSkgeworICAgICAgICBSRUxF
QVNFX0xPRyhXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnNldEF1
ZGlvT3V0cHV0RGV2aWNlSWQgLSBkaWQgbm90IGZpbmQgZGV2aWNlIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvIGF1ZGlvVW5pdERldmljZUlEID0gZGV2aWNlID8gZGV2aWNl
LT5kZXZpY2VJRCgpIDogMDsKKyAgICBpZiAobV9kZXZpY2VJRCA9PSBhdWRpb1VuaXREZXZpY2VJ
RCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBzaG91bGRSZXN0YXJ0ID0gbV9pc1N0YXJ0
ZWQ7CisgICAgaWYgKG1faXNTdGFydGVkKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2Rldmlj
ZUlEID0gYXVkaW9Vbml0RGV2aWNlSUQ7CisKKyAgICBpZiAoc2hvdWxkUmVzdGFydCkKKyAgICAg
ICAgc3RhcnQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRldmljZUlEKTsKKyNlbmRpZgor
fQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlKFJl
ZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYgc291cmNlKQogewogICAgIFJFTEVBU0VfTE9HKFdl
YlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlIik7CkBA
IC0xNjEsNiArMTkzLDE2IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgfQogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgaWYgKG1fZGV2aWNlSUQpIHsKKyAgICAgICAgZXJyb3IgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50
RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1f
ZGV2aWNlSUQpKTsKKyAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0IHVuaXQgZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40
cykiLCAoaW50KW1fZGV2aWNlSUQsIChpbnQpZXJyb3IsIChjaGFyKikmZXJyb3IpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKICAgICBBVVJlbmRlckNh
bGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBpbnB1dFByb2MsIG51bGxwdHIgfTsKICAgICBlcnJv
ciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5
X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ss
IHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyVW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCmluZGV4IDQ0MDc2YTU2ZWM5NzRmOWJi
ODczNDJiZmM3NDgzMGM4NTljNzcyZjYuLjYxMDgxMDRlYjZmNzdiZWJlZjE4NjRiZDg4NzY0MzE3
N2UwYWQ0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0LmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnQoKTsKICAg
ICB2b2lkIHN0b3AoKTsKIAorICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2UoY29uc3QgU3Ry
aW5nJik7CisKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYm
KTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKIApAQCAt
NjgsNiArNzAsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRVcGRhdGVSZW5kZXJTb3Vy
Y2VzIHsgZmFsc2UgfTsKICAgICBMb2NrIG1fc291cmNlc0xvY2s7CiAgICAgYm9vbCBtX2lzU3Rh
cnRlZCB7IGZhbHNlIH07CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHVpbnQzMl90IG1fZGV2aWNl
SUQgeyAwIH07CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCA1OTEwNjEyMWE2NjVlMThlZDQ5NjY4MWU3ZmRkMzVkYzcyYTBiMGU3Li5mNDM0Nzc4
NjhlYTk5ZWQ3Y2FkNWQ2ZmFmMjBhODc1MWE5ZDcwMGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC01NjcsNiArNTY3LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9D
b25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQodHJ1ZSk7CiAgICAgcGFn
ZS5zZXR0aW5ncygpLnNldFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkKHRydWUpOwogI2VuZGlmCisg
ICAgcGFnZS5zZXR0aW5ncygpLnNldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJl
KGZhbHNlKTsKIAogICAgIHBhZ2Uuc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oMF9zKTsK
ICAgICBwYWdlLnNldEZ1bGxzY3JlZW5JbnNldHMoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGVkZjU4YmVk
YTJlOWQwNGY1ODIyMWRhYWRlY2JlMjVmZTAxNjBiMDAuLmUwNjA0ZjcxMjJkYWNhZGYyN2YzYzU0
NjNiZmY2NWY3ZGNkNTQ3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM2LDcgKzEzNiwxNCBAQCBFeHBvc2VT
cGVha2Vyc0VuYWJsZWQ6CiAgIGRlZmF1bHRWYWx1ZTogZmFsc2UKICAgaHVtYW5SZWFkYWJsZU5h
bWU6ICJBbGxvdyBzcGVha2VyIGRldmljZSBzZWxlY3Rpb24iCiAgIGh1bWFuUmVhZGFibGVEZXNj
cmlwdGlvbjogIkFsbG93IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKLSAgY29uZGl0aW9uOiBF
TkFCTEUoV0VCX1JUQykKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitQZXJF
bGVtZW50U3BlYWtlclNlbGVjdGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZh
bHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIkFsbG93IHBlciBtZWRpYSBlbGVtZW50
IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
QWxsb3cgcGVyIG1lZGlhIGVsZW1lbnQgc3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgorICBjb25k
aXRpb246IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIFZQOURlY29kZXJFbmFibGVkOgogICB0eXBl
OiBib29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0lu
dGVybmFsLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0ludGVybmFs
LnlhbWwKaW5kZXggNzlkMjU2YmEyOGIzZDdhMDZlM2RiNjQwOTY4MTQ1MGY3ZTM2NjhkZi4uNzUx
OTdhNjI1ODI3ZDkzYWFkNDUyODJhYzA0NTAwOWEyNDQwYTgyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbApAQCAtNjMsNiArNjMsMTMg
QEAgV2ViUlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFibGVkOgogICB3ZWJjb3JlQmluZGluZzogUnVu
dGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQogCitTcGVh
a2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZToKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0
VmFsdWU6IHRydWUKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJSZXF1aXJlIGEgdXNlciBnZXN0dXJl
IGZvciBzcGVha2VyIHNlbGVjdGlvbiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiUmVx
dWlyZSBhIHVzZXIgZ2VzdHVyZSBmb3Igc3BlYWtlciBzZWxlY3Rpb24iCisgIGNvbmRpdGlvbjog
RU5BQkxFKE1FRElBX1NUUkVBTSkKKwogRnJhbWVGbGF0dGVuaW5nRW5hYmxlZDoKICAgdHlwZTog
Ym9vbAogICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfRlJBTUVfRkxBVFRFTklORwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRi
ODg1MDBjOWNhZDE4YTkwY2FjODAwMjQxYWFhMjE5NjI0ODQ5YTYuLjkwODg0YWVlZjBmYTBjMjBi
MTBlYzA4MzdkZTQ2ODMxNzRhNDEwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wOS0x
OCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIEhUTUxNZWRpYUVsZW1lbnQuc2V0U2lua0lkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTa2lwIG5ldyB0ZXN0cyBvbiBXSzEuCisKKyAgICAg
ICAgKiBodHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDktMTgg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhhc2ggZGV2aWNl
SWRzIGluIFdlYlByb2Nlc3MgaW5zdGVhZCBvZiBVSVByb2Nlc3MgdG8gYWxsb3cgYXVkaW8gb3V0
cHV0IGRldmljZSBJRHMgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
aW5kZXggZjc4OTVlZTM0ZDk4MTVhZWJmYWNkMzFlNWYwOTMzZmI2YjkwNDM4Ny4uM2JmMDViZWI2
NjJmZDU0YTk1M2JhMTBmNzc1ZTkxNDVkZmFlZjQyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50
LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55bWw6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0
cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanM6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lk
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisKIDIw
MjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhh
c2ggZGV2aWNlSWRzIGluIFdlYlByb2Nlc3MgaW5zdGVhZCBvZiBVSVByb2Nlc3MgdG8gYWxsb3cg
YXVkaW8gb3V0cHV0IGRldmljZSBJRHMgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NGQ1MzcyMmU5YjE4MDFhM2UzOWVlOTljNWJhNmY3YjIwZDgz
MGQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVkaW8tb3V0cHV0
L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1Mgc2V0
U2lua0lkIHJlcXVpcmVzIHVzZXIgZ2VzdHVyZSAKK1BBU1Mgc2V0U2lua0lkIGFuZCBzaW5rSWQg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5r
SWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5r
SWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTIxYjU0MTdmNmQxZGY5OGM1ZDhiYmRlOGY0Yzkw
YzBhODVmNGJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVkaW8t
b3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBzZXRTaW5rSWQgYmVoYXZpb3IgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRG9taW5pcXVlIEhhemFlbC1NYXNzaWV1eCIgaHJlZj0i
bWFpbHRvOmRvbUB3My5vcmciLz4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93d3cu
dzMub3JnL1RSL2F1ZGlvLW91dHB1dC8jZG9tLWh0bWxtZWRpYWVsZW1lbnQtc2V0c2lua2lkIj4K
KzwvaGVhZD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKKworY29uc3QgYXVkaW8gPSBuZXcgQXVkaW8oKTsKKwor
cHJvbWlzZV90ZXN0KHQgPT4geworICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAg
cmV0dXJuOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTcGVha2VyU2VsZWN0aW9uUmVxdWly
ZXNVc2VyR2VzdHVyZSh0cnVlKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHsgaW50ZXJuYWxz
LnNldHRpbmdzLnNldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKGZhbHNlKTsg
fSk7CisKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90QWxsb3dlZEVycm9y
IiwgYXVkaW8uc2V0U2lua0lkKCIiKSk7Cit9LCAic2V0U2lua0lkIHJlcXVpcmVzIHVzZXIgZ2Vz
dHVyZSIpOworCisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBhd2FpdCBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvIDogdHJ1ZSB9KTsKKyAgICBjb25z
dCBsaXN0ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7
CisgICAgY29uc3Qgb3V0cHV0RGV2aWNlc0xpc3QgPSBsaXN0LmZpbHRlcigoe2tpbmR9KSA9PiBr
aW5kID09ICJhdWRpb291dHB1dCIpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKG91dHB1dERldmlj
ZXNMaXN0Lmxlbmd0aCwgMCwgIm1lZGlhIGRldmljZSBsaXN0IGluY2x1ZGVzIGF0IGxlYXN0IG9u
ZSBhdWRpbyBvdXRwdXQgZGV2aWNlIik7CisKKyAgICBsZXQgcHJvbWlzZSA9IGF1ZGlvLnNldFNp
bmtJZChvdXRwdXREZXZpY2VzTGlzdFswXS5kZXZpY2VJZCk7CisKKyAgICBhc3NlcnRfZXF1YWxz
KGF1ZGlvLnNpbmtJZCwgIiIpOworICAgIGF3YWl0IHByb21pc2U7CisgICAgYXNzZXJ0X2VxdWFs
cyhhdWRpby5zaW5rSWQsIG91dHB1dERldmljZXNMaXN0WzBdLmRldmljZUlkKTsKK30sICJzZXRT
aW5rSWQgYW5kIHNpbmtJZCIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4
IDg1Y2ViMzVlMTc5MjhkN2ExNjkwNjBmZjQ0ZWIwYjQ0ZGZlNDcwNTIuLmFjNjFlNjhkNWNmN2Zm
OGUxODA4YjVhMzNjYmY0YTkxMTM3ZTM3YjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCkBAIC00
OSw3ICs0OSw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hcG5nIjogInNraXAiLCAKICAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2FwcC11cmkiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvYXNzdW1wdGlvbnMiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0IjogInNraXAiLCAKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91
dHB1dCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2F1eGNsaWNrIjogInNr
aXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2giOiAiaW1wb3J0
IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9iYXR0ZXJ5LXN0YXR1cyI6ICJza2lwIiwgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1
ZGlvLW91dHB1dC9NRVRBLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYXVkaW8tb3V0cHV0L01FVEEueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2YTdkNGQwNjI1OTEx
N2FmOGZiODQzZjZhOGQyNTJiYWMwMWE4ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9NRVRBLnltbApA
QCAtMCwwICsxLDQgQEAKK3NwZWM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUt
b3V0cHV0Lworc3VnZ2VzdGVkX3Jldmlld2VyczoKKyAgLSBndWlkb3UKKyAgLSBqYW4taXZhcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9h
dWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFy
bmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMzkwNmUyZTE5MjFm
ODBmOWE2OGU5ZjNkYzllOTk2NWRhYmRmN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorCitQQVNTIGlkbF90
ZXN0IHNldHVwIAorUEFTUyBpZGxfdGVzdCB2YWxpZGF0aW9uIAorUEFTUyBQYXJ0aWFsIGludGVy
ZmFjZSBIVE1MTWVkaWFFbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKK1BBU1Mg
UGFydGlhbCBpbnRlcmZhY2UgSFRNTE1lZGlhRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUgCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBEb2N1bWVudEFu
ZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgSFRN
TEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUgCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3Vt
ZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEVsZW1lbnQg
aW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgRWxlbWVu
dCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBIVE1M
TWVkaWFFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHNpbmtJZCAKK1BBU1MgSFRNTE1lZGlh
RWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRTaW5rSWQoRE9NU3RyaW5nKSAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRp
by1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMu
d2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4
MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93Lmh0bWwK
QEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0
IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1
dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2NkYmQwNzY4MzM0ODFi
NTNmMzViMjZkNWVlMDE2ZmQ3MGM0MTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5o
dHRwcy53aW5kb3cuanMKQEAgLTAsMCArMSwyMCBAQAorLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJj
ZXMvV2ViSURMUGFyc2VyLmpzCisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9pZGxoYXJuZXNz
LmpzCisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtb3V0cHV0LworCisn
dXNlIHN0cmljdCc7CisKK2lkbF90ZXN0KAorICBbJ2F1ZGlvLW91dHB1dCddLAorICBbJ21lZGlh
Y2FwdHVyZS1zdHJlYW1zJywgJ2h0bWwnLCAnZG9tJ10sCisgIGlkbF9hcnJheSA9PiB7CisgICAg
c2VsZi5hdWRpbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJyk7CisgICAgc2VsZi52
aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgaWRsX2FycmF5LmFk
ZF9vYmplY3RzKHsKKyAgICAgIEhUTUxBdWRpb0VsZW1lbnQ6IFsnYXVkaW8nXSwKKyAgICAgIEhU
TUxWaWRlb0VsZW1lbnQ6IFsndmlkZW8nXSwKKyAgICAgIE1lZGlhRGV2aWNlczogWyduYXZpZ2F0
b3IubWVkaWFEZXZpY2VzJ10sCisgICAgfSk7CisgIH0KKyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5r
SWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NGUxNzMyMzI0MjEyMmFiOWMyNzNjMjI5NzhiMmI5YzgzZmU2NTE4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9h
dWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
KworUEFTUyBzZXRTaW5rSWQgb24gZGVmYXVsdCBhdWRpbyBvdXRwdXQgc2hvdWxkIGFsd2F5cyB3
b3JrIAorUEFTUyBzZXRTaW5rSWQgZmFpbHMgd2l0aCBOb3RGb3VuZEVycm9yIG9uIG1hZGUgdXAg
ZGV2aWNlaWQgCitGQUlMIExpc3QgZGV2aWNlLCBzZXRTaW5rSWQgc2hvdWxkIGJlIGFsbG93ZWQg
b24gdGhlIGRlZmF1bHQsIHRoZSByZXN0IG9mIHRoZSBkZXZpY2VzIHdpbGwgZ2V0IGEgTm90QWxs
b3dlZEVycm9yIGFzc2VydF9ub3RfZXF1YWxzOiBtZWRpYSBkZXZpY2UgbGlzdCBpbmNsdWRlcyBh
dCBsZWFzdCBvbmUgYXVkaW8gb3V0cHV0IGRldmljZSBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAwCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjFmNzAzYTkzNTBiZjU1N2YwZDM4OTExYTA5YzA5YTlkMDJlYWEzYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBzZXRTaW5rSWQgYmVoYXZpb3IgPC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRG9taW5pcXVlIEhhemFlbC1NYXNzaWV1
eCIgaHJlZj0ibWFpbHRvOmRvbUB3My5vcmciLz4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93d3cudzMub3JnL1RSL2F1ZGlvLW91dHB1dC8jZG9tLWh0bWxtZWRpYWVsZW1lbnQtc2V0
c2lua2lkIj4KKzwvaGVhZD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwv
c2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKKworY29uc3QgYXVkaW8gPSBuZXcgQXVk
aW8oKTsKKworcHJvbWlzZV90ZXN0KHQgPT4gYXVkaW8uc2V0U2lua0lkKCIiKSwgInNldFNpbmtJ
ZCBvbiBkZWZhdWx0IGF1ZGlvIG91dHB1dCBzaG91bGQgYWx3YXlzIHdvcmsiKTsKKworcHJvbWlz
ZV90ZXN0KHQgPT4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90Rm91bmRFcnJvciIsIGF1ZGlv
LnNldFNpbmtJZCgibm9uZXhpc3RlbnRfZGV2aWNlX2lkIikpLAorICAic2V0U2lua0lkIGZhaWxz
IHdpdGggTm90Rm91bmRFcnJvciBvbiBtYWRlIHVwIGRldmljZWlkIik7CisKK3Byb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgY29uc3QgbGlzdCA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZW51bWVyYXRlRGV2aWNlcygpOworICBjb25zdCBvdXRwdXREZXZpY2VzTGlzdCA9IGxpc3Qu
ZmlsdGVyKCh7a2luZH0pID0+IGtpbmQgPT0gImF1ZGlvb3V0cHV0Iik7CisgIGFzc2VydF9ub3Rf
ZXF1YWxzKG91dHB1dERldmljZXNMaXN0Lmxlbmd0aCwgMCwKKyAgICAibWVkaWEgZGV2aWNlIGxp
c3QgaW5jbHVkZXMgYXQgbGVhc3Qgb25lIGF1ZGlvIG91dHB1dCBkZXZpY2UiKTsKKworICBsZXQg
YWNjZXB0ZWREZXZpY2VzID0gMDsKKyAgZm9yIChjb25zdCB7ZGV2aWNlSWR9IG9mIG91dHB1dERl
dmljZXNMaXN0KSB7CisgICAgY29uc3Qge2RldmljZUlkfSA9IG91dHB1dERldmljZXNMaXN0WzBd
OworICAgIGNvbnN0IHAxID0gYXVkaW8uc2V0U2lua0lkKGRldmljZUlkKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF1ZGlvLnNpbmtJZCwgIiIsICJiZWZvcmUgaXQgcmVzb2x2ZXMsIHNldFNpbmtJZCBp
cyB1bmNoYW5nZWQiKTsKKyAgICB0cnkgeworICAgICAgbGV0IHIgPSBhd2FpdCBwMTsKKyAgICAg
IGFzc2VydF9lcXVhbHMoYWNjZXB0ZWREZXZpY2VzLCAwLCAib25seSB0aGUgZGVmYXVsdCBzaW5r
IGRldmljZSBjYW4gYmUgc2V0Iik7CisgICAgICBhY2NlcHRlZERldmljZXMrKzsKKyAgICAgIGFz
c2VydF9lcXVhbHMociwgdW5kZWZpbmVkLCAic2V0U2lua0lkIHJlc29sdmVzIHdpdGggdW5kZWZp
bmVkIik7CisgICAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvLnNpbmtJZCwgZGV2aWNlSWQsICJ3aGVu
IGl0IHJlc29sdmVzLCBzZXRTaW5rSWQgdXBkYXRlcyBzaW5rSWQgdG8gdGhlIHJlcXVlc3RlZCBk
ZXZpY2VJZCIpOworICAgICAgciA9IGF3YWl0IGF1ZGlvLnNldFNpbmtJZChkZXZpY2VJZCk7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKHIsIHVuZGVmaW5lZCwgInJlc2V0dGluZyBzaW5raWQgb24gc2Ft
ZSBjdXJyZW50IHZhbHVlIHNob3VsZCBhbHdheXMgd29yayIpOworICAgICAgciA9IGF3YWl0IGF1
ZGlvLnNldFNpbmtJZCgiIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHIsIHVuZGVmaW5lZCwgInJl
c2V0dGluZyBzaW5raWQgb24gZGVmYXVsdCBhdWRpbyBvdXRwdXQgc2hvdWxkIGFsd2F5cyB3b3Jr
Iik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RB
bGxvd2VkRXJyb3IiLCAiTm9uLWRlZmF1bHQgZGV2aWNlcyBhcmUgZmFpbGluZyB3aXRoIE5vdEFs
bG93ZWQgZXJyb3IiKTsKKyAgICB9CisgIH0KK30sICJMaXN0IGRldmljZSwgc2V0U2lua0lkIHNo
b3VsZCBiZSBhbGxvd2VkIG9uIHRoZSBkZWZhdWx0LCB0aGUgcmVzdCBvZiB0aGUgZGV2aWNlcyB3
aWxsIGdldCBhIE5vdEFsbG93ZWRFcnJvciIpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9hdWRpby1vdXRwdXQvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIzYzUxNWNlZjZlYTlk
MmM4YTMyNTY3OTY5MmFkYWE4MTE1Y2QxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3czYy1pbXBvcnQu
bG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L01FVEEueW1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRw
cy53aW5kb3cuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQtbWFudWFsLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0
cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGY3Y2UxZDM3OTNiM2E0YjAwZTFmMTg3YjA1MjM0Yjc4ZjZmNzQ5ZGUuLjRlYTM5YjNj
N2Y0NjRmZjEwN2RhNmVlNGQyODNhYzk0NWQwNWI0OTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY1LDYgKzY1LDkgQEAgaW5zcGVjdG9y
L3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLU1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQuaHRtbCBbIFNr
aXAgXQogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZ2V0VXNlck1lZGlhLXBlbmRp
bmctcHJvbWlzZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNo
ZS1tZWRpYXN0cmVhbS5odG1sIFsgU2tpcCBdCiAKK2h0dHAvd3B0L2F1ZGlvLW91dHB1dCBbIFNr
aXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQgWyBTa2lw
IF0KKwogIyBEYXRhbGlzdCBpcyB1bnN1cHBvcnRlZCBpbiBXSzEKIGFjY2Vzc2liaWxpdHkvZGF0
YWxpc3QuaHRtbCBbIFdvbnRGaXggXQogZmFzdC9mb3Jtcy9kYXRhbGlzdCBbIFdvbnRGaXggXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1Y2IzNzA4N2Vk
MTJhYzA2MmY2ZTRhMWY1ZDhkNGJhMWFmNmY4MThlLi5iNWQ2YzAzYzQ0OWUzY2MxYTMxZGYyZjIz
ODVkMDcyOTcyZDdlNmJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucwpAQCAtODU5LDYgKzg1OSw5IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWFjYXB0dXJlLXN0cmVhbXMgWyBTa2lwIF0KIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3Ry
ZWFtIFsgU2tpcCBdCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1nZXRVc2VyTWVk
aWEtcGVuZGluZy1wcm9taXNlLmh0bWwgWyBTa2lwIF0KIAoraHR0cC93cHQvYXVkaW8tb3V0cHV0
IFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dCBb
IFNraXAgXQorCiAjIG5lZWRzIGVuaGFuY2VkIGV2ZW50U2VuZGVyLmNvbnRleHRNZW51KCkgcmV0
dXJuIHZhbHVlCiAjd2Via2l0Lm9yZy9iLzQ1MDIxIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25z
Lmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409274</attachid>
            <date>2020-09-21 06:00:11 -0700</date>
            <delta_ts>2020-09-21 12:07:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216696-20200921150008.patch</filename>
            <type>text/plain</type>
            <size>53856</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEwYmY4YTU1MjdkMWU4N2FkOGJjNmVl
MTQ4OWM0NDg0NzhhYjUwZTAuLmI1ODI0Y2ViMTkwMGEwMWQ1NzZlYTViZjZmNWU2MDQyMmU4NTIw
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDktMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50
LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjAtMDktMTcgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT04ocjI2
Njg4NSk6IGZpeCBvcGVuIHNvdXJjZSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEzMjIxMDE1ZjVmZGNi
MTkxMTI2ZDFiMGM1YTZlY2Y3M2U2NTNmMmMuLjRkYjc5NTg3M2Y1ZTVhYTRiMzY4NWMyNDk2ODNj
NmRmMGQxMzJkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMC0wOS0xOCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IEhUTUxNZWRpYUVsZW1lbnQuc2V0U2lua0lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgc2V0U2lua0lkIGFuZCBzaW5rSWQgYXMgcGVy
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtb3V0cHV0LyNodG1sbWVkaWFlbGVt
ZW50LWV4dGVuc2lvbnMuCisgICAgICAgIEludHJvZHVjZSBhIHNldHRpbmcgdG8gZXhwb3NlIHRo
ZXNlIG1ldGhvZHMgYW5kIHRvIGVuYWJsZS9kaXNhYmxlIHVzZXIgZ2VzdHVyZSByZXF1aXJlbWVu
dC4KKyAgICAgICAgQWRkIGludGVyZmFjZXMgdG8gY2hhbmdlIGRldmljZSBvdXRwdXQgZm9yIHNw
ZWNpZmljIG1lZGlhIHBsYXllcnMuCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBITFMsIE1TRSBh
bmQgTWVkaWFTdHJlYW1UcmFjayByZW5kZXJlcnMgb24gTWFjT1MuCisgICAgICAgIEluIGNhc2Ug
b2Ygc2V0dGluZyB0aGUgZW1wdHkgc3RyaW5nLCB0aGUgZGVmYXVsdCBvdXRwdXQgZGV2aWNlIGlz
IHVzZWQKKworICAgICAgICBUZXN0czogaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5o
dHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQu
aHR0cHMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIGh0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjphdWRpb091dHB1dERldmljZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpzZXRBdWRpb091dHB1dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKiBodG1s
L0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OmF1ZGlvT3V0cHV0SGFzaGVkRGV2aWNlSWQgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5pZGw6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNs
aWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjphdWRpb091
dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2Vk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRp
b091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0QXVkaW9PdXRwdXREZXZpY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0QXVkaW9P
dXRwdXREZXZpY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRBdWRpb091dHB1dERldmlj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29h
OjpwdXNoU2FtcGxlcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0QXVkaW9P
dXRwdXREZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisKIDIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhhc2ggZGV2aWNlSWRzIGluIFdlYlByb2Nl
c3MgaW5zdGVhZCBvZiBVSVByb2Nlc3MgdG8gYWxsb3cgYXVkaW8gb3V0cHV0IGRldmljZSBJRHMg
aW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MjBlZDQzZjVkNjMxMmZhNjk2ZDdiODViYThlZTA0
NDkwYmQxYmQzLi44NjNlZDRlNTNiZmNmNDc3YzIwZDU3YmRkMzRmN2FmNWFjZjU1NDM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA5LTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5z
ZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBpbnRlcm5hbCBmbGFnIHRvIGVuYWJsZS9kaXNhYmxlIHVzZXIgZ2VzdHVyZSByZXF1aXJl
bWVudCBmb3Igc2V0dGluZyBhdWRpbyBvdXRwdXQuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U3BlYWtlclNlbGVjdGlv
blJlcXVpcmVzVXNlckdlc3R1cmUpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFNwZWFrZXJT
ZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaDoKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2Vz
cyBpbnN0ZWFkIG9mIFVJUHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBp
biBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDYwMGU1OGM1ZTIyZTEyMjcwMzNm
NWZjMWEyN2FkMGI2YmNkZDIwOWEuLjQ3MTBmNzg5YjMwNzc5OTIxNGZiMmI2ZmFhMzcxYTI4YzBj
NTIyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC02ODIsNiArNjgyLDEwIEBACiAjZGVmaW5l
IEhBVkVfTlNUQUJMRVZJRVdTVFlMRSAxCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNk
ZWZpbmUgSEFWRV9BVURJT19PVVRQVVRfREVWSUNFX1VOSVFVRV9JRCAxCisjZW5kaWYKKwogI2lm
ICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMCkgXAogICAgIHx8IChQTEFURk9STShXQVRD
SE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDcwMDAwKSBcCiAgICAg
fHwgKFBMQVRGT1JNKEFQUExFVFYpICYmIF9fVFZfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTQwMDAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuY3BwCmluZGV4IGJlNzBhYWFiZDhlODBkMmY3YjVjZjUyZTczMjcxNWY2MTgzOThm
MGUuLjg1MTkzYWM4NWUxNGEwZjQ0ZDQxY2VlNDc5OWIzNzlkZGFkMmIwYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAg
LTIwMiw2ICsyMDIsOCBAQCB2b2lkIE1lZGlhRGV2aWNlczo6ZXhwb3NlRGV2aWNlcyhjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMsIGNvbnN0CiAgICAgYm9vbCBjYW5BY2Nl
c3NNaWNyb3Bob25lID0gY2hlY2tNaWNyb3Bob25lQWNjZXNzKGRvY3VtZW50KTsKICAgICBib29s
IGNhbkFjY2Vzc1NwZWFrZXIgPSBjaGVja1NwZWFrZXJBY2Nlc3MoZG9jdW1lbnQpOwogCisgICAg
bV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuY2xlYXIoKTsKKwogICAgIFZlY3Rv
cjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gZGV2aWNlczsKICAgICBmb3IgKGF1dG8mIG5ld0Rldmlj
ZSA6IG5ld0RldmljZXMpIHsKICAgICAgICAgaWYgKCFjYW5BY2Nlc3NNaWNyb3Bob25lICYmIG5l
d0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkK
QEAgLTIxNCw2ICsyMTYsOSBAQCB2b2lkIE1lZGlhRGV2aWNlczo6ZXhwb3NlRGV2aWNlcyhjb25z
dCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMsIGNvbnN0CiAgICAgICAgIGF1dG8g
ZGV2aWNlSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3Ry
aW5nV2l0aFNhbHQobmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2VJREhhc2hTYWx0KTsK
ICAgICAgICAgYXV0byBncm91cElkID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG5ld0RldmljZS5ncm91cElkKCksIG1fZ3JvdXBJZEhh
c2hTYWx0KTsKIAorICAgICAgICBpZiAobmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpTcGVha2VyKQorICAgICAgICAgICAgbV9hdWRpb091dHB1dERldmljZUlk
VG9QZXJzaXN0ZW50SWQuYWRkKGRldmljZUlkLCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkpOwor
CiAgICAgICAgIGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKG5ld0Rldmlj
ZS5sYWJlbCgpLCBXVEZNb3ZlKGRldmljZUlkKSwgV1RGTW92ZShncm91cElkKSwgdG9NZWRpYURl
dmljZUluZm9LaW5kKG5ld0RldmljZS50eXBlKCkpKSk7CiAgICAgfQogICAgIHByb21pc2UucmVz
b2x2ZShkZXZpY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5oCmluZGV4IDU4Mjg2NzI1M2NhZDE2OThkODAxNWY2NmVhNWY1MzRmOTJm
NTM5ZDEuLjZmOTA2MjhhYjBjYzhmMGEzNDExMTM0Zjg3OTdlNjRiZmM4MTZmMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApAQCAt
ODksNiArODksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2VzKEVudW1lcmF0
ZURldmljZXNQcm9taXNlJiYpOwogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cyBn
ZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogCisgICAgU3RyaW5nIGRldmljZUlkVG9QZXJzaXN0
ZW50SWQoY29uc3QgU3RyaW5nJiBkZXZpY2VJZCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb091dHB1
dERldmljZUlkVG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsgfQorCiAgICAgdXNpbmcgUmVm
Q291bnRlZDxNZWRpYURldmljZXM+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYURl
dmljZXM+OjpkZXJlZjsKIApAQCAtMTMwLDYgKzEzMiw5IEBAIHByaXZhdGU6CiAKICAgICBPcHRp
b25TZXQ8R2VzdHVyZUFsbG93ZWRSZXF1ZXN0PiBtX3JlcXVlc3RUeXBlc0ZvckN1cnJlbnRHZXN0
dXJlOwogICAgIFdlYWtQdHI8VXNlckdlc3R1cmVUb2tlbj4gbV9jdXJyZW50R2VzdHVyZVRva2Vu
OworCisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9hdWRpb091dHB1dERldmljZUlkVG9Q
ZXJzaXN0ZW50SWQ7CisgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGE0ZjM2Nzk4ZTU0YWY0ZmQzOTRmNDIzYzZmYjBhNmZhMDg2OTZiMjEuLjRjN2U4
MmY4NjUwZTkzMmFkODQ1ZDU3NDY4ZGMxOWJlZmU1MDY1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgIk1JTUVU
eXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJN
ZWRpYUNvbnRyb2xzSG9zdC5oIgorI2luY2x1ZGUgIk1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUg
Ik1lZGlhRG9jdW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYUVycm9yLmgiCiAjaW5jbHVkZSAiTWVk
aWFGcmFnbWVudFVSSVBhcnNlci5oIgpAQCAtNzgsNiArNzksNyBAQAogI2luY2x1ZGUgIk1lZGlh
UGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2luY2x1ZGUgIk1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYURldmljZXMuaCIK
ICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBPREludGVydmFsVHJl
ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTI4NDMsNiArMjg0NSw1OSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmZhc3RTZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICBzZWVrV2l0
aFRvbGVyYW5jZSh0aW1lLCBuZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lOjp6ZXJvVGltZSgp
LCB0cnVlKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitTdHJpbmcgSFRNTE1lZGlh
RWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX2F1ZGlv
T3V0cHV0UGVyc2lzdGVudERldmljZUlkOworfQorCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNl
dEF1ZGlvT3V0cHV0RGV2aWNlKFN0cmluZyYmIGRldmljZUlkLCBET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50KCkuZG9tV2lu
ZG93KCk7CisgICAgYXV0byogbWVkaWFEZXZpY2VzID0gd2luZG93ID8gTmF2aWdhdG9yTWVkaWFE
ZXZpY2VzOjptZWRpYURldmljZXMod2luZG93LT5uYXZpZ2F0b3IoKSkgOiBudWxscHRyOworICAg
IGlmICghbWVkaWFEZXZpY2VzKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IE5vdEFsbG93ZWRFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgh
ZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpICYmIGRvY3VtZW50KCku
c2V0dGluZ3MoKS5zcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSgpKSB7CisgICAg
ICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNlciBn
ZXN0dXJlIGlzIHJlcXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKGRldmljZUlkLmlzRW1wdHkoKSkKKyAgICAgICAgZGV2aWNlSWQgPSB7IH07CisKKyAgICBp
ZiAoZGV2aWNlSWQgPT0gbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkKSB7CisgICAgICAgIHBy
b21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIHBl
cnNpc3RlbnRJZDsKKyAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKSB7CisgICAgICAgIHBlcnNp
c3RlbnRJZCA9IG1lZGlhRGV2aWNlcy0+ZGV2aWNlSWRUb1BlcnNpc3RlbnRJZChkZXZpY2VJZCk7
CisgICAgICAgIGlmIChwZXJzaXN0ZW50SWQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmlj
ZUlkID0gV1RGTW92ZShwZXJzaXN0ZW50SWQpOworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAg
bV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCisgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVt
ZW50LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkZXZpY2VJZCA9IFdU
Rk1vdmUoZGV2aWNlSWQpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkID0gV1RGTW92ZShkZXZpY2VJZCk7
CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIH0pOworfQorI2VuZGlmCisKK1N0cmlu
ZyBIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZpY2VJZDsKK30KKwogdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsIHRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCBhYjJiMDAxMWI1OTQzOWVhNTFlOGFhM2UyMDhmZTAxMmM2M2QxMmVkLi5kMGRlZmIx
NzU0ZmE5MGI4M2E3Y2M0Mjk1ODc5YjUxNGYyMzRlZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtMjY4LDYgKzI2OCwxMSBAQCBwdWJsaWM6CiAgICAgZG91Ymxl
IG1pbkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0OwogICAgIGRvdWJsZSBtYXhGYXN0Rm9yd2FyZFJh
dGUoKSBjb25zdDsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3RyaW5nIGF1ZGlv
T3V0cHV0RGV2aWNlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZShTdHJp
bmcmJiBkZXZpY2VJZCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworI2VuZGlmCisKICAg
ICB1c2luZyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkJ1ZmZlcmluZ1BvbGljeTsKICAgICB2b2lk
IHNldEJ1ZmZlcmluZ1BvbGljeShCdWZmZXJpbmdQb2xpY3kpOwogICAgIFdFQkNPUkVfRVhQT1JU
IEJ1ZmZlcmluZ1BvbGljeSBidWZmZXJpbmdQb2xpY3koKSBjb25zdDsKQEAgLTU4MCw2ICs1ODUs
OCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPdmVycmlkZVByZWZlcnJl
ZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSk7CiAgICAgdm9pZCBzZXRQcmVmZXJy
ZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpOwogCisgICAgU3RyaW5nIGF1ZGlv
T3V0cHV0SGFzaGVkRGV2aWNlSWQoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvT3V0cHV0SGFzaGVk
RGV2aWNlSWQ7IH0KKwogcHJvdGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZpcnR1
YWwgdm9pZCBmaW5pc2hJbml0aWFsaXphdGlvbigpOwpAQCAtNjA0LDYgKzYxMSw4IEBAIHByb3Rl
Y3RlZDoKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAg
ICAgU2VjdXJpdHlPcmlnaW5EYXRhIGRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCBmaW5h
bDsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0IGZpbmFsOworICAgIFN0
cmluZyBhdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmljZUlkOyB9CiAKICAgICBib29sIG1lZGlhQ29udHJv
bHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDb250cm9s
c0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yOyB9CiAgICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xzRGVw
ZW5kT25QYWdlU2NhbGVGYWN0b3IoYm9vbCk7CkBAIC0xMTk3LDYgKzEyMDYsOSBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0IHsgZmFsc2UgfTsKICAgICBi
b29sIG1fcGxheWluZ09uU2Vjb25kU2NyZWVuIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVtb3Zl
ZEJlaGF2aW9yUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlIHsgZmFsc2UgfTsKKwor
ICAgIFN0cmluZyBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmljZUlkOworICAgIFN0cmluZyBt
X2F1ZGlvT3V0cHV0SGFzaGVkRGV2aWNlSWQ7CiB9OwogCiBTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudDo6QXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKaW5kZXggYjQyZDBlYTM3
MTA2YjQ3MmJiYzljZWRmNjA3ODNmZTBhMzllZmZjOS4uZTc0YmVmNTYwOTI0MmQwNTEzNGU0YTg0
MWY0YmQwNmFhMmFlMzE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aWRsCkBAIC04Niw2ICs4Niw5IEBAIHR5cGVkZWYgKAogICAgIHVuZGVmaW5lZCBwYXVzZSgpOwog
ICAgIHVuZGVmaW5lZCBmYXN0U2Vlayh1bnJlc3RyaWN0ZWQgZG91YmxlIHRpbWUpOwogCisgICAg
W0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2Vy
cyZQZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbiwgSW1wbGVtZW50ZWRBcz1hdWRpb091dHB1dEhh
c2hlZERldmljZUlkXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNpbmtJZDsKKyAgICBb
Q29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPUV4cG9zZVNwZWFrZXJz
JlBlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uLCBJbXBsZW1lbnRlZEFzPXNldEF1ZGlvT3V0cHV0
RGV2aWNlXSBQcm9taXNlPHVuZGVmaW5lZD4gc2V0U2lua0lkKERPTVN0cmluZyBkZXZpY2VJZCk7
CisKICAgICAvLyBjb250cm9scwogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWRdIGF0dHJpYnV0
ZSBib29sZWFuIGNvbnRyb2xzOwogICAgIGF0dHJpYnV0ZSBkb3VibGUgdm9sdW1lOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDE3ODk3ZWUzMDRhZWIyMmI1ODJmYmQ5M2I0YjkyNjE0
MjAyNzNiNmYuLjRiYzY4MTY5OTgwYTEzMzE0ZTdiZmU0Y2U2NDUwM2I5NTJkZmQ5M2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTgyNiw2ICs4MjYsMTIgQEAgbWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeToKIGV4cG9zZVNwZWFrZXJzRW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UK
IAorcGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25FbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQor
CitzcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZToKKyAgaW5pdGlhbDogdHJ1ZQor
CiBtZWRpYURldmljZUlkZW50aWZpZXJTdG9yYWdlRGlyZWN0b3J5OgogICB0eXBlOiBTdHJpbmcK
ICAgY29uZGl0aW9uYWw6IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNjNjZjNjY2VlODExMmUx
NTVlMTkzODA1YTY0NDhjZThkYmExZTNhMi4uOTAyZjU4OTk3ZjcyNmNmYjE3YTYyNmJkOWU5NDY1
ZTU5ZGRlY2IwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcApAQCAtMTYwNCw2ICsxNjA0LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnNl
dFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSBtb2RlKQogICAgIG1f
cHJpdmF0ZS0+c2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShtb2RlKTsKIH0KIAordm9pZCBN
ZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBtX3ByaXZhdGUt
PmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiBjb25zdCBMb2dnZXImIE1lZGlhUGxheWVyOjptZWRpYVBsYXllckxvZ2dlcigpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBl
YTI1N2YxMmFjZjA5ZTBiYmRmYjMyOWIxMTUzY2NlNTFhY2FmNGYzLi5kNDY3MzFhMmJhZGY4ODU3
MDE4MDE5ODgxNTYyMzJjMzRiMWZkZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3Myw2ICsyNzMsOSBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIFNlY3VyaXR5T3JpZ2luRGF0YSBkb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgY29u
c3QgeyByZXR1cm4geyB9OyB9CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBhdWRpb091dHB1dERldmlj
ZUlkKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAgdmlydHVhbCBTdHJpbmcgYXVkaW9PdXRw
dXREZXZpY2VJZE92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRl
bnRpZmllcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IExvZ2dlciYg
bWVkaWFQbGF5ZXJMb2dnZXIoKSA9IDA7CkBAIC02MzEsNiArNjM0LDEwIEBAIHB1YmxpYzoKICAg
ICBEeW5hbWljUmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoKSBjb25zdCB7IHJl
dHVybiBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7IH0KICAgICB2b2lkIHNldFByZWZlcnJl
ZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSk7CiAKKyAgICBTdHJpbmcgYXVkaW9P
dXRwdXREZXZpY2VJZCgpIGNvbnN0OworICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlkT3Zl
cnJpZGUoKSBjb25zdDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCiBw
cml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQ
bGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIpOwpAQCAtNzA1LDYgKzcxMiwxNiBAQCBwdWJsaWM6CiB9OwogCiAKK2lubGluZSBT
dHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hdWRpb091dHB1dERldmljZUlkKCkgOiBTdHJpbmcg
eyB9OworfQorCitpbmxpbmUgU3RyaW5nIE1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUlk
T3ZlcnJpZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5hdWRp
b091dHB1dERldmljZUlkT3ZlcnJpZGUoKSA6IFN0cmluZyB7IH07Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggNjcw
YzBhNDk0YzExYTI3Mzc2MDQyODQxODNjMDA3ODhkOTc1OTc4ZC4uODEyNTMzMDI3NmRkNTQ0ZTFm
Y2FiZGExN2Q2MzZjYmNmODdiYWQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI4OSw2ICsyODksOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKSB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUoRHluYW1pY1JhbmdlTW9kZSkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9PdXRw
dXREZXZpY2VDaGFuZ2VkKCkgeyB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXgg
YWRlMDYzMmM5ZjZjZGMwYzE0ZDVkYTg4NWNhN2I3NDI3OGJiZDNlMy4uODVjZTgxZDEwM2I4NWQx
ZDQyNmI3YTM0OGQ4ZjAzYTBiZTM2NjQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMzE4
LDYgKzMxOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTaG91bGRPYnNlcnZlVGltZUNvbnRy
b2xTdGF0dXMoYm9vbCk7CiAKICAgICB2b2lkIHNldFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUo
RHluYW1pY1JhbmdlTW9kZSkgZmluYWw7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5n
ZWQoKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxBVlVSTEFzc2V0PiBtX2F2QXNzZXQ7CiAgICAg
UmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5k
ZXggYWMwZjhmZmEwMjg4M2U0YWFmZmYzMmJmMzgwZjg4MjMwMDJiNTYxNS4uNTIyZTBjNzRkYjg5
NWRjMjM2OGJiOTdkY2VlMDdlZTI1YjBmZjkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBA
IC05NTMsNiArOTUzLDE2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3JlYXRlQVZQbGF5ZXIoKQogICAgIGlmIChtX2F2UGxheWVySXRlbSkKICAgICAgICAgc2V0
QVZQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgpKTsKIAorI2lmIEhBVkUoQVVESU9fT1VU
UFVUX0RFVklDRV9VTklRVUVfSUQpCisgICAgYXV0byBhdWRpb091dHB1dERldmljZUlkID0gcGxh
eWVyKCktPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGlmICghYXVkaW9PdXRw
dXREZXZpY2VJZC5pc051bGwoKSkgeworICAgICAgICBpZiAoYXVkaW9PdXRwdXREZXZpY2VJZC5p
c0VtcHR5KCkpCisgICAgICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0cHV0RGV2aWNl
VW5pcXVlSUQgPSBuaWw7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYXZQbGF5ZXIuZ2V0
KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IGF1ZGlvT3V0cHV0RGV2aWNlSWQ7CisgICAg
fQorI2VuZGlmCisKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKQEAgLTMyOTMs
NiArMzMwMywxOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNl
dFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbgogI2VuZGlmCiB9CiAKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFu
Z2VkKCkKK3sKKyNpZiBIQVZFKEFVRElPX09VVFBVVF9ERVZJQ0VfVU5JUVVFX0lEKQorICAgIGlm
ICghbV9hdlBsYXllciB8fCAhcGxheWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRl
dmljZUlkID0gcGxheWVyKCktPmF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKKyAgICBpZiAoZGV2aWNl
SWQuaXNFbXB0eSgpKQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0cHV0RGV2aWNl
VW5pcXVlSUQgPSBuaWw7CisgICAgZWxzZQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlv
T3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBkZXZpY2VJZDsKKyNlbmRpZgorfQorCiBOU0FycmF5KiBh
c3NldE1ldGFkYXRhS2V5TmFtZXMoKQogewogICAgIHN0YXRpYyBOU0FycmF5KiBrZXlzID0gW1tO
U0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmlu
ZGV4IDA5YmY1NTc0ODQzMzFkNTgyMjBkMjBmNWYyMDMzMjk2ZTY5Y2VjNDIuLjhjZTNiN2I0MDVk
ZmRmOTcwMmYyZjk1MThhZDY5ZGQ4NWJkZjc3NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5o
CkBAIC0yNTQsNiArMjU0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgYm9vbCBwZXJmb3Jt
VGFza0F0TWVkaWFUaW1lKEZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgZmlu
YWw7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIHZv
aWQgZW5zdXJlTGF5ZXIoKTsKICAgICB2b2lkIGRlc3Ryb3lMYXllcigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCmluZGV4IDhiOTQxNTA3YzAzODgxYzAyMTZiNGU3OTJlMzlkYjI2ZTM1N2Zk
YjkuLjBiYjQyMTI1YzgyOWEwODdlMWMxN2RkNTY2N2IxOTMzZGI0MWY5ODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KQEAgLTExNjYsNiArMTE2NiwxNiBAQCBBTExPV19ORVdfQVBJX1dJ
VEhPVVRfR1VBUkRTX0VORAogICAgIFthdWRpb1JlbmRlcmVyIHNldFZvbHVtZTptX3BsYXllci0+
dm9sdW1lKCldOwogICAgIFthdWRpb1JlbmRlcmVyIHNldEF1ZGlvVGltZVBpdGNoQWxnb3JpdGht
OihtX3BsYXllci0+cHJlc2VydmVzUGl0Y2goKSA/IEFWQXVkaW9UaW1lUGl0Y2hBbGdvcml0aG1T
cGVjdHJhbCA6IEFWQXVkaW9UaW1lUGl0Y2hBbGdvcml0aG1WYXJpc3BlZWQpXTsKIAorI2lmIEhB
VkUoQVVESU9fT1VUUFVUX0RFVklDRV9VTklRVUVfSUQpCisgICAgYXV0byBkZXZpY2VJZCA9IG1f
cGxheWVyLT5hdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKTsKKyAgICBpZiAoIWRldmljZUlk
LmlzTnVsbCgpKSB7CisgICAgICAgIGlmIChkZXZpY2VJZC5pc0VtcHR5KCkpCisgICAgICAgICAg
ICBhdWRpb1JlbmRlcmVyLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBuaWw7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGF1ZGlvUmVuZGVyZXIuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJ
RCA9IGRldmljZUlkOworICAgIH0KKyNlbmRpZgorCiAgICAgQHRyeSB7CiAgICAgICAgIFttX3N5
bmNocm9uaXplciBhZGRSZW5kZXJlcjphdWRpb1JlbmRlcmVyXTsKICAgICB9IEBjYXRjaChOU0V4
Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CkBAIC0xMjc2LDYgKzEyODYsMjIgQEAgYm9vbCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoV1RG
OjpGdW5jdGlvbjwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisjaWYg
SEFWRShBVURJT19PVVRQVVRfREVWSUNFX1VOSVFVRV9JRCkKKyAgICBpZiAoIW1fcGxheWVyKQor
ICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5hdWRpb091dHB1
dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBrZXkgOiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXJNYXAua2V5cygpKSB7CisgICAgICAgIGF1dG8gcmVuZGVyZXIgPSAoKF9fYnJpZGdlIEFW
U2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqKWtleS5nZXQoKSk7CisgICAgICAgIGlmIChkZXZp
Y2VJZC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZW5kZXJlci5hdWRpb091dHB1dERldmljZVVu
aXF1ZUlEID0gbmlsOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZW5kZXJlci5hdWRpb091
dHB1dERldmljZVVuaXF1ZUlEID0gZGV2aWNlSWQ7CisgICAgfQorI2VuZGlmCit9CisKIFdURkxv
Z0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bG9nQ2hhbm5l
bCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExvZ01lZGlhU291cmNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMuaAppbmRleCA4ZGU4OTVkN2IyNDExOGZkYjI4ZmFjMzljYjFiZmJlOThiOGY3NjEzLi42
MzFmMzAzMWVhNDM4MGVhMzhkMWQ0NWFmNmIzNDI5MDAwMjUwZTllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMuaApAQCAtMTU5LDYgKzE1OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBlbmRlZCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZW5kZWQ7IH0KIAogICAgIHZvaWQgc2V0QnVmZmVy
aW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIG92ZXJyaWRlOworICAgIHZv
aWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSBjdXJyZW50UmVhZHlTdGF0ZSgpOwogICAgIHZvaWQgdXBkYXRlUmVhZHlTdGF0
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDJkYjUwYmI4OTU3NGVkYzM3YWQ5
YzdjYzliYWJmY2MxOTM3MDMwMzYuLjNhOGMzOGM3Njg0ZDQxNThhNTYzNjljNDcwZDEwNGEwNzRj
OWVlOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTg2Nyw3ICs4NjcsOCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkK
IHsKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciBjdXJyZW50VHJhY2tzID0gbV9t
ZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpOwogCi0gICAgYXV0byBzZXRBdWRpb1RyYWNrU3Rh
dGUgPSBbdGhpc10oQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSYgdHJhY2ssIGludCBpbmRl
eCwgVHJhY2tTdGF0ZSBzdGF0ZSkKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlv
T3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGF1dG8gc2V0QXVkaW9UcmFja1N0YXRlID0g
W3RoaXMsICZkZXZpY2VJZF0oQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSYgdHJhY2ssIGlu
dCBpbmRleCwgVHJhY2tTdGF0ZSBzdGF0ZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoc3RhdGUp
IHsKICAgICAgICAgY2FzZSBUcmFja1N0YXRlOjpSZW1vdmU6CkBAIC04ODQsNiArODg1LDkgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcygp
CiAgICAgICAgICAgICB0cmFjay5zZXRWb2x1bWUobV92b2x1bWUpOwogICAgICAgICAgICAgdHJh
Y2suc2V0TXV0ZWQobV9tdXRlZCk7CiAgICAgICAgICAgICB0cmFjay5zZXRFbmFibGVkKHRyYWNr
LnN0cmVhbVRyYWNrKCkuZW5hYmxlZCgpICYmICF0cmFjay5zdHJlYW1UcmFjaygpLm11dGVkKCkp
OworICAgICAgICAgICAgaWYgKCFkZXZpY2VJZC5pc051bGwoKSkKKyAgICAgICAgICAgICAgICB0
cmFjay5zZXRBdWRpb091dHB1dERldmljZShkZXZpY2VJZCk7CisKICAgICAgICAgICAgIGlmIChw
bGF5aW5nKCkpCiAgICAgICAgICAgICAgICAgdHJhY2sucGxheSgpOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC0xMDE3LDYgKzEwMjEsMTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNldEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmUKICAgICAg
ICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmZsdXNoQW5kUmVtb3ZlSW1hZ2UoKTsKIH0K
IAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmF1ZGlvT3V0cHV0
RGV2aWNlQ2hhbmdlZCgpCit7CisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOwor
ICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VJZCgpOworICAg
IGZvciAoYXV0byYgYXVkaW9UcmFjayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMoKSkKKyAgICAg
ICAgYXVkaW9UcmFjay0+c2V0QXVkaW9PdXRwdXREZXZpY2UoZGV2aWNlSWQpOworfQorCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2NoZWR1bGVEZWZlcnJlZFRh
c2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKaW5kZXggNjQ4OWY5ZGE3YzU2
MjZjMjAyOTc4NTNmMWEwMWU5ZWFmYmU1NjAwYi4uZTcyNTVhMzZlMDIwMzZiNzE2ODJlMzc1NGM4
NTkyZDE4YWZmNWE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCkBA
IC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0
KTsKICAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRBdWRp
b091dHB1dERldmljZShjb25zdCBTdHJpbmcmKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKICNlbmRp
ZgpAQCAtMTA5LDYgKzExMSwxMCBAQCBpbmxpbmUgY29uc3QgY2hhciogQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OmxvZ0NsYXNzTmFtZSgpIGNvbnN0CiB9CiAjZW5kaWYKIAoraW5saW5l
IHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldEF1ZGlvT3V0cHV0RGV2aWNl
KGNvbnN0IFN0cmluZyYpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCmluZGV4IGExODVjZDQ3
MDM2M2U2MDVmOTBkNDk5ZGUwMzgwOTc5NmFjOWM1YWMuLjVkYTU3OTUwYjk4OTA0Y2EwOThkYmEz
NDc5MjJmZGNjNzZjNDgwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0u
Y3BwCkBAIC05Nyw2ICs5NywxMSBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06
OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgdXBkYXRlUmVuZGVyZXIoKTsKIH0KIAordm9p
ZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRBdWRpb091dHB1dERldmljZShjb25z
dCBTdHJpbmcmIGRldmljZUlkKQoreworICAgIG1fcmVuZGVyZXItPnNldEF1ZGlvT3V0cHV0RGV2
aWNlKGRldmljZUlkKTsKK30KKwogZmxvYXQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6
dm9sdW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yZW5kZXJlci0+dm9sdW1lKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9B
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKaW5kZXggYTQ4NWMxOGNhODdhMWM2ZjMyYTYx
OWVlOGNkYzVhM2M4ZWFkNzRlMy4uMmY3NGQ5NTUyNGZkZmMzMThmNmVkNTUyMWE1OGYwNDJhYjY1
ZWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaApAQCAtNDcsNiArNDcs
NyBAQCBwdWJsaWM6CiAgICAgfkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKTsKIAogICAg
IHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CisgICAg
dm9pZCBzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmKTsKIAogICAgIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiBzdHJlYW1UcmFjaygpIHsgcmV0dXJuIG1fc3RyZWFtVHJhY2suZ2V0
KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
Q29jb2EuY3BwCmluZGV4IDc2MjMyYjc5ZDlkMDdlYjFiODljNDJlYjUzNDRkZGMzMDU0MmFlMDgu
LjViMTFkZGVlN2MxMjE4OWY3MDBkYzNkZjI0OGVkZmJhMDA4YTk3NTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAKQEAgLTY3LDEx
ICs2NywxOCBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldFZv
bHVtZShmbG9hdCB2b2x1bWUpCiAgICAgICAgIG1fZGF0YVNvdXJjZS0+c2V0Vm9sdW1lKHZvbHVt
ZSk7CiB9CiAKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVk
aW9PdXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJZCkKK3sKKyAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGNyZWF0ZSBhIHVuaXQgZm9yIG91cnNlbHZlcyBoZXJlIG9yIHVzZSB0aGUgZGVm
YXVsdCB1bml0IGlmIGRldmljZUlkIGlzIG1hdGNoaW5nLgorICAgIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdDo6c2luZ2xldG9uKCkuc2V0QXVkaW9PdXRwdXREZXZpY2UoZGV2aWNl
SWQpOworICAgIG1fc2hvdWxkUmVzZXQgPSB0cnVlOworfQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgc2FtcGxl
VGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJh
c2ljVHlwZSk7Ci0gICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXRE
ZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNj
cmlwdGlvbikgeworICAgIGlmICghbV9kYXRhU291cmNlIHx8IG1fc2hvdWxkUmVzZXQgfHwgIW1f
ZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVz
Y3JpcHRpb24oKSAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBB
dWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAy
LCAqdGhpcyk7CiAKICAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KHRvQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkpIHsKQEAgLTk1LDYgKzEwMiw3IEBA
IHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29u
c3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lCiAgICAgICAgICAgICBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlclVuaXQ6OnNpbmdsZXRvbigpLmFkZFNvdXJjZShXVEZNb3ZlKG5ld1NvdXJjZSkp
OwogICAgICAgICB9KTsKICAgICAgICAgbV9kYXRhU291cmNlID0gV1RGTW92ZShkYXRhU291cmNl
KTsKKyAgICAgICAgbV9zaG91bGRSZXNldCA9IGZhbHNlOwogICAgIH0KIAogICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXMoc2FtcGxlVGltZSwgYXVkaW9EYXRhLCBzYW1wbGVDb3VudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAppbmRl
eCA1MWFjNDMzN2M0ZTAzNThmZGRjYjRlYTg1NDdmMmFiYjBiYzBmYTg3Li5kZTgzOTY3NGJkN2Qw
NDkzZWRjYzYxOTJjMGIxOTJhNGY3NDUwOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKQEAgLTUzLDkgKzUzLDExIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgdm9pZCBjbGVhcigpIGZpbmFsOwogICAgIHZv
aWQgc2V0Vm9sdW1lKGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNl
KGNvbnN0IFN0cmluZyYpIGZpbmFsOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPENBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbj4gbV9vdXRwdXREZXNjcmlwdGlvbjsKICAgICBSZWZQdHI8QXVkaW9TYW1w
bGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7CisgICAgYm9vbCBtX3Nob3VsZFJlc2V0IHsgZmFs
c2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyVW5pdC5jcHAKaW5kZXggZGFjNzRhMTI1NWM1ZTU0YTUyMzQzNmZlNjlhOGU0NDRjMmU3
MGIxNS4uZTcxNTg3ODQ2YTQ5NGZkYzg4MTBkODgyNGYyNmY2Yzg3NjU1NjAxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKQEAgLTM2
LDYgKzM2LDExIEBACiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9BdWRpb1Rvb2xib3hTUEkuaD4K
ICNpbmNsdWRlIDx3dGYvTG9jay5oPgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAi
Q29yZUF1ZGlvQ2FwdHVyZURldmljZS5oIgorI2luY2x1ZGUgIkNvcmVBdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyLmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGlu
ay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MSw2ICs1NiwzMyBAQCBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6On5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQoKQogICAgIHN0b3AoKTsKIH0KIAordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpCit7Cisj
aWYgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXI6OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOwor
CisgICAgaWYgKCFkZXZpY2UgJiYgIWRldmljZUlELmlzRW1wdHkoKSkgeworICAgICAgICBSRUxF
QVNFX0xPRyhXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnNldEF1
ZGlvT3V0cHV0RGV2aWNlSWQgLSBkaWQgbm90IGZpbmQgZGV2aWNlIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvIGF1ZGlvVW5pdERldmljZUlEID0gZGV2aWNlID8gZGV2aWNl
LT5kZXZpY2VJRCgpIDogMDsKKyAgICBpZiAobV9kZXZpY2VJRCA9PSBhdWRpb1VuaXREZXZpY2VJ
RCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBzaG91bGRSZXN0YXJ0ID0gbV9pc1N0YXJ0
ZWQ7CisgICAgaWYgKG1faXNTdGFydGVkKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX2Rldmlj
ZUlEID0gYXVkaW9Vbml0RGV2aWNlSUQ7CisKKyAgICBpZiAoc2hvdWxkUmVzdGFydCkKKyAgICAg
ICAgc3RhcnQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRldmljZUlEKTsKKyNlbmRpZgor
fQorCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlKFJl
ZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYgc291cmNlKQogewogICAgIFJFTEVBU0VfTE9HKFdl
YlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlIik7CkBA
IC0xNjEsNiArMTkzLDE2IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCgpCiAgICAgfQogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgaWYgKG1fZGV2aWNlSUQpIHsKKyAgICAgICAgZXJyb3IgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50
RGV2aWNlLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmbV9kZXZpY2VJRCwgc2l6ZW9mKG1f
ZGV2aWNlSUQpKTsKKyAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0
ZUF1ZGlvVW5pdCB1bmFibGUgdG8gc2V0IHVuaXQgZGV2aWNlIElEICVkLCBlcnJvciAlZCAoJS40
cykiLCAoaW50KW1fZGV2aWNlSUQsIChpbnQpZXJyb3IsIChjaGFyKikmZXJyb3IpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKICAgICBBVVJlbmRlckNh
bGxiYWNrU3RydWN0IGNhbGxiYWNrID0geyBpbnB1dFByb2MsIG51bGxwdHIgfTsKICAgICBlcnJv
ciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5
X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCAmY2FsbGJhY2ss
IHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyVW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCmluZGV4IDQ0MDc2YTU2ZWM5NzRmOWJi
ODczNDJiZmM3NDgzMGM4NTljNzcyZjYuLjYxMDgxMDRlYjZmNzdiZWJlZjE4NjRiZDg4NzY0MzE3
N2UwYWQ0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0LmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnQoKTsKICAg
ICB2b2lkIHN0b3AoKTsKIAorICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2UoY29uc3QgU3Ry
aW5nJik7CisKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYm
KTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKIApAQCAt
NjgsNiArNzAsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRVcGRhdGVSZW5kZXJTb3Vy
Y2VzIHsgZmFsc2UgfTsKICAgICBMb2NrIG1fc291cmNlc0xvY2s7CiAgICAgYm9vbCBtX2lzU3Rh
cnRlZCB7IGZhbHNlIH07CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHVpbnQzMl90IG1fZGV2aWNl
SUQgeyAwIH07CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCA1OTEwNjEyMWE2NjVlMThlZDQ5NjY4MWU3ZmRkMzVkYzcyYTBiMGU3Li5mNDM0Nzc4
NjhlYTk5ZWQ3Y2FkNWQ2ZmFmMjBhODc1MWE5ZDcwMGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC01NjcsNiArNTY3LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9D
b25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQodHJ1ZSk7CiAgICAgcGFn
ZS5zZXR0aW5ncygpLnNldFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkKHRydWUpOwogI2VuZGlmCisg
ICAgcGFnZS5zZXR0aW5ncygpLnNldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJl
KGZhbHNlKTsKIAogICAgIHBhZ2Uuc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oMF9zKTsK
ICAgICBwYWdlLnNldEZ1bGxzY3JlZW5JbnNldHMoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGVkZjU4YmVk
YTJlOWQwNGY1ODIyMWRhYWRlY2JlMjVmZTAxNjBiMDAuLmUwNjA0ZjcxMjJkYWNhZGYyN2YzYzU0
NjNiZmY2NWY3ZGNkNTQ3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTM2LDcgKzEzNiwxNCBAQCBFeHBvc2VT
cGVha2Vyc0VuYWJsZWQ6CiAgIGRlZmF1bHRWYWx1ZTogZmFsc2UKICAgaHVtYW5SZWFkYWJsZU5h
bWU6ICJBbGxvdyBzcGVha2VyIGRldmljZSBzZWxlY3Rpb24iCiAgIGh1bWFuUmVhZGFibGVEZXNj
cmlwdGlvbjogIkFsbG93IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKLSAgY29uZGl0aW9uOiBF
TkFCTEUoV0VCX1JUQykKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitQZXJF
bGVtZW50U3BlYWtlclNlbGVjdGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZh
bHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIkFsbG93IHBlciBtZWRpYSBlbGVtZW50
IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
QWxsb3cgcGVyIG1lZGlhIGVsZW1lbnQgc3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgorICBjb25k
aXRpb246IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIFZQOURlY29kZXJFbmFibGVkOgogICB0eXBl
OiBib29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0lu
dGVybmFsLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0ludGVybmFs
LnlhbWwKaW5kZXggNzlkMjU2YmEyOGIzZDdhMDZlM2RiNjQwOTY4MTQ1MGY3ZTM2NjhkZi4uNzUx
OTdhNjI1ODI3ZDkzYWFkNDUyODJhYzA0NTAwOWEyNDQwYTgyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbApAQCAtNjMsNiArNjMsMTMg
QEAgV2ViUlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFibGVkOgogICB3ZWJjb3JlQmluZGluZzogUnVu
dGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQogCitTcGVh
a2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZToKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0
VmFsdWU6IHRydWUKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJSZXF1aXJlIGEgdXNlciBnZXN0dXJl
IGZvciBzcGVha2VyIHNlbGVjdGlvbiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiUmVx
dWlyZSBhIHVzZXIgZ2VzdHVyZSBmb3Igc3BlYWtlciBzZWxlY3Rpb24iCisgIGNvbmRpdGlvbjog
RU5BQkxFKE1FRElBX1NUUkVBTSkKKwogRnJhbWVGbGF0dGVuaW5nRW5hYmxlZDoKICAgdHlwZTog
Ym9vbAogICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfRlJBTUVfRkxBVFRFTklORwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCBiNWVlMGQz
ZWY2NGZkOWI2ODllNDg0NzM4MThhYWZlMTVjYmJmZTIxLi40MjNhNDk4ZWYxMjZjNmM5NjVmNTRi
NmZjM2VhYmFhMjg1MDg0OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtNzY2LDYgKzc2NiwxNiBAQCBib29sIFdLUHJlZmVyZW5j
ZXNHZXRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuYwogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5yZXF1aXJlc1VzZXJH
ZXN0dXJlRm9yQXVkaW9QbGF5YmFjaygpOwogfQogCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRTcGVh
a2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmLCBib29sIGZsYWcpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0U3Bl
YWtlclNlbGVjdGlvblJlcXVpcmVzVXNlckdlc3R1cmUoZmxhZyk7Cit9CisKK2Jvb2wgV0tQcmVm
ZXJlbmNlc0dldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPnNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKCk7Cit9CisKIHZvaWQgV0tQ
cmVmZXJlbmNlc1NldE1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQogewogICAgIHRvSW1wbChwcmVm
ZXJlbmNlc1JlZiktPnNldE1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQoZmxh
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzUmVmUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlc1JlZlByaXZhdGUuaAppbmRleCBhM2UxNjczNTEwY2NjODFkMDgzNmM2NTBjYjViNDBjYWI3
YzQ5ZWJhLi43MmQ0NWFjZDU2YWRhOGYzNjhjZmUwOTZlNDhlZDI1ZjY0MWE3ZTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQ
cml2YXRlLmgKQEAgLTE2OSw2ICsxNjksMTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNl
c0dldFZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKFdLUHJlZmVyZW5jZXNSZWYKIFdL
X0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2Vz
dHVyZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQ
T1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJl
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0byBmYWxz
ZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTcGVha2VyU2VsZWN0aW9uUmVxdWly
ZXNVc2VyR2VzdHVyZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcp
OworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJl
c1VzZXJHZXN0dXJlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOworCiAvLyBEZWZh
dWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRNYWluQ29udGVu
dFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNS
ZWYsIGJvb2wgZmxhZyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TWFpbkNvbnRl
bnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA5OWI0ODg3ODI2YjhhM2FlOWVhMThhODBlODEwNjI2MDZjYzQ2OGYwLi4yMTVjYzk0NGM0MGMy
ZjJlZWZmNTQ3ODhhYWMwYzY4M2FjZGVkNGRiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDktMjEgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBI
VE1MTWVkaWFFbGVtZW50LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3Rl
bnRWYWx1ZXMpOgorCiAyMDIwLTA5LTE3ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcgZm9yIHJkYXI6Ly81NzAy
OTEyMC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDVi
NThkNGEyZDE3M2NlMWE3MGI1MmI3Y2NjMWRmYTc4OGY0NTkwYy4uYmI3ZTg0YzkwYWY0NzkwZmZm
MzU0YTZlNjI0MzZhYmNkNDQ3ZDBlZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKQEAgLTk4Nyw2ICs5ODcsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNl
dFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpbwog
ICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShwcmVm
ZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRWaWRlb1BsYXliYWNrUmVxdWly
ZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRB
dWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2UpOworICAg
IFdLUHJlZmVyZW5jZXNTZXRTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZShwcmVm
ZXJlbmNlcywgZmFsc2UpOwogCiAgICAgV0tQcmVmZXJlbmNlc1NldFNob3VsZFVzZVNlcnZpY2VX
b3JrZXJTaG9ydFRpbWVvdXQocHJlZmVyZW5jZXMsIG9wdGlvbnMuY29udGV4dE9wdGlvbnMudXNl
U2VydmljZVdvcmtlclNob3J0VGltZW91dCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0Yjg4NTAwYzljYWQxOGE5MGNh
YzgwMDI0MWFhYTIxOTYyNDg0OWE2Li45MDg4NGFlZWYwZmEwYzIwYjEwZWMwODM3ZGU0NjgzMTc0
YTQxMGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFF
bGVtZW50LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU2tpcCBuZXcgdGVzdHMgb24gV0sxLgorCisgICAgICAgICogaHR0cC93cHQvYXVk
aW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTA5LTE4ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXNoIGRldmljZUlkcyBpbiBXZWJQcm9jZXNz
IGluc3RlYWQgb2YgVUlQcm9jZXNzIHRvIGFsbG93IGF1ZGlvIG91dHB1dCBkZXZpY2UgSURzIGlu
IFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGY3ODk1ZWUzNGQ5
ODE1YWViZmFjZDMxZTVmMDkzM2ZiNmI5MDQzODcuLjNiZjA1YmViNjYyZmQ1NGE5NTNiYTEwZjc3
NWU5MTQ1ZGZhZWY0MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDIwLTA5LTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVzb3VyY2VzL2lt
cG9ydC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYXVk
aW8tb3V0cHV0L01FVEEueW1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0
dHBzLndpbmRvdy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYXVk
aW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0
U2lua0lkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9h
dWRpby1vdXRwdXQvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorCiAyMDIwLTA5LTE4ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXNoIGRldmljZUlkcyBpbiBX
ZWJQcm9jZXNzIGluc3RlYWQgb2YgVUlQcm9jZXNzIHRvIGFsbG93IGF1ZGlvIG91dHB1dCBkZXZp
Y2UgSURzIGluIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2F1
ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTRkNTM3MjJlOWIxODAxYTNlMzllZTk5YzViYTZmN2IyMGQ4MzBkMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIHNldFNpbmtJZCByZXF1aXJlcyB1
c2VyIGdlc3R1cmUgCitQQVNTIHNldFNpbmtJZCBhbmQgc2lua0lkIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWEyMWI1NDE3ZjZkMWRmOThjNWQ4YmJkZThmNGM5MGMwYTg1ZjRiZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxoZWFkPgorPHRp
dGxlPlRlc3Qgc2V0U2lua0lkIGJlaGF2aW9yIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkRvbWluaXF1ZSBIYXphZWwtTWFzc2lldXgiIGhyZWY9Im1haWx0bzpkb21AdzMub3Jn
Ii8+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vd3d3LnczLm9yZy9UUi9hdWRpby1v
dXRwdXQvI2RvbS1odG1sbWVkaWFlbGVtZW50LXNldHNpbmtpZCI+Cis8L2hlYWQ+Cis8c2NyaXB0
IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQ+CisidXNlIHN0
cmljdCI7CisKK2NvbnN0IGF1ZGlvID0gbmV3IEF1ZGlvKCk7CisKK3Byb21pc2VfdGVzdCh0ID0+
IHsKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHJldHVybjsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNlckdlc3R1cmUodHJ1
ZSk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiB7IGludGVybmFscy5zZXR0aW5ncy5zZXRTcGVh
a2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZShmYWxzZSk7IH0pOworCisgICAgcmV0dXJu
IHByb21pc2VfcmVqZWN0c19kb20odCwgIk5vdEFsbG93ZWRFcnJvciIsIGF1ZGlvLnNldFNpbmtJ
ZCgiIikpOworfSwgInNldFNpbmtJZCByZXF1aXJlcyB1c2VyIGdlc3R1cmUiKTsKKworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEoeyBhdWRpbyA6IHRydWUgfSk7CisgICAgY29uc3QgbGlzdCA9IGF3YWl0IG5h
dmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpOworICAgIGNvbnN0IG91dHB1
dERldmljZXNMaXN0ID0gbGlzdC5maWx0ZXIoKHtraW5kfSkgPT4ga2luZCA9PSAiYXVkaW9vdXRw
dXQiKTsKKyAgICBhc3NlcnRfbm90X2VxdWFscyhvdXRwdXREZXZpY2VzTGlzdC5sZW5ndGgsIDAs
ICJtZWRpYSBkZXZpY2UgbGlzdCBpbmNsdWRlcyBhdCBsZWFzdCBvbmUgYXVkaW8gb3V0cHV0IGRl
dmljZSIpOworCisgICAgbGV0IHByb21pc2UgPSBhdWRpby5zZXRTaW5rSWQob3V0cHV0RGV2aWNl
c0xpc3RbMF0uZGV2aWNlSWQpOworCisgICAgYXNzZXJ0X2VxdWFscyhhdWRpby5zaW5rSWQsICIi
KTsKKyAgICBhd2FpdCBwcm9taXNlOworICAgIGFzc2VydF9lcXVhbHMoYXVkaW8uc2lua0lkLCBv
dXRwdXREZXZpY2VzTGlzdFswXS5kZXZpY2VJZCk7Cit9LCAic2V0U2lua0lkIGFuZCBzaW5rSWQi
KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291
cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgppbmRleCA4NWNlYjM1ZTE3OTI4ZDdh
MTY5MDYwZmY0NGViMGI0NGRmZTQ3MDUyLi5hYzYxZTY4ZDVjZjdmZjhlMTgwOGI1YTMzY2JmNGE5
MTEzN2UzN2I3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2Vz
L2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpAQCAtNDksNyArNDksNyBAQAogICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXBuZyI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9hcHAtdXJpIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Fzc3VtcHRp
b25zIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dCI6ICJz
a2lwIiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQiOiAiaW1wb3J0Iiwg
CiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hdXhjbGljayI6ICJza2lwIiwgCiAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvYmF0dGVyeS1zdGF0dXMiOiAic2tpcCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91
dHB1dC9NRVRBLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmE3ZDRkMDYyNTkxMTdhZjhmYjg0M2Y2YThkMjUy
YmFjMDFhOGYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55bWwKQEAgLTAsMCArMSw0IEBACitz
cGVjOiBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW91dHB1dC8KK3N1Z2dlc3Rl
ZF9yZXZpZXdlcnM6CisgIC0gZ3VpZG91CisgIC0gamFuLWl2YXIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhh
cm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDM5MDZlMmUxOTIxZjgwZjlhNjhlOWYzZGM5ZTk5
NjVkYWJkZjdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKKworUEFTUyBpZGxfdGVzdCBzZXR1cCAKK1BBU1Mg
aWRsX3Rlc3QgdmFsaWRhdGlvbiAKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTE1lZGlhRWxl
bWVudDogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQgCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNl
IEhUTUxNZWRpYUVsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBIVE1MRWxl
bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVz
IEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBI
VE1MRWxlbWVudCBpbmNsdWRlcyBIVE1MT3JTVkdFbGVtZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZSAKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZSAKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRh
YmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgSFRNTE1lZGlhRWxlbWVudCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBzaW5rSWQgCitQQVNTIEhUTUxNZWRpYUVsZW1lbnQgaW50ZXJmYWNl
OiBvcGVyYXRpb24gc2V0U2lua0lkKERPTVN0cmluZykgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5l
c3MuaHR0cHMud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1
ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5odG1sCkBAIC0wLDAgKzEgQEAKKzwh
LS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0
byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRw
cy53aW5kb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdjZGJkMDc2ODMzNDgxYjUzZjM1YjI2ZDVlZTAxNmZk
NzBjNDExMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCkBA
IC0wLDAgKzEsMjAgQEAKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5q
cworLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcworCisvLyBodHRwczov
L3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW91dHB1dC8KKworJ3VzZSBzdHJpY3QnOworCitp
ZGxfdGVzdCgKKyAgWydhdWRpby1vdXRwdXQnXSwKKyAgWydtZWRpYWNhcHR1cmUtc3RyZWFtcycs
ICdodG1sJywgJ2RvbSddLAorICBpZGxfYXJyYXkgPT4geworICAgIHNlbGYuYXVkaW8gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdhdWRpbycpOworICAgIHNlbGYudmlkZW8gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGlkbF9hcnJheS5hZGRfb2JqZWN0cyh7CisgICAg
ICBIVE1MQXVkaW9FbGVtZW50OiBbJ2F1ZGlvJ10sCisgICAgICBIVE1MVmlkZW9FbGVtZW50OiBb
J3ZpZGVvJ10sCisgICAgICBNZWRpYURldmljZXM6IFsnbmF2aWdhdG9yLm1lZGlhRGV2aWNlcydd
LAorICAgIH0pOworICB9CispOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8t
b3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRlMTczMjMy
NDIxMjJhYjljMjczYzIyOTc4YjJiOWM4M2ZlNjUxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNp
bmtJZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1Mgc2V0U2lua0lk
IG9uIGRlZmF1bHQgYXVkaW8gb3V0cHV0IHNob3VsZCBhbHdheXMgd29yayAKK1BBU1Mgc2V0U2lu
a0lkIGZhaWxzIHdpdGggTm90Rm91bmRFcnJvciBvbiBtYWRlIHVwIGRldmljZWlkIAorRkFJTCBM
aXN0IGRldmljZSwgc2V0U2lua0lkIHNob3VsZCBiZSBhbGxvd2VkIG9uIHRoZSBkZWZhdWx0LCB0
aGUgcmVzdCBvZiB0aGUgZGV2aWNlcyB3aWxsIGdldCBhIE5vdEFsbG93ZWRFcnJvciBhc3NlcnRf
bm90X2VxdWFsczogbWVkaWEgZGV2aWNlIGxpc3QgaW5jbHVkZXMgYXQgbGVhc3Qgb25lIGF1ZGlv
IG91dHB1dCBkZXZpY2UgZ290IGRpc2FsbG93ZWQgdmFsdWUgMAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRT
aW5rSWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxZjcw
M2E5MzUwYmY1NTdmMGQzODkxMWEwOWMwOWE5ZDAyZWFhM2EKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9z
ZXRTaW5rSWQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
ZWFkPgorPHRpdGxlPlRlc3Qgc2V0U2lua0lkIGJlaGF2aW9yIDwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkRvbWluaXF1ZSBIYXphZWwtTWFzc2lldXgiIGhyZWY9Im1haWx0bzpk
b21AdzMub3JnIi8+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vd3d3LnczLm9yZy9U
Ui9hdWRpby1vdXRwdXQvI2RvbS1odG1sbWVkaWFlbGVtZW50LXNldHNpbmtpZCI+Cis8L2hlYWQ+
Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQ+
CisidXNlIHN0cmljdCI7CisKK2NvbnN0IGF1ZGlvID0gbmV3IEF1ZGlvKCk7CisKK3Byb21pc2Vf
dGVzdCh0ID0+IGF1ZGlvLnNldFNpbmtJZCgiIiksICJzZXRTaW5rSWQgb24gZGVmYXVsdCBhdWRp
byBvdXRwdXQgc2hvdWxkIGFsd2F5cyB3b3JrIik7CisKK3Byb21pc2VfdGVzdCh0ID0+IHByb21p
c2VfcmVqZWN0c19kb20odCwgIk5vdEZvdW5kRXJyb3IiLCBhdWRpby5zZXRTaW5rSWQoIm5vbmV4
aXN0ZW50X2RldmljZV9pZCIpKSwKKyAgInNldFNpbmtJZCBmYWlscyB3aXRoIE5vdEZvdW5kRXJy
b3Igb24gbWFkZSB1cCBkZXZpY2VpZCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IGxpc3QgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmlj
ZXMoKTsKKyAgY29uc3Qgb3V0cHV0RGV2aWNlc0xpc3QgPSBsaXN0LmZpbHRlcigoe2tpbmR9KSA9
PiBraW5kID09ICJhdWRpb291dHB1dCIpOworICBhc3NlcnRfbm90X2VxdWFscyhvdXRwdXREZXZp
Y2VzTGlzdC5sZW5ndGgsIDAsCisgICAgIm1lZGlhIGRldmljZSBsaXN0IGluY2x1ZGVzIGF0IGxl
YXN0IG9uZSBhdWRpbyBvdXRwdXQgZGV2aWNlIik7CisKKyAgbGV0IGFjY2VwdGVkRGV2aWNlcyA9
IDA7CisgIGZvciAoY29uc3Qge2RldmljZUlkfSBvZiBvdXRwdXREZXZpY2VzTGlzdCkgeworICAg
IGNvbnN0IHtkZXZpY2VJZH0gPSBvdXRwdXREZXZpY2VzTGlzdFswXTsKKyAgICBjb25zdCBwMSA9
IGF1ZGlvLnNldFNpbmtJZChkZXZpY2VJZCk7CisgICAgYXNzZXJ0X2VxdWFscyhhdWRpby5zaW5r
SWQsICIiLCAiYmVmb3JlIGl0IHJlc29sdmVzLCBzZXRTaW5rSWQgaXMgdW5jaGFuZ2VkIik7Cisg
ICAgdHJ5IHsKKyAgICAgIGxldCByID0gYXdhaXQgcDE7CisgICAgICBhc3NlcnRfZXF1YWxzKGFj
Y2VwdGVkRGV2aWNlcywgMCwgIm9ubHkgdGhlIGRlZmF1bHQgc2luayBkZXZpY2UgY2FuIGJlIHNl
dCIpOworICAgICAgYWNjZXB0ZWREZXZpY2VzKys7CisgICAgICBhc3NlcnRfZXF1YWxzKHIsIHVu
ZGVmaW5lZCwgInNldFNpbmtJZCByZXNvbHZlcyB3aXRoIHVuZGVmaW5lZCIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhhdWRpby5zaW5rSWQsIGRldmljZUlkLCAid2hlbiBpdCByZXNvbHZlcywgc2V0
U2lua0lkIHVwZGF0ZXMgc2lua0lkIHRvIHRoZSByZXF1ZXN0ZWQgZGV2aWNlSWQiKTsKKyAgICAg
IHIgPSBhd2FpdCBhdWRpby5zZXRTaW5rSWQoZGV2aWNlSWQpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhyLCB1bmRlZmluZWQsICJyZXNldHRpbmcgc2lua2lkIG9uIHNhbWUgY3VycmVudCB2YWx1ZSBz
aG91bGQgYWx3YXlzIHdvcmsiKTsKKyAgICAgIHIgPSBhd2FpdCBhdWRpby5zZXRTaW5rSWQoIiIp
OworICAgICAgYXNzZXJ0X2VxdWFscyhyLCB1bmRlZmluZWQsICJyZXNldHRpbmcgc2lua2lkIG9u
IGRlZmF1bHQgYXVkaW8gb3V0cHV0IHNob3VsZCBhbHdheXMgd29yayIpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIiwgIk5v
bi1kZWZhdWx0IGRldmljZXMgYXJlIGZhaWxpbmcgd2l0aCBOb3RBbGxvd2VkIGVycm9yIik7Cisg
ICAgfQorICB9Cit9LCAiTGlzdCBkZXZpY2UsIHNldFNpbmtJZCBzaG91bGQgYmUgYWxsb3dlZCBv
biB0aGUgZGVmYXVsdCwgdGhlIHJlc3Qgb2YgdGhlIGRldmljZXMgd2lsbCBnZXQgYSBOb3RBbGxv
d2VkRXJyb3IiKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyM2M1MTVjZWY2ZWE5ZDJjOGEzMjU2Nzk2OTJhZGFh
ODExNWNkMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIw
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dC9NRVRBLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0
U2lua0lkLW1hbnVhbC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmN2NlMWQzNzkz
YjNhNGIwMGUxZjE4N2IwNTIzNGI3OGY2Zjc0OWRlLi40ZWEzOWIzYzdmNDY0ZmYxMDdkYTZlZTRk
MjgzYWM5NDVkMDViNDkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0
RXhwZWN0YXRpb25zCkBAIC02NSw2ICs2NSw5IEBAIGluc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0
dGluZy1Nb2NrQ2FwdHVyZURldmljZXNFbmFibGVkLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLWdldFVzZXJNZWRpYS1wZW5kaW5nLXByb21pc2UuaHRtbCBb
IFNraXAgXQogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtbWVkaWFzdHJlYW0uaHRt
bCBbIFNraXAgXQogCitodHRwL3dwdC9hdWRpby1vdXRwdXQgWyBTa2lwIF0KK2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0IFsgU2tpcCBdCisKICMgRGF0YWxpc3Qg
aXMgdW5zdXBwb3J0ZWQgaW4gV0sxCiBhY2Nlc3NpYmlsaXR5L2RhdGFsaXN0Lmh0bWwgWyBXb250
Rml4IF0KIGZhc3QvZm9ybXMvZGF0YWxpc3QgWyBXb250Rml4IF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNWNiMzcwODdlZDEyYWMwNjJmNmU0YTFmNWQ4
ZDRiYTFhZjZmODE4ZS4uYjVkNmMwM2M0NDllM2NjMWEzMWRmMmYyMzg1ZDA3Mjk3MmQ3ZTZiZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTg1OSw2ICs4
NTksOSBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJl
YW1zIFsgU2tpcCBdCiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbSBbIFNraXAgXQogaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZ2V0VXNlck1lZGlhLXBlbmRpbmctcHJvbWlz
ZS5odG1sIFsgU2tpcCBdCiAKK2h0dHAvd3B0L2F1ZGlvLW91dHB1dCBbIFNraXAgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQgWyBTa2lwIF0KKwogIyBuZWVk
cyBlbmhhbmNlZCBldmVudFNlbmRlci5jb250ZXh0TWVudSgpIHJldHVybiB2YWx1ZQogI3dlYmtp
dC5vcmcvYi80NTAyMSBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409293</attachid>
            <date>2020-09-21 12:07:31 -0700</date>
            <delta_ts>2020-09-23 03:09:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216696-20200921210729.patch</filename>
            <type>text/plain</type>
            <size>60334</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEwYmY4YTU1MjdkMWU4N2FkOGJjNmVl
MTQ4OWM0NDg0NzhhYjUwZTAuLmQ5NjkyZTI5ZjVmZmZlZDM5ODJhY2U0NTk4ZWIxOTA1YjAxZjhi
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDktMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50
LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIEhBVkVfQVVESU9fT1VUUFVUX0RFVklDRV9VTklRVUVfSUQuCisgICAgICAgICogd3Rm
L1BsYXRmb3JtSGF2ZS5oOgorCiAyMDIwLTA5LTE3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSRUdSRVNTSU9OKHIyNjY4ODUpOiBm
aXggb3BlbiBzb3VyY2UgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMzIyMTAxNWY1ZmRjYjE5MTEyNmQx
YjBjNWE2ZWNmNzNlNjUzZjJjLi4wNTZlM2Q4MDQ0YzEzN2RhNTEyYWY2ZDljNDhjMzdmZWY5ODEw
YWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjAtMDktMTggIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVk
aWFFbGVtZW50LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IHNldFNpbmtJZCBhbmQgc2lua0lkIGFzIHBlciBodHRwczov
L3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW91dHB1dC8jaHRtbG1lZGlhZWxlbWVudC1leHRl
bnNpb25zLgorICAgICAgICBJbnRyb2R1Y2UgYSBzZXR0aW5nIHRvIGV4cG9zZSB0aGVzZSBtZXRo
b2RzIGFuZCB0byBlbmFibGUvZGlzYWJsZSB1c2VyIGdlc3R1cmUgcmVxdWlyZW1lbnQuCisgICAg
ICAgIEFkZCBpbnRlcmZhY2VzIHRvIGNoYW5nZSBkZXZpY2Ugb3V0cHV0IGZvciBzcGVjaWZpYyBt
ZWRpYSBwbGF5ZXJzLgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSExTLCBNU0UgYW5kIE1lZGlh
U3RyZWFtVHJhY2sgcmVuZGVyZXJzIG9uIE1hY09TLgorICAgICAgICBJbiBjYXNlIG9mIHNldHRp
bmcgdGhlIGVtcHR5IHN0cmluZywgdGhlIGRlZmF1bHQgb3V0cHV0IGRldmljZSBpcyB1c2VkCisK
KyAgICAgICAgVGVzdHM6IGh0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRt
bAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1v
dXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0
bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojph
dWRpb091dHB1dERldmljZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpzZXRBdWRpb091dHB1dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjphdWRpb091dHB1dERldmljZUlkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlv
T3V0cHV0SGFzaGVkRGV2aWNlSWQgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudEF1ZGlvT3V0cHV0LmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1s
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUlk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphdWRpb091dHB1dERldmlj
ZUlkT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXRE
ZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVU
cmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0QXVkaW9PdXRwdXREZXZpY2Up
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bTo6c2V0QXVkaW9PdXRwdXREZXZpY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRBdWRp
b091dHB1dERldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6c2V0QXVkaW9PdXRwdXREZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXRJZk5lZWRlZCk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdC5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisKIDIwMjAtMDktMTggIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhhc2ggZGV2aWNlSWRz
IGluIFdlYlByb2Nlc3MgaW5zdGVhZCBvZiBVSVByb2Nlc3MgdG8gYWxsb3cgYXVkaW8gb3V0cHV0
IGRldmljZSBJRHMgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MjBlZDQzZjVkNjMxMmZhNjk2
ZDdiODViYThlZTA0NDkwYmQxYmQzLi45YjljMjQ3MGM3ZTgxMDcxYjc5MWFhYzBmYWIyYWZlYzM3
YzYyNDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA5LTE4ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1l
ZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBpbnRlcm5hbCBmbGFnIHRvIGVuYWJsZS9kaXNhYmxlIHVzZXIgZ2Vz
dHVyZSByZXF1aXJlbWVudCBmb3Igc2V0dGluZyBhdWRpbyBvdXRwdXQgZGV2aWNlLAorICAgICAg
ICBhbmQgZm9yIHBlciBtZWRpYSBlbGVtZW50IHNldHRpbmcgb2YgYXVkaW8gb3V0cHV0IGRldmlj
ZS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0ludGVybmFscy55YW1sOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5j
ZXNTZXRTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSk6CisgICAgICAgIChXS1By
ZWZlcmVuY2VzR2V0U3BlYWtlclNlbGVjdGlvblJlcXVpcmVzVXNlckdlc3R1cmUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorCiAyMDIwLTA5
LTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXNoIGRl
dmljZUlkcyBpbiBXZWJQcm9jZXNzIGluc3RlYWQgb2YgVUlQcm9jZXNzIHRvIGFsbG93IGF1ZGlv
IG91dHB1dCBkZXZpY2UgSURzIGluIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXgg
NjAwZTU4YzVlMjJlMTIyNzAzM2Y1ZmMxYTI3YWQwYjZiY2RkMjA5YS4uNDcxMGY3ODliMzA3Nzk5
MjE0ZmIyYjZmYWEzNzFhMjhjMGM1MjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTY4Miw2
ICs2ODIsMTAgQEAKICNkZWZpbmUgSEFWRV9OU1RBQkxFVklFV1NUWUxFIDEKICNlbmRpZgogCisj
aWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX0FVRElPX09VVFBVVF9ERVZJQ0VfVU5JUVVF
X0lEIDEKKyNlbmRpZgorCiAjaWYgKChQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKSBcCiAg
ICAgfHwgKFBMQVRGT1JNKFdBVENIT1MpICYmIF9fV0FUQ0hfT1NfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gNzAwMDApIFwKICAgICB8fCAoUExBVEZPUk0oQVBQTEVUVikgJiYgX19UVl9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGE0MzBj
ZjcwYzEyMmZhZWJhMDVhZWRhNWI3ZGU5MzQ3OTIyZjBlMTYuLjIwOWRlZDMzMjQzMzMyMGQ4NGZi
NDZlODViZmU0Zjg2ZDllNTNmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC05MTksNiArOTE5
LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBodG1sL0hUTUxNYXBFbGVt
ZW50LmlkbAogICAgIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5pZGwKKyAgICBodG1sL0hUTUxNZWRpYUVsZW1lbnRBdWRpb091dHB1dC5pZGwK
ICAgICBodG1sL0hUTUxNZW51RWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxNZW51SXRlbUVsZW1l
bnQuaWRsCiAgICAgaHRtbC9IVE1MTWV0YUVsZW1lbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBlZDhiNjcwYjBmYTg0MzE2MWU5
YTgwM2IyZDA5ZGE1NmY0Yjg5ZjU2Li4zMzgzNGZiNTQ0ZjA5NzY5ZDU3MTM0Y2MwYTU3NmI0NWU3
NTRhNGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTg0NCw2ICs4NDQsNyBAQCAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxMaW5rRWxl
bWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1hcEVsZW1lbnQuaWRsCiAkKFBST0pF
Q1RfRElSKS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dEF1ZGlvT3V0cHV0LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVudUVsZW1lbnQuaWRs
CiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZW51SXRlbUVsZW1lbnQuaWRsCiAkKFBST0pFQ1Rf
RElSKS9odG1sL0hUTUxNZXRhRWxlbWVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZTIxNDQ0NTJjYzY2ODE5ZjkwODMxMWQw
NWZjMjlmZTQ4MjEwNDE5YS4uZGQ4NjU4MGJhM2MzY2NmMDJkYjQ0YTQ3N2I5NWViZGM4MTNlNDg1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKQEAgLTkwMCw2ICs5MDAsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0hUTUxNYXJxdWVlRWxlbWVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1hcnF1ZWVFbGVtZW50LmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1l
ZGlhRWxlbWVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hUTUxNZWRpYUVsZW1lbnRBdWRpb091dHB1dC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0LmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlh
RWxlbWVudE1lZGlhU2Vzc2lvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudE1lZGlhU2Vzc2lvbi5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnRSZW1v
dGVQbGF5YmFjay5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGUwYWYyMGY1
ZDgyNzA3NzA4YTc0Nzc2NzU0ZWJiZGNlMmUwNDM0ZTAuLjA3NDI4N2E2OTZhNGIxZmZkZTg4NWJm
MjU4YWM4OWRjZjlhYTAxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtODY0
LDYgKzg2NCw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRN
TE1hcEVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL2h0bWwvSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9I
VE1MTWVudUl0ZW1FbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxNZXRhRWxl
bWVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXMuY3BwCmluZGV4IGJlNzBhYWFiZDhlODBkMmY3YjVjZjUyZTczMjcxNWY2MTgz
OThmMGUuLjg1MTkzYWM4NWUxNGEwZjQ0ZDQxY2VlNDc5OWIzNzlkZGFkMmIwYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAK
QEAgLTIwMiw2ICsyMDIsOCBAQCB2b2lkIE1lZGlhRGV2aWNlczo6ZXhwb3NlRGV2aWNlcyhjb25z
dCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMsIGNvbnN0CiAgICAgYm9vbCBjYW5B
Y2Nlc3NNaWNyb3Bob25lID0gY2hlY2tNaWNyb3Bob25lQWNjZXNzKGRvY3VtZW50KTsKICAgICBi
b29sIGNhbkFjY2Vzc1NwZWFrZXIgPSBjaGVja1NwZWFrZXJBY2Nlc3MoZG9jdW1lbnQpOwogCisg
ICAgbV9hdWRpb091dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuY2xlYXIoKTsKKwogICAgIFZl
Y3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gZGV2aWNlczsKICAgICBmb3IgKGF1dG8mIG5ld0Rl
dmljZSA6IG5ld0RldmljZXMpIHsKICAgICAgICAgaWYgKCFjYW5BY2Nlc3NNaWNyb3Bob25lICYm
IG5ld0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9u
ZSkKQEAgLTIxNCw2ICsyMTYsOSBAQCB2b2lkIE1lZGlhRGV2aWNlczo6ZXhwb3NlRGV2aWNlcyhj
b25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMsIGNvbnN0CiAgICAgICAgIGF1
dG8gZGV2aWNlSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNo
U3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2VJREhhc2hTYWx0
KTsKICAgICAgICAgYXV0byBncm91cElkID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG5ld0RldmljZS5ncm91cElkKCksIG1fZ3JvdXBJ
ZEhhc2hTYWx0KTsKIAorICAgICAgICBpZiAobmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTcGVha2VyKQorICAgICAgICAgICAgbV9hdWRpb091dHB1dERldmlj
ZUlkVG9QZXJzaXN0ZW50SWQuYWRkKGRldmljZUlkLCBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkp
OworCiAgICAgICAgIGRldmljZXMuYXBwZW5kKE1lZGlhRGV2aWNlSW5mbzo6Y3JlYXRlKG5ld0Rl
dmljZS5sYWJlbCgpLCBXVEZNb3ZlKGRldmljZUlkKSwgV1RGTW92ZShncm91cElkKSwgdG9NZWRp
YURldmljZUluZm9LaW5kKG5ld0RldmljZS50eXBlKCkpKSk7CiAgICAgfQogICAgIHByb21pc2Uu
cmVzb2x2ZShkZXZpY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5oCmluZGV4IDU4Mjg2NzI1M2NhZDE2OThkODAxNWY2NmVhNWY1MzRm
OTJmNTM5ZDEuLjZmOTA2MjhhYjBjYzhmMGEzNDExMTM0Zjg3OTdlNjRiZmM4MTZmMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaApA
QCAtODksNiArODksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnVtZXJhdGVEZXZpY2VzKEVudW1l
cmF0ZURldmljZXNQcm9taXNlJiYpOwogICAgIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cyBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpOwogCisgICAgU3RyaW5nIGRldmljZUlkVG9QZXJz
aXN0ZW50SWQoY29uc3QgU3RyaW5nJiBkZXZpY2VJZCkgY29uc3QgeyByZXR1cm4gbV9hdWRpb091
dHB1dERldmljZUlkVG9QZXJzaXN0ZW50SWQuZ2V0KGRldmljZUlkKTsgfQorCiAgICAgdXNpbmcg
UmVmQ291bnRlZDxNZWRpYURldmljZXM+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRp
YURldmljZXM+OjpkZXJlZjsKIApAQCAtMTMwLDYgKzEzMiw5IEBAIHByaXZhdGU6CiAKICAgICBP
cHRpb25TZXQ8R2VzdHVyZUFsbG93ZWRSZXF1ZXN0PiBtX3JlcXVlc3RUeXBlc0ZvckN1cnJlbnRH
ZXN0dXJlOwogICAgIFdlYWtQdHI8VXNlckdlc3R1cmVUb2tlbj4gbV9jdXJyZW50R2VzdHVyZVRv
a2VuOworCisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9hdWRpb091dHB1dERldmljZUlk
VG9QZXJzaXN0ZW50SWQ7CisgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXREZXZpY2VJZDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IGE0ZjM2Nzk4ZTU0YWY0ZmQzOTRmNDIzYzZmYjBhNmZhMDg2OTZiMjEuLjRj
N2U4MmY4NjUwZTkzMmFkODQ1ZDU3NDY4ZGMxOWJlZmU1MDY1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgIk1J
TUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJNZWRpYUNvbnRyb2xzSG9zdC5oIgorI2luY2x1ZGUgIk1lZGlhRGV2aWNlcy5oIgogI2luY2x1
ZGUgIk1lZGlhRG9jdW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYUVycm9yLmgiCiAjaW5jbHVkZSAi
TWVkaWFGcmFnbWVudFVSSVBhcnNlci5oIgpAQCAtNzgsNiArNzksNyBAQAogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2luY2x1ZGUg
Ik1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYURldmljZXMu
aCIKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBPREludGVydmFs
VHJlZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTI4NDMsNiArMjg0NSw1OSBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmZhc3RTZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICBzZWVr
V2l0aFRvbGVyYW5jZSh0aW1lLCBuZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lOjp6ZXJvVGlt
ZSgpLCB0cnVlKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitTdHJpbmcgSFRNTE1l
ZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX2F1
ZGlvT3V0cHV0UGVyc2lzdGVudERldmljZUlkOworfQorCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnNldEF1ZGlvT3V0cHV0RGV2aWNlKFN0cmluZyYmIGRldmljZUlkLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50KCkuZG9t
V2luZG93KCk7CisgICAgYXV0byogbWVkaWFEZXZpY2VzID0gd2luZG93ID8gTmF2aWdhdG9yTWVk
aWFEZXZpY2VzOjptZWRpYURldmljZXMod2luZG93LT5uYXZpZ2F0b3IoKSkgOiBudWxscHRyOwor
ICAgIGlmICghbWVkaWFEZXZpY2VzKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IE5vdEFsbG93ZWRFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
ICghZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpICYmIGRvY3VtZW50
KCkuc2V0dGluZ3MoKS5zcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSgpKSB7Cisg
ICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIkEgdXNl
ciBnZXN0dXJlIGlzIHJlcXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGRldmljZUlkLmlzRW1wdHkoKSkKKyAgICAgICAgZGV2aWNlSWQgPSB7IH07CisKKyAg
ICBpZiAoZGV2aWNlSWQgPT0gbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkKSB7CisgICAgICAg
IHByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5n
IHBlcnNpc3RlbnRJZDsKKyAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKSB7CisgICAgICAgIHBl
cnNpc3RlbnRJZCA9IG1lZGlhRGV2aWNlcy0+ZGV2aWNlSWRUb1BlcnNpc3RlbnRJZChkZXZpY2VJ
ZCk7CisgICAgICAgIGlmIChwZXJzaXN0ZW50SWQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IgfSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERl
dmljZUlkID0gV1RGTW92ZShwZXJzaXN0ZW50SWQpOworICAgIGlmIChtX3BsYXllcikKKyAgICAg
ICAgbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCisgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFF
bGVtZW50LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkZXZpY2VJZCA9
IFdURk1vdmUoZGV2aWNlSWQpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkID0gV1RGTW92ZShkZXZpY2VJ
ZCk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIH0pOworfQorI2VuZGlmCisKK1N0
cmluZyBIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9hdWRpb091dHB1dFBlcnNpc3RlbnREZXZpY2VJZDsKK30KKwogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIsIHRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCBhYjJiMDAxMWI1OTQzOWVhNTFlOGFhM2UyMDhmZTAxMmM2M2QxMmVkLi5kMGRl
ZmIxNzU0ZmE5MGI4M2E3Y2M0Mjk1ODc5YjUxNGYyMzRlZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMjY4LDYgKzI2OCwxMSBAQCBwdWJsaWM6CiAgICAgZG91
YmxlIG1pbkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0OwogICAgIGRvdWJsZSBtYXhGYXN0Rm9yd2Fy
ZFJhdGUoKSBjb25zdDsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3RyaW5nIGF1
ZGlvT3V0cHV0RGV2aWNlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZShT
dHJpbmcmJiBkZXZpY2VJZCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworI2VuZGlmCisK
ICAgICB1c2luZyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkJ1ZmZlcmluZ1BvbGljeTsKICAgICB2
b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShCdWZmZXJpbmdQb2xpY3kpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIEJ1ZmZlcmluZ1BvbGljeSBidWZmZXJpbmdQb2xpY3koKSBjb25zdDsKQEAgLTU4MCw2ICs1
ODUsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPdmVycmlkZVByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZSk7CiAgICAgdm9pZCBzZXRQcmVm
ZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpOwogCisgICAgU3RyaW5nIGF1
ZGlvT3V0cHV0SGFzaGVkRGV2aWNlSWQoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvT3V0cHV0SGFz
aGVkRGV2aWNlSWQ7IH0KKwogcHJvdGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZp
cnR1YWwgdm9pZCBmaW5pc2hJbml0aWFsaXphdGlvbigpOwpAQCAtNjA0LDYgKzYxMSw4IEBAIHBy
b3RlY3RlZDoKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwog
CiAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIGRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCBm
aW5hbDsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0IGZpbmFsOworICAg
IFN0cmluZyBhdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmljZUlkOyB9CiAKICAgICBib29sIG1lZGlhQ29u
dHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDb250
cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yOyB9CiAgICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xz
RGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoYm9vbCk7CkBAIC0xMTk3LDYgKzEyMDYsOSBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0IHsgZmFsc2UgfTsKICAg
ICBib29sIG1fcGxheWluZ09uU2Vjb25kU2NyZWVuIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVt
b3ZlZEJlaGF2aW9yUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlIHsgZmFsc2UgfTsK
KworICAgIFN0cmluZyBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmljZUlkOworICAgIFN0cmlu
ZyBtX2F1ZGlvT3V0cHV0SGFzaGVkRGV2aWNlSWQ7CiB9OwogCiBTdHJpbmcgY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudDo6QXV0b3BsYXlFdmVudFBsYXliYWNrU3Rh
dGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50QXVk
aW9PdXRwdXQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50QXVkaW9P
dXRwdXQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzNjRjMDE5ZjVjMjg1NzVkOGQxYjk2NmRiODE4NmVmOWUw
ZWU1MjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnRBdWRpb091dHB1dC5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisKK1sKKyAgICBDb25kaXRpb25hbD1WSURFTywK
K10gcGFydGlhbCBpbnRlcmZhY2UgSFRNTE1lZGlhRWxlbWVudCB7CisgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NUUkVBTSwgRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50
U3BlYWtlclNlbGVjdGlvbiwgSW1wbGVtZW50ZWRBcz1hdWRpb091dHB1dEhhc2hlZERldmljZUlk
XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNpbmtJZDsKKyAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNLCBFbmFibGVkQnlTZXR0aW5nPUV4cG9zZVNwZWFrZXJzJlBlckVsZW1lbnRT
cGVha2VyU2VsZWN0aW9uLCBJbXBsZW1lbnRlZEFzPXNldEF1ZGlvT3V0cHV0RGV2aWNlXSBQcm9t
aXNlPHVuZGVmaW5lZD4gc2V0U2lua0lkKERPTVN0cmluZyBkZXZpY2VJZCk7Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRpb091dHB1dFByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0F1ZGlvT3V0cHV0UHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGVhMTBjYzg5
OGU0MTNiNzM0NzNkNzBmYmI2NmEwYzQ5MWIwMDJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9BdWRpb091dHB1dFByb3ZpZGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBh
Z2U7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvT3V0cHV0UHJvdmlkZXIgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEF1ZGlvT3V0cHV0UHJvdmlkZXIo
KSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+QXVkaW9PdXRwdXRQcm92aWRlcigpID0gZGVmYXVs
dDsKKworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKFBh
Z2UmKTsKK307CisKK2lubGluZSB2b2lkIEF1ZGlvT3V0cHV0UHJvdmlkZXI6OmRlZmF1bHRBdWRp
b091dHB1dERldmljZUNoYW5nZWQoUGFnZSYpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbAppbmRleCAxNzg5N2VlMzA0YWViMjJiNTgyZmJkOTNiNGI5MjYxNDIwMjczYjZmLi40
YmM2ODE2OTk4MGExMzMxNGU3YmZlNGNlNjQ1MDNiOTUyZGZkOTNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sCkBAIC04MjYsNiArODI2LDEyIEBAIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rv
cnk6CiBleHBvc2VTcGVha2Vyc0VuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKK3BlckVsZW1l
bnRTcGVha2VyU2VsZWN0aW9uRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKworc3BlYWtlclNl
bGVjdGlvblJlcXVpcmVzVXNlckdlc3R1cmU6CisgIGluaXRpYWw6IHRydWUKKwogbWVkaWFEZXZp
Y2VJZGVudGlmaWVyU3RvcmFnZURpcmVjdG9yeToKICAgdHlwZTogU3RyaW5nCiAgIGNvbmRpdGlv
bmFsOiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDYzY2YzY2NlZTgxMTJlMTU1ZTE5MzgwNWE2
NDQ4Y2U4ZGJhMWUzYTIuLjkwMmY1ODk5N2Y3MjZjZmIxN2E2MjZiZDllOTQ2NWU1OWRkZWNiMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKQEAgLTE2MDQsNiArMTYwNCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyOjpzZXRQcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGUgbW9kZSkKICAgICBtX3ByaXZhdGUtPnNl
dFByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUobW9kZSk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6
OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7CisgICAgbV9wcml2YXRlLT5hdWRpb091dHB1
dERldmljZUNoYW5nZWQoKTsKK30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogY29uc3Qg
TG9nZ2VyJiBNZWRpYVBsYXllcjo6bWVkaWFQbGF5ZXJMb2dnZXIoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggZWEyNTdmMTJhY2Yw
OWUwYmJkZmIzMjliMTE1M2NjZTUxYWNhZjRmMy4uZDQ2NzMxYTJiYWRmODg1NzAxODAxOTg4MTU2
MjMyYzM0YjFmZGZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oCkBAIC0yNzMsNiArMjczLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBT
ZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJu
IHsgfTsgfQogCisgICAgdmlydHVhbCBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0
IHsgcmV0dXJuIHsgfTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRP
dmVycmlkZSgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgdmlydHVhbCBjb25zdCB2b2lkKiBtZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSB7
IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVy
TG9nZ2VyKCkgPSAwOwpAQCAtNjMxLDYgKzYzNCwxMCBAQCBwdWJsaWM6CiAgICAgRHluYW1pY1Jh
bmdlTW9kZSBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVm
ZXJyZWREeW5hbWljUmFuZ2VNb2RlOyB9CiAgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFu
Z2VNb2RlKER5bmFtaWNSYW5nZU1vZGUpOwogCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNl
SWQoKSBjb25zdDsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkgY29u
c3Q7CisgICAgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKTsKKwogcHJpdmF0ZToKICAg
ICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIE1lZGlhUGxheWVyKE1lZGlh
UGxheWVyQ2xpZW50JiwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyKTsK
QEAgLTcwNSw2ICs3MTIsMTYgQEAgcHVibGljOgogfTsKIAogCitpbmxpbmUgU3RyaW5nIE1lZGlh
UGxheWVyOjphdWRpb091dHB1dERldmljZUlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGll
bnQgPyBtX2NsaWVudC0+YXVkaW9PdXRwdXREZXZpY2VJZCgpIDogU3RyaW5nIHsgfTsKK30KKwor
aW5saW5lIFN0cmluZyBNZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+YXVkaW9PdXRwdXREZXZp
Y2VJZE92ZXJyaWRlKCkgOiBTdHJpbmcgeyB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDY3MGMwYTQ5NGMxMWEy
NzM3NjA0Mjg0MTgzYzAwNzg4ZDk3NTk3OGQuLjgxMjUzMzAyNzZkZDU0NGUxZmNhYmRhMTdkNjM2
Y2JjZjg3YmFkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0yODksNiArMjg5LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFt
aWNSYW5nZU1vZGUpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hh
bmdlZCgpIHsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGFkZTA2MzJjOWY2
Y2RjMGMxNGQ1ZGE4ODVjYTdiNzQyNzhiYmQzZTMuLjg1Y2U4MWQxMDNiODVkMWQ0MjZiN2EzNDhk
OGYwM2EwYmUzNjY0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTMxOCw2ICszMTgsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3RhdHVzKGJv
b2wpOwogCiAgICAgdm9pZCBzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5n
ZU1vZGUpIGZpbmFsOworICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7
CiAKICAgICBSZXRhaW5QdHI8QVZVUkxBc3NldD4gbV9hdkFzc2V0OwogICAgIFJldGFpblB0cjxB
VlBsYXllcj4gbV9hdlBsYXllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGFjMGY4ZmZh
MDI4ODNlNGFhZmZmMzJiZjM4MGY4ODIzMDAyYjU2MTUuLjUyMmUwYzc0ZGI4OTVkYzIzNjhiYjk3
ZGNlZTA3ZWUyNWIwZmY5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtOTUzLDYgKzk1
MywxNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFW
UGxheWVyKCkKICAgICBpZiAobV9hdlBsYXllckl0ZW0pCiAgICAgICAgIHNldEFWUGxheWVySXRl
bShtX2F2UGxheWVySXRlbS5nZXQoKSk7CiAKKyNpZiBIQVZFKEFVRElPX09VVFBVVF9ERVZJQ0Vf
VU5JUVVFX0lEKQorICAgIGF1dG8gYXVkaW9PdXRwdXREZXZpY2VJZCA9IHBsYXllcigpLT5hdWRp
b091dHB1dERldmljZUlkT3ZlcnJpZGUoKTsKKyAgICBpZiAoIWF1ZGlvT3V0cHV0RGV2aWNlSWQu
aXNOdWxsKCkpIHsKKyAgICAgICAgaWYgKGF1ZGlvT3V0cHV0RGV2aWNlSWQuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgbV9hdlBsYXllci5nZXQoKS5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0g
bmlsOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2F2UGxheWVyLmdldCgpLmF1ZGlvT3V0
cHV0RGV2aWNlVW5pcXVlSUQgPSBhdWRpb091dHB1dERldmljZUlkOworICAgIH0KKyNlbmRpZgor
CiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogfQogCkBAIC0zMjkzLDYgKzMzMDMsMTkg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRQcmVmZXJyZWRE
eW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW4KICNlbmRpZgogfQogCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpCit7Cisj
aWYgSEFWRShBVURJT19PVVRQVVRfREVWSUNFX1VOSVFVRV9JRCkKKyAgICBpZiAoIW1fYXZQbGF5
ZXIgfHwgIXBsYXllcigpKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9IHBs
YXllcigpLT5hdWRpb091dHB1dERldmljZUlkKCk7CisgICAgaWYgKGRldmljZUlkLmlzRW1wdHko
KSkKKyAgICAgICAgbV9hdlBsYXllci5nZXQoKS5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0g
bmlsOworICAgIGVsc2UKKyAgICAgICAgbV9hdlBsYXllci5nZXQoKS5hdWRpb091dHB1dERldmlj
ZVVuaXF1ZUlEID0gZGV2aWNlSWQ7CisjZW5kaWYKK30KKwogTlNBcnJheSogYXNzZXRNZXRhZGF0
YUtleU5hbWVzKCkKIHsKICAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJheSBhbGxv
Y10gaW5pdFdpdGhPYmplY3RzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAwOWJmNTU3
NDg0MzMxZDU4MjIwZDIwZjVmMjAzMzI5NmU2OWNlYzQyLi44Y2UzYjdiNDA1ZGZkZjk3MDJmMmY5
NTE4YWQ2OWRkODViZGY3Nzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMjU0LDYg
KzI1NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVRhc2tBdE1lZGlh
VGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOworICAgIHZv
aWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lkIGVuc3VyZUxh
eWVyKCk7CiAgICAgdm9pZCBkZXN0cm95TGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bQppbmRleCA4Yjk0MTUwN2MwMzg4MWMwMjE2YjRlNzkyZTM5ZGIyNmUzNTdmZGI5Li4wYmI0MjEy
NWM4MjlhMDg3ZTFjMTdkZDU2NjdiMTkzM2RiNDFmOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCkBAIC0xMTY2LDYgKzExNjYsMTYgQEAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJE
U19FTkQKICAgICBbYXVkaW9SZW5kZXJlciBzZXRWb2x1bWU6bV9wbGF5ZXItPnZvbHVtZSgpXTsK
ICAgICBbYXVkaW9SZW5kZXJlciBzZXRBdWRpb1RpbWVQaXRjaEFsZ29yaXRobToobV9wbGF5ZXIt
PnByZXNlcnZlc1BpdGNoKCkgPyBBVkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtU3BlY3RyYWwgOiBB
VkF1ZGlvVGltZVBpdGNoQWxnb3JpdGhtVmFyaXNwZWVkKV07CiAKKyNpZiBIQVZFKEFVRElPX09V
VFBVVF9ERVZJQ0VfVU5JUVVFX0lEKQorICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVk
aW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFkZXZpY2VJZC5pc051bGwoKSkg
eworICAgICAgICBpZiAoZGV2aWNlSWQuaXNFbXB0eSgpKQorICAgICAgICAgICAgYXVkaW9SZW5k
ZXJlci5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gbmlsOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBhdWRpb1JlbmRlcmVyLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBkZXZpY2VJ
ZDsKKyAgICB9CisjZW5kaWYKKwogICAgIEB0cnkgewogICAgICAgICBbbV9zeW5jaHJvbml6ZXIg
YWRkUmVuZGVyZXI6YXVkaW9SZW5kZXJlcl07CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24gKmV4
Y2VwdGlvbikgewpAQCAtMTI3Niw2ICsxMjg2LDIyIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworI2lmIEhBVkUoQVVESU9f
T1VUUFVUX0RFVklDRV9VTklRVUVfSUQpCisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0
dXJuOworICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VJZCgp
OworICAgIGZvciAoYXV0byYga2V5IDogbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmtl
eXMoKSkgeworICAgICAgICBhdXRvIHJlbmRlcmVyID0gKChfX2JyaWRnZSBBVlNhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXIgKilrZXkuZ2V0KCkpOworICAgICAgICBpZiAoZGV2aWNlSWQuaXNFbXB0
eSgpKQorICAgICAgICAgICAgcmVuZGVyZXIuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IG5p
bDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVuZGVyZXIuYXVkaW9PdXRwdXREZXZpY2VV
bmlxdWVJRCA9IGRldmljZUlkOworICAgIH0KKyNlbmRpZgorfQorCiBXVEZMb2dDaGFubmVsJiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmxvZ0NoYW5uZWwoKSBjb25zdAog
ewogICAgIHJldHVybiBMb2dNZWRpYVNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5k
ZXggOGRlODk1ZDdiMjQxMThmZGIyOGZhYzM5Y2IxYmZiZTk4YjhmNzYxMy4uNjMxZjMwMzFlYTQz
ODBlYTM4ZDFkNDVhZjZiMzQyOTAwMDI1MGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgK
QEAgLTE1OSw2ICsxNTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZW5kZWQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2VuZGVkOyB9CiAKICAgICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShN
ZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5KSBvdmVycmlkZTsKKyAgICB2b2lkIGF1ZGlvT3V0
cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUg
Y3VycmVudFJlYWR5U3RhdGUoKTsKICAgICB2b2lkIHVwZGF0ZVJlYWR5U3RhdGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCAyZGI1MGJiODk1NzRlZGMzN2FkOWM3Y2M5YmFiZmNj
MTkzNzAzMDM2Li4zYThjMzhjNzY4NGQ0MTU4YTU2MzY5YzQ3MGQxMDRhMDc0YzllZThjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC04NjcsNyArODY3LDggQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcygpCiB7CiAgICAgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgY3VycmVudFRyYWNrcyA9IG1fbWVkaWFTdHJlYW1Q
cml2YXRlLT50cmFja3MoKTsKIAotICAgIGF1dG8gc2V0QXVkaW9UcmFja1N0YXRlID0gW3RoaXNd
KEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0mIHRyYWNrLCBpbnQgaW5kZXgsIFRyYWNrU3Rh
dGUgc3RhdGUpCisgICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5hdWRpb091dHB1dERldmlj
ZUlkT3ZlcnJpZGUoKTsKKyAgICBhdXRvIHNldEF1ZGlvVHJhY2tTdGF0ZSA9IFt0aGlzLCAmZGV2
aWNlSWRdKEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0mIHRyYWNrLCBpbnQgaW5kZXgsIFRy
YWNrU3RhdGUgc3RhdGUpCiAgICAgewogICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAgICAgICAg
IGNhc2UgVHJhY2tTdGF0ZTo6UmVtb3ZlOgpAQCAtODg0LDYgKzg4NSw5IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MoKQogICAgICAgICAg
ICAgdHJhY2suc2V0Vm9sdW1lKG1fdm9sdW1lKTsKICAgICAgICAgICAgIHRyYWNrLnNldE11dGVk
KG1fbXV0ZWQpOwogICAgICAgICAgICAgdHJhY2suc2V0RW5hYmxlZCh0cmFjay5zdHJlYW1UcmFj
aygpLmVuYWJsZWQoKSAmJiAhdHJhY2suc3RyZWFtVHJhY2soKS5tdXRlZCgpKTsKKyAgICAgICAg
ICAgIGlmICghZGV2aWNlSWQuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgdHJhY2suc2V0QXVk
aW9PdXRwdXREZXZpY2UoZGV2aWNlSWQpOworCiAgICAgICAgICAgICBpZiAocGxheWluZygpKQog
ICAgICAgICAgICAgICAgIHRyYWNrLnBsYXkoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTAx
Nyw2ICsxMDIxLDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlCiAgICAgICAgIG1fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLT5mbHVzaEFuZFJlbW92ZUltYWdlKCk7CiB9CiAKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5n
ZWQoKQoreworICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRl
dmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8m
IGF1ZGlvVHJhY2sgOiBtX2F1ZGlvVHJhY2tNYXAudmFsdWVzKCkpCisgICAgICAgIGF1ZGlvVHJh
Y2stPnNldEF1ZGlvT3V0cHV0RGV2aWNlKGRldmljZUlkKTsKK30KKwogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9u
PHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCmluZGV4IDY0ODlmOWRhN2M1NjI2YzIwMjk3ODUz
ZjFhMDFlOWVhZmJlNTYwMGIuLmU3MjU1YTM2ZTAyMDM2YjcxNjgyZTM3NTRjODU5MmQxOGFmZjVh
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtNTMsNiArNTMs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgZmxv
YXQgdm9sdW1lKCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZp
Y2UoY29uc3QgU3RyaW5nJik7CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB2b2lk
IHNldExvZ2dlcihjb25zdCBMb2dnZXImLCBjb25zdCB2b2lkKik7CiAjZW5kaWYKQEAgLTEwOSw2
ICsxMTEsMTAgQEAgaW5saW5lIGNvbnN0IGNoYXIqIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyOjpsb2dDbGFzc05hbWUoKSBjb25zdAogfQogI2VuZGlmCiAKK2lubGluZSB2b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJp
bmcmKQoreworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9B
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcAppbmRleCBhMTg1Y2Q0NzAzNjNlNjA1Zjkw
ZDQ5OWRlMDM4MDk3OTZhYzljNWFjLi41ZGE1Nzk1MGI5ODkwNGNhMDk4ZGJhMzQ3OTIyZmRjYzc2
YzQ4MGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9B
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcApAQCAtOTcs
NiArOTcsMTEgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpzZXRWb2x1bWUo
ZmxvYXQgdm9sdW1lKQogICAgIHVwZGF0ZVJlbmRlcmVyKCk7CiB9CiAKK3ZvaWQgQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0QXVkaW9PdXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJiBk
ZXZpY2VJZCkKK3sKKyAgICBtX3JlbmRlcmVyLT5zZXRBdWRpb091dHB1dERldmljZShkZXZpY2VJ
ZCk7Cit9CisKIGZsb2F0IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnZvbHVtZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fcmVuZGVyZXItPnZvbHVtZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbS5oCmluZGV4IGE0ODVjMThjYTg3YTFjNmYzMmE2MTllZThjZGM1YTNj
OGVhZDc0ZTMuLjJmNzRkOTU1MjRmZGZjMzE4ZjZlZDU1MjFhNThmMDQyYWI2NWVlNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGlj
OgogICAgIH5BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKCk7CiAKICAgICB2b2lkIHNldFRy
YWNrSW5kZXgoaW50IGluZGV4KSB7IG1faW5kZXggPSBpbmRleDsgfQorICAgIHZvaWQgc2V0QXVk
aW9PdXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJik7CiAKICAgICBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYgc3RyZWFtVHJhY2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcApp
bmRleCA3NjIzMmI3OWQ5ZDA3ZWIxYjg5YzQyZWI1MzQ0ZGRjMzA1NDJhZTA4Li41YjExZGRlZTdj
MTIxODlmNzAwZGMzZGYyNDhlZGZiYTAwOGE5NzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJD
b2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCkBAIC02NywxMSArNjcsMTggQEAg
dm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRWb2x1bWUoZmxvYXQg
dm9sdW1lKQogICAgICAgICBtX2RhdGFTb3VyY2UtPnNldFZvbHVtZSh2b2x1bWUpOwogfQogCit2
b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldEF1ZGlvT3V0cHV0RGV2
aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQpCit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBj
cmVhdGUgYSB1bml0IGZvciBvdXJzZWx2ZXMgaGVyZSBvciB1c2UgdGhlIGRlZmF1bHQgdW5pdCBp
ZiBkZXZpY2VJZCBpcyBtYXRjaGluZy4KKyAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnNpbmdsZXRvbigpLnNldEF1ZGlvT3V0cHV0RGV2aWNlKGRldmljZUlkKTsKKyAgICBt
X3Nob3VsZFJlc2V0ID0gdHJ1ZTsKK30KKwogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckNvY29hOjpwdXNoU2FtcGxlcyhjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7CiAgICAgQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24o
KS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwot
ICAgIGlmICghbV9kYXRhU291cmNlIHx8ICFtX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24o
KSB8fCAqbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgIT0gZGVzY3JpcHRpb24pIHsK
KyAgICBpZiAoIW1fZGF0YVNvdXJjZSB8fCBtX3Nob3VsZFJlc2V0IHx8ICFtX2RhdGFTb3VyY2Ut
PmlucHV0RGVzY3JpcHRpb24oKSB8fCAqbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkg
IT0gZGVzY3JpcHRpb24pIHsKICAgICAgICAgYXV0byBkYXRhU291cmNlID0gQXVkaW9TYW1wbGVE
YXRhU291cmNlOjpjcmVhdGUoZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMiwgKnRoaXMpOwog
CiAgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdCh0b0NBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbihkZXNjcmlwdGlvbikpKSB7CkBAIC05NSw2ICsxMDIsNyBAQCB2b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGlt
ZSYgc2FtcGxlVGltZQogICAgICAgICAgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0OjpzaW5nbGV0b24oKS5hZGRTb3VyY2UoV1RGTW92ZShuZXdTb3VyY2UpKTsKICAgICAgICAg
fSk7CiAgICAgICAgIG1fZGF0YVNvdXJjZSA9IFdURk1vdmUoZGF0YVNvdXJjZSk7CisgICAgICAg
IG1fc2hvdWxkUmVzZXQgPSBmYWxzZTsKICAgICB9CiAKICAgICBtX2RhdGFTb3VyY2UtPnB1c2hT
YW1wbGVzKHNhbXBsZVRpbWUsIGF1ZGlvRGF0YSwgc2FtcGxlQ291bnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKaW5kZXggNTFhYzQzMzdj
NGUwMzU4ZmRkY2I0ZWE4NTQ3ZjJhYmIwYmMwZmE4Ny4uZGU4Mzk2NzRiZDdkMDQ5M2VkY2M2MTky
YzBiMTkyYTRmNzQ1MDhlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJDb2NvYS5oCkBAIC01Myw5ICs1MywxMSBAQCBwcml2YXRlOgogICAgIHZvaWQg
c3RvcCgpIGZpbmFsOwogICAgIHZvaWQgY2xlYXIoKSBmaW5hbDsKICAgICB2b2lkIHNldFZvbHVt
ZShmbG9hdCkgZmluYWw7CisgICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJp
bmcmKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24+IG1fb3V0cHV0RGVzY3JpcHRpb247CiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZT4gbV9kYXRhU291cmNlOworICAgIGJvb2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQu
Y3BwCmluZGV4IGRhYzc0YTEyNTVjNWU1NGE1MjM0MzZmZTY5YThlNDQ0YzJlNzBiMTUuLmU3MTU4
Nzg0NmE0OTRmZGM4ODEwZDg4MjRmMjZmNmM4NzY1NTYwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0zNiw2ICszNiwxMSBA
QAogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQXVkaW9Ub29sYm94U1BJLmg+CiAjaW5jbHVkZSA8
d3RmL0xvY2suaD4KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkNvcmVBdWRpb0Nh
cHR1cmVEZXZpY2UuaCIKKyNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IgorI2VuZGlmCisKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNTEsNiArNTYsMzMgQEAgQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0Ojp+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0KCkKICAgICBz
dG9wKCk7CiB9CiAKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzZXRB
dWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlEKQoreworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpz
aW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKKworICAgIGlmICgh
ZGV2aWNlICYmICFkZXZpY2VJRC5pc0VtcHR5KCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coV2Vi
UlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzZXRBdWRpb091dHB1dERl
dmljZUlkIC0gZGlkIG5vdCBmaW5kIGRldmljZSIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBhdWRpb1VuaXREZXZpY2VJRCA9IGRldmljZSA/IGRldmljZS0+ZGV2aWNlSUQo
KSA6IDA7CisgICAgaWYgKG1fZGV2aWNlSUQgPT0gYXVkaW9Vbml0RGV2aWNlSUQpCisgICAgICAg
IHJldHVybjsKKworICAgIGJvb2wgc2hvdWxkUmVzdGFydCA9IG1faXNTdGFydGVkOworICAgIGlm
IChtX2lzU3RhcnRlZCkKKyAgICAgICAgc3RvcCgpOworCisgICAgbV9kZXZpY2VJRCA9IGF1ZGlv
VW5pdERldmljZUlEOworCisgICAgaWYgKHNob3VsZFJlc3RhcnQpCisgICAgICAgIHN0YXJ0KCk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZXZpY2VJRCk7CisjZW5kaWYKK30KKwogdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZShSZWY8QXVkaW9TYW1w
bGVEYXRhU291cmNlPiYmIHNvdXJjZSkKIHsKICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZSIpOwpAQCAtMTYxLDYgKzE5
MywxNiBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVk
aW9Vbml0SWZOZWVkZWQoKQogICAgIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IGlmIChtX2RldmljZUlEKSB7CisgICAgICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJvcGVydHko
cmVtb3RlSU9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmljZSwga0F1
ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJm1fZGV2aWNlSUQsIHNpemVvZihtX2RldmljZUlEKSk7
CisgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2Vi
UlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpjcmVhdGVBdWRpb1VuaXQg
dW5hYmxlIHRvIHNldCB1bml0IGRldmljZSBJRCAlZCwgZXJyb3IgJWQgKCUuNHMpIiwgKGludClt
X2RldmljZUlELCAoaW50KWVycm9yLCAoY2hhciopJmVycm9yKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVj
dCBjYWxsYmFjayA9IHsgaW5wdXRQcm9jLCBudWxscHRyIH07CiAgICAgZXJyb3IgPSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShyZW1vdGVJT1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJD
YWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgMCwgJmNhbGxiYWNrLCBzaXplb2YoY2Fs
bGJhY2spKTsKICAgICBpZiAoZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuaAppbmRleCA0NDA3NmE1NmVjOTc0ZjliYjg3MzQyYmZjNzQ4
MzBjODU5Yzc3MmY2Li42MTA4MTA0ZWI2Zjc3YmViZWYxODY0YmQ4ODc2NDMxNzdlMGFkNDk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCkBA
IC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgdm9pZCBzdG9w
KCk7CiAKKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYpOworCiAg
ICAgdm9pZCBhZGRTb3VyY2UoUmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4mJik7CiAgICAgdm9p
ZCByZW1vdmVTb3VyY2UoQXVkaW9TYW1wbGVEYXRhU291cmNlJik7CiAKQEAgLTY4LDYgKzcwLDkg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkVXBkYXRlUmVuZGVyU291cmNlcyB7IGZhbHNl
IH07CiAgICAgTG9jayBtX3NvdXJjZXNMb2NrOwogICAgIGJvb2wgbV9pc1N0YXJ0ZWQgeyBmYWxz
ZSB9OworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB1aW50MzJfdCBtX2RldmljZUlEIHsgMCB9Owor
I2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNTkx
MDYxMjFhNjY1ZTE4ZWQ0OTY2ODFlN2ZkZDM1ZGM3MmEwYjBlNy4uZjQzNDc3ODY4ZWE5OWVkN2Nh
ZDVkNmZhZjIwYTg3NTFhOWQ3MDBlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtNTY3LDYgKzU2Nyw3IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0
YXRlKFBhZ2UmIHBhZ2UpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5zZXRXZWJSVENIMjY1Q29kZWNFbmFibGVkKHRydWUpOwogICAgIHBhZ2Uuc2V0dGluZ3Mo
KS5zZXRXZWJSVENFbmNyeXB0aW9uRW5hYmxlZCh0cnVlKTsKICNlbmRpZgorICAgIHBhZ2Uuc2V0
dGluZ3MoKS5zZXRTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZShmYWxzZSk7CiAK
ICAgICBwYWdlLnNldEZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0aW9uKDBfcyk7CiAgICAgcGFnZS5z
ZXRGdWxsc2NyZWVuSW5zZXRzKHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBlZGY1OGJlZGEyZTlkMDRmNTgy
MjFkYWFkZWNiZTI1ZmUwMTYwYjAwLi5lMDYwNGY3MTIyZGFjYWRmMjdmM2M1NDYzYmZmNjVmN2Rj
ZDU0NzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTEzNiw3ICsxMzYsMTQgQEAgRXhwb3NlU3BlYWtlcnNFbmFi
bGVkOgogICBkZWZhdWx0VmFsdWU6IGZhbHNlCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiQWxsb3cg
c3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJB
bGxvdyBzcGVha2VyIGRldmljZSBzZWxlY3Rpb24iCi0gIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9S
VEMpCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVBTSkKKworUGVyRWxlbWVudFNwZWFr
ZXJTZWxlY3Rpb25FbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UK
KyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBbGxvdyBwZXIgbWVkaWEgZWxlbWVudCBzcGVha2VyIGRl
dmljZSBzZWxlY3Rpb24iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHBlciBt
ZWRpYSBlbGVtZW50IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKKyAgY29uZGl0aW9uOiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogCiBWUDlEZWNvZGVyRW5hYmxlZDoKICAgdHlwZTogYm9vbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1s
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCmluZGV4
IDc5ZDI1NmJhMjhiM2Q3YTA2ZTNkYjY0MDk2ODE0NTBmN2UzNjY4ZGYuLjc1MTk3YTYyNTgyN2Q5
M2FhZDQ1MjgyYWMwNDUwMDlhMjQ0MGE4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKQEAgLTYzLDYgKzYzLDEzIEBAIFdlYlJUQ01E
TlNJQ0VDYW5kaWRhdGVzRW5hYmxlZDoKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX1JUQykKIAorU3BlYWtlclNlbGVjdGlv
blJlcXVpcmVzVXNlckdlc3R1cmU6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiB0cnVl
CisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUmVxdWlyZSBhIHVzZXIgZ2VzdHVyZSBmb3Igc3BlYWtl
ciBzZWxlY3Rpb24iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlJlcXVpcmUgYSB1c2Vy
IGdlc3R1cmUgZm9yIHNwZWFrZXIgc2VsZWN0aW9uIgorICBjb25kaXRpb246IEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVm
YXVsdFZhbHVlOiBERUZBVUxUX0ZSQU1FX0ZMQVRURU5JTkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggYjVlZTBkM2VmNjRmZDliNjg5
ZTQ4NDczODE4YWFmZTE1Y2JiZmUyMS4uNDIzYTQ5OGVmMTI2YzZjOTY1ZjU0YjZmYzNlYWJhYTI4
NTA4NDljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAKQEAgLTc2Niw2ICs3NjYsMTYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0QXVkaW9Q
bGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmMKICAg
ICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+cmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1
ZGlvUGxheWJhY2soKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0U3BlYWtlclNlbGVjdGlv
blJlcXVpcmVzVXNlckdlc3R1cmUoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9v
bCBmbGFnKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFNwZWFrZXJTZWxlY3Rp
b25SZXF1aXJlc1VzZXJHZXN0dXJlKGZsYWcpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRT
cGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZShXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zcGVha2Vy
U2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSgpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNT
ZXRNYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZykKIHsKICAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5zZXRNYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkKGZsYWcpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2
YXRlLmgKaW5kZXggYTNlMTY3MzUxMGNjYzgxZDA4MzZjNjUwY2I1YjQwY2FiN2M0OWViYS4uYjIy
ZTlmNTZhNTgzODBmOTI1YmUwZmI5OWUwNWVhY2FhZjZlNDFkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBA
IC0xNjksNiArMTY5LDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRWaWRlb1Bs
YXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShXS1ByZWZlcmVuY2VzUmVmCiBXS19FWFBPUlQgdm9p
ZCBXS1ByZWZlcmVuY2VzU2V0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKIFdLX0VYUE9SVCBib29sIFdL
UHJlZmVyZW5jZXNHZXRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKIAorLy8gRGVmYXVsdHMgdG8gdHJ1ZS4KK1dLX0VYUE9S
VCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVy
ZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOworV0tfRVhQT1JU
IGJvb2wgV0tQcmVmZXJlbmNlc0dldFNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJl
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOworCiAvLyBEZWZhdWx0cyB0byBmYWxz
ZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRNYWluQ29udGVudFVzZXJHZXN0dXJl
T3ZlcnJpZGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxh
Zyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TWFpbkNvbnRlbnRVc2VyR2VzdHVy
ZU92ZXJyaWRlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5OWI0ODg3ODI2
YjhhM2FlOWVhMThhODBlODEwNjI2MDZjYzQ2OGYwLi4yMTVjYzk0NGM0MGMyZjJlZWZmNTQ3ODhh
YWMwYzY4M2FjZGVkNGRiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDktMjEgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVt
ZW50LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgor
CiAyMDIwLTA5LTE3ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcgZm9yIHJkYXI6Ly81NzAyOTEyMC4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDViNThkNGEyZDE3M2Nl
MWE3MGI1MmI3Y2NjMWRmYTc4OGY0NTkwYy4uYjdlNDI1N2Q3Y2VkZThjNGIwNGUwM2M5NGI1YTQ4
MTMwZjZjYTc2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
QEAgLTk4Nyw2ICs5ODcsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2Vz
VG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpbwogICAgIFdLUHJlZmVy
ZW5jZXNTZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFs
c2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVy
ZShwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBdWRpb1BsYXliYWNr
UmVxdWlyZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgZmFsc2UsIFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2Vz
dHVyZSIpKTsKIAogICAgIFdLUHJlZmVyZW5jZXNTZXRTaG91bGRVc2VTZXJ2aWNlV29ya2VyU2hv
cnRUaW1lb3V0KHByZWZlcmVuY2VzLCBvcHRpb25zLmNvbnRleHRPcHRpb25zLnVzZVNlcnZpY2VX
b3JrZXJTaG9ydFRpbWVvdXQpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGI4ODUwMGM5Y2FkMThhOTBjYWM4MDAyNDFh
YWEyMTk2MjQ4NDlhNi4uNjJhZDg4Njc2OTg1MWYzZjkzZWRmN2I2MDI3MzFmMjJiNGM0OTNlMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA5LTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5z
ZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNraXAgbmV3IHRlc3RzIG9uIFdLMSBzaW5jZSBtZWRpYURldmljZXMgaXMgbm90IGltcGxlbWVu
dGVkIGluIFdLMS4KKworICAgICAgICAqIGh0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQu
aHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9hdWRpby1vdXRw
dXQvc2V0U2lua0lkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13
azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2VzcyBpbnN0ZWFkIG9mIFVJUHJvY2Vz
cyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBpbiBXZWJQcm9jZXNzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmNzg5NWVlMzRkOTgxNWFlYmZhY2QzMWU1ZjA5MzNm
YjZiOTA0Mzg3Li4zYmYwNWJlYjY2MmZkNTRhOTUzYmExMGY3NzVlOTE0NWRmYWVmNDJkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wOS0xOCAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIEhUTUxNZWRpYUVsZW1lbnQuc2V0U2lua0lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpz
b246CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9NRVRBLnltbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJu
ZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy5qczogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1
ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3czYy1pbXBv
cnQubG9nOiBBZGRlZC4KKwogMjAyMC0wOS0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgSGFzaCBkZXZpY2VJZHMgaW4gV2ViUHJvY2VzcyBpbnN0ZWFkIG9m
IFVJUHJvY2VzcyB0byBhbGxvdyBhdWRpbyBvdXRwdXQgZGV2aWNlIElEcyBpbiBXZWJQcm9jZXNz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lk
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1dC9z
ZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZDUzNzIyZTliMTgwMWEz
ZTM5ZWU5OWM1YmE2ZjdiMjBkODMwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKKworUEFTUyBzZXRTaW5rSWQgcmVxdWlyZXMgdXNlciBnZXN0dXJlIAorUEFTUyBz
ZXRTaW5rSWQgYW5kIHNpbmtJZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
YXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
YXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhMjFiNTQxN2Y2
ZDFkZjk4YzVkOGJiZGU4ZjRjOTBjMGE4NWY0YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKQEAgLTAsMCAr
MSwzNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IHNldFNpbmtJZCBi
ZWhhdmlvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJEb21pbmlxdWUgSGF6
YWVsLU1hc3NpZXV4IiBocmVmPSJtYWlsdG86ZG9tQHczLm9yZyIvPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL3d3dy53My5vcmcvVFIvYXVkaW8tb3V0cHV0LyNkb20taHRtbG1lZGlh
ZWxlbWVudC1zZXRzaW5raWQiPgorPC9oZWFkPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitjb25zdCBhdWRp
byA9IG5ldyBBdWRpbygpOworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgaWYgKCF3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICByZXR1cm47CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNw
ZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKHRydWUpOworICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4geyBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3BlYWtlclNlbGVjdGlvblJlcXVpcmVz
VXNlckdlc3R1cmUoZmFsc2UpOyB9KTsKKworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9t
KHQsICJOb3RBbGxvd2VkRXJyb3IiLCBhdWRpby5zZXRTaW5rSWQoIiIpKTsKK30sICJzZXRTaW5r
SWQgcmVxdWlyZXMgdXNlciBnZXN0dXJlIik7CisKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICAgIGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW8g
OiB0cnVlIH0pOworICAgIGNvbnN0IGxpc3QgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmVudW1lcmF0ZURldmljZXMoKTsKKyAgICBjb25zdCBvdXRwdXREZXZpY2VzTGlzdCA9IGxpc3Qu
ZmlsdGVyKCh7a2luZH0pID0+IGtpbmQgPT0gImF1ZGlvb3V0cHV0Iik7CisgICAgYXNzZXJ0X25v
dF9lcXVhbHMob3V0cHV0RGV2aWNlc0xpc3QubGVuZ3RoLCAwLCAibWVkaWEgZGV2aWNlIGxpc3Qg
aW5jbHVkZXMgYXQgbGVhc3Qgb25lIGF1ZGlvIG91dHB1dCBkZXZpY2UiKTsKKworICAgIGxldCBw
cm9taXNlID0gYXVkaW8uc2V0U2lua0lkKG91dHB1dERldmljZXNMaXN0WzBdLmRldmljZUlkKTsK
KworICAgIGFzc2VydF9lcXVhbHMoYXVkaW8uc2lua0lkLCAiIik7CisgICAgYXdhaXQgcHJvbWlz
ZTsKKyAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvLnNpbmtJZCwgb3V0cHV0RGV2aWNlc0xpc3RbMF0u
ZGV2aWNlSWQpOworfSwgInNldFNpbmtJZCBhbmQgc2lua0lkIik7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0
aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhw
ZWN0YXRpb25zLmpzb24KaW5kZXggODVjZWIzNWUxNzkyOGQ3YTE2OTA2MGZmNDRlYjBiNDRkZmU0
NzA1Mi4uYWM2MWU2OGQ1Y2Y3ZmY4ZTE4MDhiNWEzM2NiZjRhOTExMzdlMzdiNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25z
Lmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhw
ZWN0YXRpb25zLmpzb24KQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2FwbmciOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXBwLXVyaSI6ICJza2lw
IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hc3N1bXB0aW9ucyI6ICJza2lwIiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQiOiAic2tpcCIsIAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvYXV4Y2xpY2siOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dy
b3VuZC1mZXRjaCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JhdHRlcnkt
c3RhdHVzIjogInNraXAiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L01FVEEueW1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjZhN2Q0ZDA2MjU5MTE3YWY4ZmI4NDNmNmE4ZDI1MmJhYzAxYThmMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVk
aW8tb3V0cHV0L01FVEEueW1sCkBAIC0wLDAgKzEsNCBAQAorc3BlYzogaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL21lZGlhY2FwdHVyZS1vdXRwdXQvCitzdWdnZXN0ZWRfcmV2aWV3ZXJzOgorICAtIGd1
aWRvdQorICAtIGphbi1pdmFyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDAzOTA2ZTJlMTkyMWY4MGY5YTY4ZTlmM2RjOWU5OTY1ZGFiZGY3YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVk
aW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE2IEBACisKK1BBU1MgaWRsX3Rlc3Qgc2V0dXAgCitQQVNTIGlkbF90ZXN0IHZhbGlkYXRpb24g
CitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIEhUTUxNZWRpYUVsZW1lbnQ6IG9yaWdpbmFsIGludGVy
ZmFjZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MTWVkaWFFbGVtZW50OiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFs
RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEhUTUxFbGVtZW50
IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlIAorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q29udGVudEVkaXRh
YmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMg
SFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEVsZW1lbnQg
aW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEVsZW1l
bnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZSAKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlIAorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUgCitQQVNTIEhUTUxNZWRpYUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2lu
a0lkIAorUEFTUyBIVE1MTWVkaWFFbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHNldFNpbmtJ
ZChET01TdHJpbmcpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRw
dXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5
M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVz
cy5odHRwcy53aW5kb3cuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1
aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQg
dGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJu
ZXNzLmh0dHBzLndpbmRvdy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ3Y2RiZDA3NjgzMzQ4MWI1M2YzNWIyNmQ1ZWUwMTZmZDcwYzQxMTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlv
LW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcwpAQCAtMCwwICsxLDIwIEBACisvLyBN
RVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMKKy8vIE1FVEE6IHNjcmlwdD0v
cmVzb3VyY2VzL2lkbGhhcm5lc3MuanMKKworLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlh
Y2FwdHVyZS1vdXRwdXQvCisKKyd1c2Ugc3RyaWN0JzsKKworaWRsX3Rlc3QoCisgIFsnYXVkaW8t
b3V0cHV0J10sCisgIFsnbWVkaWFjYXB0dXJlLXN0cmVhbXMnLCAnaHRtbCcsICdkb20nXSwKKyAg
aWRsX2FycmF5ID0+IHsKKyAgICBzZWxmLmF1ZGlvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
YXVkaW8nKTsKKyAgICBzZWxmLnZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8n
KTsKKyAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMoeworICAgICAgSFRNTEF1ZGlvRWxlbWVudDog
WydhdWRpbyddLAorICAgICAgSFRNTFZpZGVvRWxlbWVudDogWyd2aWRlbyddLAorICAgICAgTWVk
aWFEZXZpY2VzOiBbJ25hdmlnYXRvci5tZWRpYURldmljZXMnXSwKKyAgICB9KTsKKyAgfQorKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0
cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZTE3MzIzMjQyMTIyYWI5YzI3M2MyMjk3OGIy
YjljODNmZTY1MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIHNldFNpbmtJZCBvbiBkZWZhdWx0IGF1ZGlvIG91
dHB1dCBzaG91bGQgYWx3YXlzIHdvcmsgCitQQVNTIHNldFNpbmtJZCBmYWlscyB3aXRoIE5vdEZv
dW5kRXJyb3Igb24gbWFkZSB1cCBkZXZpY2VpZCAKK0ZBSUwgTGlzdCBkZXZpY2UsIHNldFNpbmtJ
ZCBzaG91bGQgYmUgYWxsb3dlZCBvbiB0aGUgZGVmYXVsdCwgdGhlIHJlc3Qgb2YgdGhlIGRldmlj
ZXMgd2lsbCBnZXQgYSBOb3RBbGxvd2VkRXJyb3IgYXNzZXJ0X25vdF9lcXVhbHM6IG1lZGlhIGRl
dmljZSBsaXN0IGluY2x1ZGVzIGF0IGxlYXN0IG9uZSBhdWRpbyBvdXRwdXQgZGV2aWNlIGdvdCBk
aXNhbGxvd2VkIHZhbHVlIDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9z
ZXRTaW5rSWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMWY3MDNhOTM1MGJmNTU3ZjBkMzg5MTFh
MDljMDlhOWQwMmVhYTNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwK
QEAgLTAsMCArMSw0NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UZXN0IHNl
dFNpbmtJZCBiZWhhdmlvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJEb21p
bmlxdWUgSGF6YWVsLU1hc3NpZXV4IiBocmVmPSJtYWlsdG86ZG9tQHczLm9yZyIvPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3d3dy53My5vcmcvVFIvYXVkaW8tb3V0cHV0LyNkb20t
aHRtbG1lZGlhZWxlbWVudC1zZXRzaW5raWQiPgorPC9oZWFkPgorPHNjcmlwdCBzcmM9L3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCitj
b25zdCBhdWRpbyA9IG5ldyBBdWRpbygpOworCitwcm9taXNlX3Rlc3QodCA9PiBhdWRpby5zZXRT
aW5rSWQoIiIpLCAic2V0U2lua0lkIG9uIGRlZmF1bHQgYXVkaW8gb3V0cHV0IHNob3VsZCBhbHdh
eXMgd29yayIpOworCitwcm9taXNlX3Rlc3QodCA9PiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJO
b3RGb3VuZEVycm9yIiwgYXVkaW8uc2V0U2lua0lkKCJub25leGlzdGVudF9kZXZpY2VfaWQiKSks
CisgICJzZXRTaW5rSWQgZmFpbHMgd2l0aCBOb3RGb3VuZEVycm9yIG9uIG1hZGUgdXAgZGV2aWNl
aWQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBsaXN0ID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CisgIGNvbnN0IG91dHB1
dERldmljZXNMaXN0ID0gbGlzdC5maWx0ZXIoKHtraW5kfSkgPT4ga2luZCA9PSAiYXVkaW9vdXRw
dXQiKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMob3V0cHV0RGV2aWNlc0xpc3QubGVuZ3RoLCAwLAor
ICAgICJtZWRpYSBkZXZpY2UgbGlzdCBpbmNsdWRlcyBhdCBsZWFzdCBvbmUgYXVkaW8gb3V0cHV0
IGRldmljZSIpOworCisgIGxldCBhY2NlcHRlZERldmljZXMgPSAwOworICBmb3IgKGNvbnN0IHtk
ZXZpY2VJZH0gb2Ygb3V0cHV0RGV2aWNlc0xpc3QpIHsKKyAgICBjb25zdCB7ZGV2aWNlSWR9ID0g
b3V0cHV0RGV2aWNlc0xpc3RbMF07CisgICAgY29uc3QgcDEgPSBhdWRpby5zZXRTaW5rSWQoZGV2
aWNlSWQpOworICAgIGFzc2VydF9lcXVhbHMoYXVkaW8uc2lua0lkLCAiIiwgImJlZm9yZSBpdCBy
ZXNvbHZlcywgc2V0U2lua0lkIGlzIHVuY2hhbmdlZCIpOworICAgIHRyeSB7CisgICAgICBsZXQg
ciA9IGF3YWl0IHAxOworICAgICAgYXNzZXJ0X2VxdWFscyhhY2NlcHRlZERldmljZXMsIDAsICJv
bmx5IHRoZSBkZWZhdWx0IHNpbmsgZGV2aWNlIGNhbiBiZSBzZXQiKTsKKyAgICAgIGFjY2VwdGVk
RGV2aWNlcysrOworICAgICAgYXNzZXJ0X2VxdWFscyhyLCB1bmRlZmluZWQsICJzZXRTaW5rSWQg
cmVzb2x2ZXMgd2l0aCB1bmRlZmluZWQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYXVkaW8uc2lu
a0lkLCBkZXZpY2VJZCwgIndoZW4gaXQgcmVzb2x2ZXMsIHNldFNpbmtJZCB1cGRhdGVzIHNpbmtJ
ZCB0byB0aGUgcmVxdWVzdGVkIGRldmljZUlkIik7CisgICAgICByID0gYXdhaXQgYXVkaW8uc2V0
U2lua0lkKGRldmljZUlkKTsKKyAgICAgIGFzc2VydF9lcXVhbHMociwgdW5kZWZpbmVkLCAicmVz
ZXR0aW5nIHNpbmtpZCBvbiBzYW1lIGN1cnJlbnQgdmFsdWUgc2hvdWxkIGFsd2F5cyB3b3JrIik7
CisgICAgICByID0gYXdhaXQgYXVkaW8uc2V0U2lua0lkKCIiKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMociwgdW5kZWZpbmVkLCAicmVzZXR0aW5nIHNpbmtpZCBvbiBkZWZhdWx0IGF1ZGlvIG91dHB1
dCBzaG91bGQgYWx3YXlzIHdvcmsiKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICBhc3NlcnRf
ZXF1YWxzKGUubmFtZSwgIk5vdEFsbG93ZWRFcnJvciIsICJOb24tZGVmYXVsdCBkZXZpY2VzIGFy
ZSBmYWlsaW5nIHdpdGggTm90QWxsb3dlZCBlcnJvciIpOworICAgIH0KKyAgfQorfSwgIkxpc3Qg
ZGV2aWNlLCBzZXRTaW5rSWQgc2hvdWxkIGJlIGFsbG93ZWQgb24gdGhlIGRlZmF1bHQsIHRoZSBy
ZXN0IG9mIHRoZSBkZXZpY2VzIHdpbGwgZ2V0IGEgTm90QWxsb3dlZEVycm9yIik7CisKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9hdWRpby1vdXRwdXQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC93M2MtaW1wb3J0LmxvZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44MjNjNTE1Y2VmNmVhOWQyYzhhMzI1Njc5NjkyYWRhYTgxMTVjZDEwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRp
by1vdXRwdXQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvTUVUQS55
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91
dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC1tYW51YWwuaHR0cHMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8t
b3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjdjZTFkMzc5M2IzYTRiMDBlMWYxODdiMDUyMzRi
NzhmNmY3NDlkZS4uNGVhMzliM2M3ZjQ2NGZmMTA3ZGE2ZWU0ZDI4M2FjOTQ1ZDA1YjQ5MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjUs
NiArNjUsOSBAQCBpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctTW9ja0NhcHR1cmVEZXZp
Y2VzRW5hYmxlZC5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNo
ZS1nZXRVc2VyTWVkaWEtcGVuZGluZy1wcm9taXNlLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLW1lZGlhc3RyZWFtLmh0bWwgWyBTa2lwIF0KIAoraHR0cC93
cHQvYXVkaW8tb3V0cHV0IFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dCBbIFNraXAgXQorCiAjIERhdGFsaXN0IGlzIHVuc3VwcG9ydGVkIGluIFdL
MQogYWNjZXNzaWJpbGl0eS9kYXRhbGlzdC5odG1sIFsgV29udEZpeCBdCiBmYXN0L2Zvcm1zL2Rh
dGFsaXN0IFsgV29udEZpeCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDVjYjM3MDg3ZWQxMmFjMDYyZjZlNGExZjVkOGQ0YmExYWY2ZjgxOGUuLmI1ZDZj
MDNjNDQ5ZTNjYzFhMzFkZjJmMjM4NWQwNzI5NzJkN2U2YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC04NTksNiArODU5LDkgQEAgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcyBbIFNraXAgXQogaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0gWyBTa2lwIF0KIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9w
YWdlLWNhY2hlLWdldFVzZXJNZWRpYS1wZW5kaW5nLXByb21pc2UuaHRtbCBbIFNraXAgXQogCito
dHRwL3dwdC9hdWRpby1vdXRwdXQgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvYXVkaW8tb3V0cHV0IFsgU2tpcCBdCisKICMgbmVlZHMgZW5oYW5jZWQgZXZlbnRTZW5k
ZXIuY29udGV4dE1lbnUoKSByZXR1cm4gdmFsdWUKICN3ZWJraXQub3JnL2IvNDUwMjEgbWVkaWEv
Y29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409457</attachid>
            <date>2020-09-23 03:09:18 -0700</date>
            <delta_ts>2020-09-23 04:17:47 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-216696-20200923120915.patch</filename>
            <type>text/plain</type>
            <size>58799</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJlMDdhMmM0MmFlNDcyYTcxN2NlYjVj
MGRhODA0ZGM2NDUwNGI1ODIuLjY1MDMxY2NlODkzZjI5MDM4OWUxOTc4MWI2NzY4NmIxNjQwYWFm
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDktMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50
LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
IEFkZCBIQVZFX0FVRElPX09VVFBVVF9ERVZJQ0VfVU5JUVVFX0lELgorICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMC0wOS0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgogCiAgICAgICAgIFtKU0NdIEJpZ0ludCBzaG91bGQgd29yayB3aXRoIE1hcCAvIFNl
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDRkZjg4NjE3NDcwNjMwMTgyY2EwNTU1NTFmMzdmMzg0YjUwMmVjNTMu
LmZkNDgyZDg2Mjk5N2QwNTlhMDAzMWQxZWFhMmM2MWVjNmU2OTcxNjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2OCBAQAorMjAyMC0wOS0yMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhUTUxNZWRpYUVsZW1lbnQuc2V0U2lua0lk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY2OTYK
KworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgSW1wbGVtZW50
IHNldFNpbmtJZCBhbmQgc2lua0lkIGFzIHBlciBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFj
YXB0dXJlLW91dHB1dC8jaHRtbG1lZGlhZWxlbWVudC1leHRlbnNpb25zLgorICAgICAgICBJbnRy
b2R1Y2UgYSBzZXR0aW5nIHRvIGV4cG9zZSB0aGVzZSBtZXRob2RzIGFuZCB0byBlbmFibGUvZGlz
YWJsZSB1c2VyIGdlc3R1cmUgcmVxdWlyZW1lbnQuCisgICAgICAgIEFkZCBpbnRlcmZhY2VzIHRv
IGNoYW5nZSBkZXZpY2Ugb3V0cHV0IGZvciBzcGVjaWZpYyBtZWRpYSBwbGF5ZXJzLgorICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgSExTLCBNU0UgYW5kIE1lZGlhU3RyZWFtVHJhY2sgcmVuZGVyZXJz
IG9uIE1hY09TLgorICAgICAgICBJbiBjYXNlIG9mIHNldHRpbmcgdGhlIGVtcHR5IHN0cmluZywg
dGhlIGRlZmF1bHQgb3V0cHV0IGRldmljZSBpcyB1c2VkCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
d3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRw
cy53aW5kb3cuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2UgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0QXVkaW9PdXRwdXREZXZpY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZCBjb25z
dCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dEhhc2hlZERldmljZUlkIGNvbnN0KToKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnRBdWRpb091dHB1dC5pZGw6IEFkZGVkLgorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6YXVkaW9PdXRw
dXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6OmF1ZGlvT3V0cHV0RGV2
aWNlSWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6OmF1ZGlv
T3V0cHV0RGV2aWNlSWRPdmVycmlkZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNy
ZWF0ZUFWUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphdWRpb091dHB1dERl
dmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2Vk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnNldEF1ZGlvT3V0cHV0RGV2aWNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVkaW9PdXRwdXREZXZpY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVk
aW9Vbml0SWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaDoKKwogMjAyMC0wOS0yMiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGEgZGVmYXVsdCBw
cm9tcHQgZm9yIGdldFVzZXJNZWRpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzNjM4ZTdhY2EzNTk1MjhhOTJjMDI4
ZmM1NWFlNDE0ZmFhMGUxYzYwLi5hYjMxNTY5M2YwZDg4NGY1ZDI0Y2U4ZmFmZjQ1MDMyNzFjYTU1
NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA5LTIyICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlh
RWxlbWVudC5zZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKwor
ICAgICAgICBBZGQgaW50ZXJuYWwgZmxhZyB0byBlbmFibGUvZGlzYWJsZSB1c2VyIGdlc3R1cmUg
cmVxdWlyZW1lbnQgZm9yIHNldHRpbmcgYXVkaW8gb3V0cHV0IGRldmljZSwKKyAgICAgICAgYW5k
IGZvciBwZXIgbWVkaWEgZWxlbWVudCBzZXR0aW5nIG9mIGF1ZGlvIG91dHB1dCBkZXZpY2UuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbHMueWFtbDoKKwogMjAyMC0wOS0yMiAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGEg
ZGVmYXVsdCBwcm9tcHQgZm9yIGdldFVzZXJNZWRpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCA2
MDBlNThjNWUyMmUxMjI3MDMzZjVmYzFhMjdhZDBiNmJjZGQyMDlhLi40NzEwZjc4OWIzMDc3OTky
MTRmYjJiNmZhYTM3MWEyOGMwYzUyMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtNjgyLDYg
KzY4MiwxMCBAQAogI2RlZmluZSBIQVZFX05TVEFCTEVWSUVXU1RZTEUgMQogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEhBVkVfQVVESU9fT1VUUFVUX0RFVklDRV9VTklRVUVf
SUQgMQorI2VuZGlmCisKICNpZiAoKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApIFwKICAg
ICB8fCAoUExBVEZPUk0oV0FUQ0hPUykgJiYgX19XQVRDSF9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSA3MDAwMCkgXAogICAgIHx8IChQTEFURk9STShBUFBMRVRWKSAmJiBfX1RWX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDE0MDAwMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTA3OWNi
MTlmNDQ2MDQ3YmU2ODVhOGY4ZjRhOWFiNWFmZWQ2MjdjYy4uZDJlZmUzMTcwNmJmNDJjZTUwNmE4
MTk0NjQ4NWJlNTI2OWMwMzU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTkxOSw2ICs5MTks
NyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGh0bWwvSFRNTE1hcEVsZW1l
bnQuaWRsCiAgICAgaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmlkbAorICAgIGh0bWwvSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0LmlkbAog
ICAgIGh0bWwvSFRNTE1lbnVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTE1lbnVJdGVtRWxlbWVu
dC5pZGwKICAgICBodG1sL0hUTUxNZXRhRWxlbWVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGVkOGI2NzBiMGZhODQzMTYxZTlh
ODAzYjJkMDlkYTU2ZjRiODlmNTYuLjMzODM0ZmI1NDRmMDk3NjlkNTcxMzRjYzBhNTc2YjQ1ZTc1
NGE0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdApAQCAtODQ0LDYgKzg0NCw3IEBAICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWFwRWxlbWVudC5pZGwKICQoUFJPSkVD
VF9ESVIpL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmlkbAorJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50
QXVkaW9PdXRwdXQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwK
ICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1lbnVJdGVtRWxlbWVudC5pZGwKICQoUFJPSkVDVF9E
SVIpL2h0bWwvSFRNTE1ldGFFbGVtZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlMjE0NDQ1MmNjNjY4MTlmOTA4MzExZDA1
ZmMyOWZlNDgyMTA0MTlhLi5kZDg2NTgwYmEzYzNjY2YwMmRiNDRhNDc3Yjk1ZWJkYzgxM2U0ODU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dApAQCAtOTAwLDYgKzkwMCw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTSFRNTE1hcnF1ZWVFbGVtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWFycXVlZUVsZW1lbnQuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50LmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVk
aWFFbGVtZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50QXVkaW9PdXRwdXQuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFF
bGVtZW50TWVkaWFTZXNzaW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50TWVkaWFTZXNzaW9uLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudFJlbW90
ZVBsYXliYWNrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZTBhZjIwZjVk
ODI3MDc3MDhhNzQ3NzY3NTRlYmJkY2UyZTA0MzRlMC4uMDc0Mjg3YTY5NmE0YjFmZmRlODg1YmYy
NThhYzg5ZGNmOWFhMDE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC04NjQs
NiArODY0LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1M
TWFwRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwgXAorICAgICQo
V2ViQ29yZSkvaHRtbC9IVE1MTWVkaWFFbGVtZW50QXVkaW9PdXRwdXQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvSFRNTE1lbnVFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hU
TUxNZW51SXRlbUVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE1ldGFFbGVt
ZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5jcHAKaW5kZXggYmU3MGFhYWJkOGU4MGQyZjdiNWNmNTJlNzMyNzE1ZjYxODM5
OGYwZS4uODUxOTNhYzg1ZTE0YTBmNDRkNDFjZWU0Nzk5YjM3OWRkYWQyYjBiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApA
QCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKGNvbnN0
IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICBib29sIGNhbkFj
Y2Vzc01pY3JvcGhvbmUgPSBjaGVja01pY3JvcGhvbmVBY2Nlc3MoZG9jdW1lbnQpOwogICAgIGJv
b2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2Vzcyhkb2N1bWVudCk7CiAKKyAg
ICBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5jbGVhcigpOworCiAgICAgVmVj
dG9yPFJlZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VzOwogICAgIGZvciAoYXV0byYgbmV3RGV2
aWNlIDogbmV3RGV2aWNlcykgewogICAgICAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUgJiYg
bmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25l
KQpAQCAtMjE0LDYgKzIxNiw5IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKGNv
bnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICAgICAgYXV0
byBkZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hT
dHJpbmdXaXRoU2FsdChuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZUlESGFzaFNhbHQp
OwogICAgICAgICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9ncm91cElk
SGFzaFNhbHQpOwogCisgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNwZWFrZXIpCisgICAgICAgICAgICBtX2F1ZGlvT3V0cHV0RGV2aWNl
SWRUb1BlcnNpc3RlbnRJZC5hZGQoZGV2aWNlSWQsIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSk7
CisKICAgICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2
aWNlLmxhYmVsKCksIFdURk1vdmUoZGV2aWNlSWQpLCBXVEZNb3ZlKGdyb3VwSWQpLCB0b01lZGlh
RGV2aWNlSW5mb0tpbmQobmV3RGV2aWNlLnR5cGUoKSkpKTsKICAgICB9CiAgICAgcHJvbWlzZS5y
ZXNvbHZlKGRldmljZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggNTgyODY3MjUzY2FkMTY5OGQ4MDE1ZjY2ZWE1ZjUzNGY5
MmY1MzlkMS4uNmY5MDYyOGFiMGNjOGYwYTM0MTExMzRmODc5N2U2NGJmYzgxNmYzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCkBA
IC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51bWVy
YXRlRGV2aWNlc1Byb21pc2UmJik7CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRz
IGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7CiAKKyAgICBTdHJpbmcgZGV2aWNlSWRUb1BlcnNp
c3RlbnRJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvT3V0
cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5nZXQoZGV2aWNlSWQpOyB9CisKICAgICB1c2luZyBS
ZWZDb3VudGVkPE1lZGlhRGV2aWNlcz46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlh
RGV2aWNlcz46OmRlcmVmOwogCkBAIC0xMzAsNiArMTMyLDkgQEAgcHJpdmF0ZToKIAogICAgIE9w
dGlvblNldDxHZXN0dXJlQWxsb3dlZFJlcXVlc3Q+IG1fcmVxdWVzdFR5cGVzRm9yQ3VycmVudEdl
c3R1cmU7CiAgICAgV2Vha1B0cjxVc2VyR2VzdHVyZVRva2VuPiBtX2N1cnJlbnRHZXN0dXJlVG9r
ZW47CisKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRU
b1BlcnNpc3RlbnRJZDsKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNkY2M1ZTcxYjhiMTMzOTAwMjYyMWFjN2I2Y2Fi
NzQwYWRmY2UyMWIuLjUxODM4ZmNmN2E4YjhlOTgwNTE2ZmUxZDJiZDNlYWUyYTAzNzRiMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTc2OTIsNiArNzY5Miw3IEBACiAJCTQxRDI4RDBDMjEzOUUwMUUwMEY0MjA2RiAvKiBMaWJX
ZWJSVENTdGF0c0NvbGxlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBM
aWJXZWJSVENTdGF0c0NvbGxlY3Rvci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1N0YXRz
Q29sbGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRDQxQzY1MjI1Njg1
OTIwMDY5Nzk0MiAvKiBTZXJ2aWNlV29ya2VySW50ZXJuYWxzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckludGVybmFscy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFENTFCQjIxRTRFMkU4MTAwMTMxQTVCIC8qIExpYldl
YlJUQ0F1ZGlvRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldl
YlJUQ0F1ZGlvRm9ybWF0Lmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDQXVkaW9Gb3JtYXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFENkJEOTgyNTFCM0FEQTAwNTVBN0I3
IC8qIEhUTUxNZWRpYUVsZW1lbnRBdWRpb091dHB1dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFERTdDN0EyMjJEQTEzRDAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90YU1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZVF1b3RhTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREU3QzdCMjIyREExM0Uw
MDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFN0b3JhZ2VRdW90YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFERUZDQjIxRTU2QzFCOTAwMEQ5RTVGIC8qIEpTRE9NQmluZGluZ0ludGVybmFscy5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEpTRE9NQmluZGluZ0lu
dGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyODg2LDYgKzIyODg3
LDcgQEAKIAkJCQlFNDQ2MTM5MjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5j
cHAgKi8sCiAJCQkJRTQ0NjEzOTMwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxNZWRpYUVsZW1lbnQu
aCAqLywKIAkJCQlFNDQ2MTM5NDBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5p
ZGwgKi8sCisJCQkJNDFENkJEOTgyNTFCM0FEQTAwNTVBN0I3IC8qIEhUTUxNZWRpYUVsZW1lbnRB
dWRpb091dHB1dC5pZGwgKi8sCiAJCQkJQ0Q1MjA5RTUxQjBCRDlFMTAwNzcxODRFIC8qIEhUTUxN
ZWRpYUVsZW1lbnRFbnVtcy5oICovLAogCQkJCUE4RUE3OUVDMEExOTE2REYwMEE4RUY1RiAvKiBI
VE1MTWVudUVsZW1lbnQuY3BwICovLAogCQkJCUE4RUE3OUU4MEExOTE2REYwMEE4RUY1RiAvKiBI
VE1MTWVudUVsZW1lbnQuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGE0ZjM2Nzk4ZTU0YWY0ZmQzOTRmNDIzYzZmYjBhNmZhMDg2OTZiMjEuLjBmOTk5
NzU3ODkwNzEzOWZkYmYyZGJjZTE0N2IzYzViY2RmODMzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgIk1JTUVU
eXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJN
ZWRpYUNvbnRyb2xzSG9zdC5oIgorI2luY2x1ZGUgIk1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUg
Ik1lZGlhRG9jdW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYUVycm9yLmgiCiAjaW5jbHVkZSAiTWVk
aWFGcmFnbWVudFVSSVBhcnNlci5oIgpAQCAtNzgsNiArNzksNyBAQAogI2luY2x1ZGUgIk1lZGlh
UGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2luY2x1ZGUgIk1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYURldmljZXMuaCIK
ICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBPREludGVydmFsVHJl
ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTI4NDMsNiArMjg0NSw0OSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmZhc3RTZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICBzZWVrV2l0
aFRvbGVyYW5jZSh0aW1lLCBuZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lOjp6ZXJvVGltZSgp
LCB0cnVlKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCit2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKFN0cmluZyYmIGRldmljZUlkLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50
KCkuZG9tV2luZG93KCk7CisgICAgYXV0byogbWVkaWFEZXZpY2VzID0gd2luZG93ID8gTmF2aWdh
dG9yTWVkaWFEZXZpY2VzOjptZWRpYURldmljZXMod2luZG93LT5uYXZpZ2F0b3IoKSkgOiBudWxs
cHRyOworICAgIGlmICghbWVkaWFEZXZpY2VzKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmICghZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpICYmIGRv
Y3VtZW50KCkuc2V0dGluZ3MoKS5zcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSgp
KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwg
IkEgdXNlciBnZXN0dXJlIGlzIHJlcXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKGRldmljZUlkLmlzRW1wdHkoKSkKKyAgICAgICAgZGV2aWNlSWQgPSB7IH07
CisKKyAgICBpZiAoZGV2aWNlSWQgPT0gbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkKSB7Cisg
ICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
U3RyaW5nIHBlcnNpc3RlbnRJZDsKKyAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKSB7CisgICAg
ICAgIHBlcnNpc3RlbnRJZCA9IG1lZGlhRGV2aWNlcy0+ZGV2aWNlSWRUb1BlcnNpc3RlbnRJZChk
ZXZpY2VJZCk7CisgICAgICAgIGlmIChwZXJzaXN0ZW50SWQuaXNOdWxsKCkpIHsKKyAgICAgICAg
ICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IgfSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2F1ZGlvT3V0cHV0UGVyc2lz
dGVudERldmljZUlkID0gV1RGTW92ZShwZXJzaXN0ZW50SWQpOworICAgIGlmIChtX3BsYXllcikK
KyAgICAgICAgbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCisgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
TWVkaWFFbGVtZW50LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkZXZp
Y2VJZCA9IFdURk1vdmUoZGV2aWNlSWQpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBt
dXRhYmxlIHsKKyAgICAgICAgbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkID0gV1RGTW92ZShk
ZXZpY2VJZCk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIH0pOworfQorI2VuZGlm
CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vlayhjb25zdCBNZWRpYVRpbWUmIHRpbWUpCiB7
CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0aW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYWIyYjAwMTFiNTk0MzllYTUxZThhYTNlMjA4ZmUwMTJj
NjNkMTJlZC4uNjE1MDA1M2I3ZjhjMzllYzcwMDEzNzU0ZjQ5ZWVjODZiMzc1YzFlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTI2OCw2ICsyNjgsMTEgQEAgcHVi
bGljOgogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdDsKICAgICBkb3VibGUg
bWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJ
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJZDsgfQorI2VuZGlm
CisKICAgICB1c2luZyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkJ1ZmZlcmluZ1BvbGljeTsKICAg
ICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShCdWZmZXJpbmdQb2xpY3kpOwogICAgIFdFQkNPUkVf
RVhQT1JUIEJ1ZmZlcmluZ1BvbGljeSBidWZmZXJpbmdQb2xpY3koKSBjb25zdDsKQEAgLTYwNSw2
ICs2MTAsOSBAQCBwcm90ZWN0ZWQ6CiAKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRT
ZWN1cml0eU9yaWdpbigpIGNvbnN0IGZpbmFsOwogCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2
aWNlSWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmlj
ZUlkOyB9CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fYXVkaW9PdXRwdXRQZXJzaXN0ZW50RGV2aWNlSWQ7IH0KKwogICAgIGJv
b2wgbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4g
bV9tZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3I7IH0KICAgICB2b2lkIHNldE1l
ZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3Rvcihib29sKTsKICAgICB2b2lkIHVwZGF0
ZU1lZGlhQ29udHJvbHNBZnRlclByZXNlbnRhdGlvbk1vZGVDaGFuZ2UoKTsKQEAgLTExOTcsNiAr
MTIwNSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0
IHsgZmFsc2UgfTsKICAgICBib29sIG1fcGxheWluZ09uU2Vjb25kU2NyZWVuIHsgZmFsc2UgfTsK
ICAgICBib29sIG1fcmVtb3ZlZEJlaGF2aW9yUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0
dXJlIHsgZmFsc2UgfTsKKworICAgIFN0cmluZyBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmlj
ZUlkOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXRI
YXNoZWREZXZpY2VJZDsKKyNlbmRpZgogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRv
U3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6OkF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MzY0YzAxOWY1YzI4NTc1ZDhkMWI5NjZkYjgxODZlZjllMGVlNTIwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50QXVk
aW9PdXRwdXQuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworCitbCisgICAgQ29uZGl0aW9uYWw9VklERU8sCitdIHBhcnRp
YWwgaW50ZXJmYWNlIEhUTUxNZWRpYUVsZW1lbnQgeworICAgIFtDb25kaXRpb25hbD1NRURJQV9T
VFJFQU0sIEVuYWJsZWRCeVNldHRpbmc9RXhwb3NlU3BlYWtlcnMmUGVyRWxlbWVudFNwZWFrZXJT
ZWxlY3Rpb24sIEltcGxlbWVudGVkQXM9YXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJZF0gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBzaW5rSWQ7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NU
UkVBTSwgRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50U3BlYWtlclNl
bGVjdGlvbiwgSW1wbGVtZW50ZWRBcz1zZXRBdWRpb091dHB1dERldmljZV0gUHJvbWlzZTx1bmRl
ZmluZWQ+IHNldFNpbmtJZChET01TdHJpbmcgZGV2aWNlSWQpOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQXVkaW9PdXRwdXRQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9BdWRpb091dHB1dFByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRlYTEwY2M4OThlNDEzYjcz
NDczZDcwZmJiNjZhMGM0OTFiMDAyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQXVkaW9PdXRwdXRQcm92aWRlci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYWdlOworCitj
bGFzcyBXRUJDT1JFX0VYUE9SVCBBdWRpb091dHB1dFByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBBdWRpb091dHB1dFByb3ZpZGVyKCkgPSBkZWZh
dWx0OworICAgIHZpcnR1YWwgfkF1ZGlvT3V0cHV0UHJvdmlkZXIoKSA9IGRlZmF1bHQ7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZChQYWdlJik7Cit9
OworCitpbmxpbmUgdm9pZCBBdWRpb091dHB1dFByb3ZpZGVyOjpkZWZhdWx0QXVkaW9PdXRwdXRE
ZXZpY2VDaGFuZ2VkKFBhZ2UmKQoreworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwK
aW5kZXggMTc4OTdlZTMwNGFlYjIyYjU4MmZiZDkzYjRiOTI2MTQyMDI3M2I2Zi4uNGJjNjgxNjk5
ODBhMTMzMTRlN2JmZTRjZTY0NTAzYjk1MmRmZDkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbApAQCAtODI2LDYgKzgyNiwxMiBAQCBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5OgogZXhw
b3NlU3BlYWtlcnNFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCitwZXJFbGVtZW50U3BlYWtl
clNlbGVjdGlvbkVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKK3NwZWFrZXJTZWxlY3Rpb25S
ZXF1aXJlc1VzZXJHZXN0dXJlOgorICBpbml0aWFsOiB0cnVlCisKIG1lZGlhRGV2aWNlSWRlbnRp
ZmllclN0b3JhZ2VEaXJlY3Rvcnk6CiAgIHR5cGU6IFN0cmluZwogICBjb25kaXRpb25hbDogRU5B
QkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAppbmRleCA2M2NmM2NjZWU4MTEyZTE1NWUxOTM4MDVhNjQ0OGNlOGRi
YTFlM2EyLi45MDJmNTg5OTdmNzI2Y2ZiMTdhNjI2YmQ5ZTk0NjVlNTlkZGVjYjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0x
NjA0LDYgKzE2MDQsMTEgQEAgdm9pZCBNZWRpYVBsYXllcjo6c2V0UHJlZmVycmVkRHluYW1pY1Jh
bmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlIG1vZGUpCiAgICAgbV9wcml2YXRlLT5zZXRQcmVmZXJy
ZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUpOwogfQogCit2b2lkIE1lZGlhUGxheWVyOjphdWRpb091
dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIG1fcHJpdmF0ZS0+YXVkaW9PdXRwdXREZXZpY2VD
aGFuZ2VkKCk7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIGNvbnN0IExvZ2dlciYg
TWVkaWFQbGF5ZXI6Om1lZGlhUGxheWVyTG9nZ2VyKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGVhMjU3ZjEyYWNmMDllMGJiZGZi
MzI5YjExNTNjY2U1MWFjYWY0ZjMuLmQ0NjczMWEyYmFkZjg4NTcwMTgwMTk4ODE1NjIzMmMzNGIx
ZmRmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaApAQCAtMjczLDYgKzI3Myw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU2VjdXJpdHlP
cmlnaW5EYXRhIGRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiB7IH07IH0K
IAorICAgIHZpcnR1YWwgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWQoKSBjb25zdCB7IHJldHVy
biB7IH07IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBhdWRpb091dHB1dERldmljZUlkT3ZlcnJpZGUo
KSBjb25zdCB7IHJldHVybiB7IH07IH0KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IHZpcnR1YWwgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIHZpcnR1YWwgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigp
ID0gMDsKQEAgLTYzMSw2ICs2MzQsMTAgQEAgcHVibGljOgogICAgIER5bmFtaWNSYW5nZU1vZGUg
cHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZmVycmVkRHlu
YW1pY1JhbmdlTW9kZTsgfQogICAgIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShE
eW5hbWljUmFuZ2VNb2RlKTsKIAorICAgIFN0cmluZyBhdWRpb091dHB1dERldmljZUlkKCkgY29u
c3Q7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0OworICAg
IHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7CisKIHByaXZhdGU6CiAgICAgTWVkaWFQ
bGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNs
aWVudCYsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CkBAIC03MDUs
NiArNzEyLDE2IEBAIHB1YmxpYzoKIH07CiAKIAoraW5saW5lIFN0cmluZyBNZWRpYVBsYXllcjo6
YXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50ID8gbV9j
bGllbnQtPmF1ZGlvT3V0cHV0RGV2aWNlSWQoKSA6IFN0cmluZyB7IH07Cit9CisKK2lubGluZSBT
dHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVy
cmlkZSgpIDogU3RyaW5nIHsgfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCA2NzBjMGE0OTRjMTFhMjczNzYwNDI4
NDE4M2MwMDc4OGQ5NzU5NzhkLi44MTI1MzMwMjc2ZGQ1NDRlMWZjYWJkYTE3ZDYzNmNiY2Y4N2Jh
ZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllclByaXZhdGUuaApAQCAtMjg5LDYgKzI4OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VN
b2RlKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSB7
IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBhZGUwNjMyYzlmNmNkYzBjMTRk
NWRhODg1Y2E3Yjc0Mjc4YmJkM2UzLi44NWNlODFkMTAzYjg1ZDFkNDI2YjdhMzQ4ZDhmMDNhMGJl
MzY2NDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0zMTgsNiArMzE4LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldFNob3VsZE9ic2VydmVUaW1lQ29udHJvbFN0YXR1cyhib29sKTsKIAog
ICAgIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlKSBm
aW5hbDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAg
UmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXI+
IG1fYXZQbGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBhYzBmOGZmYTAyODgzZTRh
YWZmZjMyYmYzODBmODgyMzAwMmI1NjE1Li41MjJlMGM3NGRiODk1ZGMyMzY4YmI5N2RjZWUwN2Vl
MjViMGZmOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTk1Myw2ICs5NTMsMTYgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcigp
CiAgICAgaWYgKG1fYXZQbGF5ZXJJdGVtKQogICAgICAgICBzZXRBVlBsYXllckl0ZW0obV9hdlBs
YXllckl0ZW0uZ2V0KCkpOwogCisjaWYgSEFWRShBVURJT19PVVRQVVRfREVWSUNFX1VOSVFVRV9J
RCkKKyAgICBhdXRvIGF1ZGlvT3V0cHV0RGV2aWNlSWQgPSBwbGF5ZXIoKS0+YXVkaW9PdXRwdXRE
ZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFhdWRpb091dHB1dERldmljZUlkLmlzTnVsbCgp
KSB7CisgICAgICAgIGlmIChhdWRpb091dHB1dERldmljZUlkLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IG5pbDsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgbV9hdlBsYXllci5nZXQoKS5hdWRpb091dHB1dERldmlj
ZVVuaXF1ZUlEID0gYXVkaW9PdXRwdXREZXZpY2VJZDsKKyAgICB9CisjZW5kaWYKKwogICAgIHNl
dERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKIH0KIApAQCAtMzI5Myw2ICszMzAzLDE5IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0UHJlZmVycmVkRHluYW1pY1Jh
bmdlTW9kZShEeW5hbWljUmFuCiAjZW5kaWYKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworI2lmIEhBVkUo
QVVESU9fT1VUUFVUX0RFVklDRV9VTklRVUVfSUQpCisgICAgaWYgKCFtX2F2UGxheWVyIHx8ICFw
bGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gZGV2aWNlSWQgPSBwbGF5ZXIoKS0+
YXVkaW9PdXRwdXREZXZpY2VJZCgpOworICAgIGlmIChkZXZpY2VJZC5pc0VtcHR5KCkpCisgICAg
ICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IG5pbDsKKyAg
ICBlbHNlCisgICAgICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJ
RCA9IGRldmljZUlkOworI2VuZGlmCit9CisKIE5TQXJyYXkqIGFzc2V0TWV0YWRhdGFLZXlOYW1l
cygpCiB7CiAgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRX
aXRoT2JqZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggMDliZjU1NzQ4NDMzMWQ1
ODIyMGQyMGY1ZjIwMzMyOTZlNjljZWM0Mi4uOGNlM2I3YjQwNWRmZGY5NzAyZjJmOTUxOGFkNjlk
ZDg1YmRmNzc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTI1NCw2ICsyNTQsNyBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIHBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoRnVu
Y3Rpb248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKSBmaW5hbDsKKyAgICB2b2lkIGF1ZGlv
T3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAgdm9pZCBlbnN1cmVMYXllcigpOwog
ICAgIHZvaWQgZGVzdHJveUxheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXgg
OGI5NDE1MDdjMDM4ODFjMDIxNmI0ZTc5MmUzOWRiMjZlMzU3ZmRiOS4uMGJiNDIxMjVjODI5YTA4
N2UxYzE3ZGQ1NjY3YjE5MzNkYjQxZjk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpA
QCAtMTE2Niw2ICsxMTY2LDE2IEBAIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiAg
ICAgW2F1ZGlvUmVuZGVyZXIgc2V0Vm9sdW1lOm1fcGxheWVyLT52b2x1bWUoKV07CiAgICAgW2F1
ZGlvUmVuZGVyZXIgc2V0QXVkaW9UaW1lUGl0Y2hBbGdvcml0aG06KG1fcGxheWVyLT5wcmVzZXJ2
ZXNQaXRjaCgpID8gQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRobVNwZWN0cmFsIDogQVZBdWRpb1Rp
bWVQaXRjaEFsZ29yaXRobVZhcmlzcGVlZCldOwogCisjaWYgSEFWRShBVURJT19PVVRQVVRfREVW
SUNFX1VOSVFVRV9JRCkKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0cHV0
RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGlmICghZGV2aWNlSWQuaXNOdWxsKCkpIHsKKyAgICAg
ICAgaWYgKGRldmljZUlkLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGF1ZGlvUmVuZGVyZXIuYXVk
aW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IG5pbDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
YXVkaW9SZW5kZXJlci5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gZGV2aWNlSWQ7CisgICAg
fQorI2VuZGlmCisKICAgICBAdHJ5IHsKICAgICAgICAgW21fc3luY2hyb25pemVyIGFkZFJlbmRl
cmVyOmF1ZGlvUmVuZGVyZXJdOwogICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9uICpleGNlcHRpb24p
IHsKQEAgLTEyNzYsNiArMTI4NiwyMiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6OkZ1bmN0aW9uPAogICAgIHJl
dHVybiB0cnVlOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyNpZiBIQVZFKEFVRElPX09VVFBVVF9E
RVZJQ0VfVU5JUVVFX0lEKQorICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAg
ICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlSWQoKTsKKyAgICBm
b3IgKGF1dG8mIGtleSA6IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5rZXlzKCkpIHsK
KyAgICAgICAgYXV0byByZW5kZXJlciA9ICgoX19icmlkZ2UgQVZTYW1wbGVCdWZmZXJBdWRpb1Jl
bmRlcmVyICopa2V5LmdldCgpKTsKKyAgICAgICAgaWYgKGRldmljZUlkLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIHJlbmRlcmVyLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQgPSBuaWw7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHJlbmRlcmVyLmF1ZGlvT3V0cHV0RGV2aWNlVW5pcXVlSUQg
PSBkZXZpY2VJZDsKKyAgICB9CisjZW5kaWYKK30KKwogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpsb2dDaGFubmVsKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gTG9nTWVkaWFTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDhkZTg5
NWQ3YjI0MTE4ZmRiMjhmYWMzOWNiMWJmYmU5OGI4Zjc2MTMuLjYzMWYzMDMxZWE0MzgwZWEzOGQx
ZDQ1YWY2YjM0MjkwMDAyNTBlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0xNTks
NiArMTU5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGVuZGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9lbmRlZDsgfQogCiAgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5
ZXI6OkJ1ZmZlcmluZ1BvbGljeSkgb3ZlcnJpZGU7CisgICAgdm9pZCBhdWRpb091dHB1dERldmlj
ZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIGN1cnJlbnRS
ZWFkeVN0YXRlKCk7CiAgICAgdm9pZCB1cGRhdGVSZWFkeVN0YXRlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KaW5kZXggMmRiNTBiYjg5NTc0ZWRjMzdhZDljN2NjOWJhYmZjYzE5MzcwMzAz
Ni4uM2E4YzM4Yzc2ODRkNDE1OGE1NjM2OWM0NzBkMTA0YTA3NGM5ZWU4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQpAQCAtODY3LDcgKzg2Nyw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MoKQogewogICAgIE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlVmVjdG9yIGN1cnJlbnRUcmFja3MgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+
dHJhY2tzKCk7CiAKLSAgICBhdXRvIHNldEF1ZGlvVHJhY2tTdGF0ZSA9IFt0aGlzXShBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtJiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRlIHN0YXRl
KQorICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJy
aWRlKCk7CisgICAgYXV0byBzZXRBdWRpb1RyYWNrU3RhdGUgPSBbdGhpcywgJmRldmljZUlkXShB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtJiB0cmFjaywgaW50IGluZGV4LCBUcmFja1N0YXRl
IHN0YXRlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgICAgICBjYXNlIFRy
YWNrU3RhdGU6OlJlbW92ZToKQEAgLTg4NCw2ICs4ODUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkKICAgICAgICAgICAgIHRyYWNr
LnNldFZvbHVtZShtX3ZvbHVtZSk7CiAgICAgICAgICAgICB0cmFjay5zZXRNdXRlZChtX211dGVk
KTsKICAgICAgICAgICAgIHRyYWNrLnNldEVuYWJsZWQodHJhY2suc3RyZWFtVHJhY2soKS5lbmFi
bGVkKCkgJiYgIXRyYWNrLnN0cmVhbVRyYWNrKCkubXV0ZWQoKSk7CisgICAgICAgICAgICBpZiAo
IWRldmljZUlkLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHRyYWNrLnNldEF1ZGlvT3V0cHV0
RGV2aWNlKGRldmljZUlkKTsKKwogICAgICAgICAgICAgaWYgKHBsYXlpbmcoKSkKICAgICAgICAg
ICAgICAgICB0cmFjay5wbGF5KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwMTcsNiArMTAy
MSwxNSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0QnVm
ZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZQogICAgICAgICBtX3NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci0+Zmx1c2hBbmRSZW1vdmVJbWFnZSgpOwogfQogCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sK
KyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBkZXZpY2VJZCA9
IG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUlkKCk7CisgICAgZm9yIChhdXRvJiBhdWRpb1Ry
YWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQorICAgICAgICBhdWRpb1RyYWNrLT5zZXRB
dWRpb091dHB1dERldmljZShkZXZpY2VJZCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpzY2hlZHVsZURlZmVycmVkVGFzayhGdW5jdGlvbjx2b2lkICgp
PiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXIuaAppbmRleCA2NDg5ZjlkYTdjNTYyNmMyMDI5Nzg1M2YxYTAxZTll
YWZiZTU2MDBiLi5lNzI1NWEzNmUwMjAzNmI3MTY4MmUzNzU0Yzg1OTJkMThhZmY1YTc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKQEAgLTUzLDYgKzUzLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwogICAgIGZsb2F0IHZvbHVt
ZSgpIGNvbnN0OwogCisgICAgdmlydHVhbCB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0
IFN0cmluZyYpOworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdm9pZCBzZXRMb2dn
ZXIoY29uc3QgTG9nZ2VyJiwgY29uc3Qgdm9pZCopOwogI2VuZGlmCkBAIC0xMDksNiArMTExLDEw
IEBAIGlubGluZSBjb25zdCBjaGFyKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bG9n
Q2xhc3NOYW1lKCkgY29uc3QKIH0KICNlbmRpZgogCitpbmxpbmUgdm9pZCBBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjo6c2V0QXVkaW9PdXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJikKK3sK
K30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKaW5kZXggYTE4NWNkNDcwMzYzZTYwNWY5MGQ0OTlkZTAz
ODA5Nzk2YWM5YzVhYy4uNWRhNTc5NTBiOTg5MDRjYTA5OGRiYTM0NzkyMmZkY2M3NmM0ODBhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKQEAgLTk3LDYgKzk3LDEx
IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCit2b2lkIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW06OnNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQp
Cit7CisgICAgbV9yZW5kZXJlci0+c2V0QXVkaW9PdXRwdXREZXZpY2UoZGV2aWNlSWQpOworfQor
CiBmbG9hdCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2b2x1bWUoKSBjb25zdAogewog
ICAgIHJldHVybiBtX3JlbmRlcmVyLT52b2x1bWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW0uaAppbmRleCBhNDg1YzE4Y2E4N2ExYzZmMzJhNjE5ZWU4Y2RjNWEzYzhlYWQ3NGUz
Li4yZjc0ZDk1NTI0ZmRmYzMxOGY2ZWQ1NTIxYTU4ZjA0MmFiNjVlZTRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSgpOwogCiAgICAgdm9pZCBzZXRUcmFja0luZGV4
KGludCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KKyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0
RGV2aWNlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0
cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQoKTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAKaW5kZXggNzYy
MzJiNzlkOWQwN2ViMWI4OWM0MmViNTM0NGRkYzMwNTQyYWUwOC4uNWIxMWRkZWU3YzEyMTg5Zjcw
MGRjM2RmMjQ4ZWRmYmEwMDhhOTc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcApAQCAtNjcsMTEgKzY3LDE4IEBAIHZvaWQgQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkK
ICAgICAgICAgbV9kYXRhU291cmNlLT5zZXRWb2x1bWUodm9sdW1lKTsKIH0KIAordm9pZCBBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRBdWRpb091dHB1dERldmljZShjb25z
dCBTdHJpbmcmIGRldmljZUlkKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY3JlYXRlIGEg
dW5pdCBmb3Igb3Vyc2VsdmVzIGhlcmUgb3IgdXNlIHRoZSBkZWZhdWx0IHVuaXQgaWYgZGV2aWNl
SWQgaXMgbWF0Y2hpbmcuCisgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojpz
aW5nbGV0b24oKS5zZXRBdWRpb091dHB1dERldmljZShkZXZpY2VJZCk7CisgICAgbV9zaG91bGRS
ZXNldCA9IHRydWU7Cit9CisKIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9
PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKLSAgICBpZiAo
IW1fZGF0YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgfHwgKm1f
ZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7CisgICAgaWYg
KCFtX2RhdGFTb3VyY2UgfHwgbV9zaG91bGRSZXNldCB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERl
c2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2Ny
aXB0aW9uKSB7CiAgICAgICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDIsICp0aGlzKTsKIAogICAgICAg
ICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQodG9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24oZGVzY3JpcHRpb24pKSkgewpAQCAtOTUsNiArMTAyLDcgQEAgdm9pZCBBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyhjb25zdCBNZWRpYVRpbWUmIHNhbXBs
ZVRpbWUKICAgICAgICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2lu
Z2xldG9uKCkuYWRkU291cmNlKFdURk1vdmUobmV3U291cmNlKSk7CiAgICAgICAgIH0pOwogICAg
ICAgICBtX2RhdGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgICAgICBtX3Nob3Vs
ZFJlc2V0ID0gZmFsc2U7CiAgICAgfQogCiAgICAgbV9kYXRhU291cmNlLT5wdXNoU2FtcGxlcyhz
YW1wbGVUaW1lLCBhdWRpb0RhdGEsIHNhbXBsZUNvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCmluZGV4IDUxYWM0MzM3YzRlMDM1OGZk
ZGNiNGVhODU0N2YyYWJiMGJjMGZhODcuLmRlODM5Njc0YmQ3ZDA0OTNlZGNjNjE5MmMwYjE5MmE0
Zjc0NTA4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyQ29jb2EuaApAQCAtNTMsOSArNTMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3AoKSBm
aW5hbDsKICAgICB2b2lkIGNsZWFyKCkgZmluYWw7CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQp
IGZpbmFsOworICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJikgZmlu
YWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uPiBtX291
dHB1dERlc2NyaXB0aW9uOwogICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1fZGF0
YVNvdXJjZTsKKyAgICBib29sIG1fc2hvdWxkUmVzZXQgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcAppbmRl
eCBkYWM3NGExMjU1YzVlNTRhNTIzNDM2ZmU2OWE4ZTQ0NGMyZTcwYjE1Li5lNzE1ODc4NDZhNDk0
ZmRjODgxMGQ4ODI0ZjI2ZjZjODc2NTU2MDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMzYsNiArMzYsMTEgQEAKICNpbmNs
dWRlIDxwYWwvc3BpL2NvY29hL0F1ZGlvVG9vbGJveFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJlRGV2
aWNlLmgiCisjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKKyNlbmRp
ZgorCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTUxLDYgKzU2LDMzIEBAIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdDo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdCgpCiAgICAgc3RvcCgpOwog
fQogCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0QXVkaW9PdXRw
dXREZXZpY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgYXV0byBkZXZpY2UgPSBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9u
KCkuY29yZUF1ZGlvRGV2aWNlV2l0aFVJRChkZXZpY2VJRCk7CisKKyAgICBpZiAoIWRldmljZSAm
JiAhZGV2aWNlSUQuaXNFbXB0eSgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKFdlYlJUQywgIkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0QXVkaW9PdXRwdXREZXZpY2VJZCAt
IGRpZCBub3QgZmluZCBkZXZpY2UiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8gYXVkaW9Vbml0RGV2aWNlSUQgPSBkZXZpY2UgPyBkZXZpY2UtPmRldmljZUlEKCkgOiAwOwor
ICAgIGlmIChtX2RldmljZUlEID09IGF1ZGlvVW5pdERldmljZUlEKQorICAgICAgICByZXR1cm47
CisKKyAgICBib29sIHNob3VsZFJlc3RhcnQgPSBtX2lzU3RhcnRlZDsKKyAgICBpZiAobV9pc1N0
YXJ0ZWQpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fZGV2aWNlSUQgPSBhdWRpb1VuaXREZXZp
Y2VJRDsKKworICAgIGlmIChzaG91bGRSZXN0YXJ0KQorICAgICAgICBzdGFydCgpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oZGV2aWNlSUQpOworI2VuZGlmCit9CisKIHZvaWQgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjphZGRTb3VyY2UoUmVmPEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZT4mJiBzb3VyY2UpCiB7CiAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAiQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJVbml0OjphZGRTb3VyY2UiKTsKQEAgLTE2MSw2ICsxOTMsMTYgQEAg
dm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmNyZWF0ZUF1ZGlvVW5pdElm
TmVlZGVkKCkKICAgICB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9k
ZXZpY2VJRCkgeworICAgICAgICBlcnJvciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KHJlbW90ZUlP
VW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2UsIGtBdWRpb1VuaXRT
Y29wZV9HbG9iYWwsIDAsICZtX2RldmljZUlELCBzaXplb2YobV9kZXZpY2VJRCkpOworICAgICAg
ICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVkaW9Vbml0IHVuYWJsZSB0
byBzZXQgdW5pdCBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRzKSIsIChpbnQpbV9kZXZpY2VJ
RCwgKGludCllcnJvciwgKGNoYXIqKSZlcnJvcik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICB9CisjZW5kaWYKKwogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJh
Y2sgPSB7IGlucHV0UHJvYywgbnVsbHB0ciB9OwogICAgIGVycm9yID0gQXVkaW9Vbml0U2V0UHJv
cGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ss
IGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7
CiAgICAgaWYgKGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0LmgKaW5kZXggNDQwNzZhNTZlYzk3NGY5YmI4NzM0MmJmYzc0ODMwYzg1OWM3
NzJmNi4uNjEwODEwNGViNmY3N2JlYmVmMTg2NGJkODg3NjQzMTc3ZTBhZDQ5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyVW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaApAQCAtNTEsNiAr
NTEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RvcCgpOwogCisg
ICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmKTsKKwogICAgIHZvaWQg
YWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3Zl
U291cmNlKEF1ZGlvU2FtcGxlRGF0YVNvdXJjZSYpOwogCkBAIC02OCw2ICs3MCw5IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3Nob3VsZFVwZGF0ZVJlbmRlclNvdXJjZXMgeyBmYWxzZSB9OwogICAg
IExvY2sgbV9zb3VyY2VzTG9jazsKICAgICBib29sIG1faXNTdGFydGVkIHsgZmFsc2UgfTsKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgdWludDMyX3QgbV9kZXZpY2VJRCB7IDAgfTsKKyNlbmRpZgog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwKaW5kZXggYmMxOTcxNmYyZWNmZDNlNDBiMWUyYWNiOWU4NmRmYjUzZWI5
NzNiOS4uZjZiY2I4ZmY5NGRlMGVhZDkxMDQ5OGNjN2Y1ZmVkYmVlODUzNGExNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1s
CkBAIC0xNDQsNyArMTQ0LDE0IEBAIEV4cG9zZVNwZWFrZXJzRW5hYmxlZDoKICAgZGVmYXVsdFZh
bHVlOiBmYWxzZQogICBodW1hblJlYWRhYmxlTmFtZTogIkFsbG93IHNwZWFrZXIgZGV2aWNlIHNl
bGVjdGlvbiIKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQWxsb3cgc3BlYWtlciBkZXZp
Y2Ugc2VsZWN0aW9uIgotICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQorICBjb25kaXRpb246
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKK1BlckVsZW1lbnRTcGVha2VyU2VsZWN0aW9uRW5hYmxl
ZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVO
YW1lOiAiQWxsb3cgcGVyIG1lZGlhIGVsZW1lbnQgc3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgor
ICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJBbGxvdyBwZXIgbWVkaWEgZWxlbWVudCBzcGVh
a2VyIGRldmljZSBzZWxlY3Rpb24iCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVBTSkK
IAogVlA5RGVjb2RlckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAppbmRleCBjNzI3NjY2MDExMzczM2Vl
MTFiODhmY2NmMzU3MzRlOTYwZDgyODRmLi44ODA5MjA2ZWJmODM3ZmRkNTVjZWM2NTE0NGQ5NTkx
MzQxZjQ1OWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0ludGVybmFsLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sCkBAIC03Miw2ICs3MiwxMyBAQCBXZWJSVENNRE5TSUNFQ2FuZGlkYXRlc0Vu
YWJsZWQ6CiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIGNvbmRp
dGlvbjogRU5BQkxFKFdFQl9SVEMpCiAKK1NwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0
dXJlOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogdHJ1ZQorICBodW1hblJlYWRhYmxl
TmFtZTogIlJlcXVpcmUgYSB1c2VyIGdlc3R1cmUgZm9yIHNwZWFrZXIgc2VsZWN0aW9uIgorICBo
dW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJSZXF1aXJlIGEgdXNlciBnZXN0dXJlIGZvciBzcGVh
a2VyIHNlbGVjdGlvbiIKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCiBGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogREVGQVVM
VF9GUkFNRV9GTEFUVEVOSU5HCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggZjYyMWVmODQ0MTgxOGQzZGQyNDM1NjZkYmI4ZDA2MWMyNzJjMjc3Mi4u
ZDcyMWQyNWQ5ZmYwMjI0MGMzOTg1MTk1YzAwNDM2MTY4MjJiMGNlNyAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIw
LTA5LTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNl
c1RvQ29uc2lzdGVudFZhbHVlcyk6CisKIDIwMjAtMDktMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBhIGRlZmF1bHQgcHJvbXB0IGZvciBn
ZXRVc2VyTWVkaWEKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggM2Y4NGVkNmEzYjU5YjljYWNlZDM4MTI4NWRlMTJjNGE2NjhjYjgxMC4uZjcxYWYyYjFjYjZh
OTg0NTI2NzFjZGE1MDU1ZTNhMmNkZmE5YWVmZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKQEAgLTk5Miw2ICs5OTIsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBv
cHRpbwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVy
ZShwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRWaWRlb1BsYXliYWNr
UmVxdWlyZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2Up
OworICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJl
bmNlcywgZmFsc2UsIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTcGVha2VyU2VsZWN0
aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSIpKTsKIAogICAgIFdLUHJlZmVyZW5jZXNTZXRTaG91bGRV
c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KHByZWZlcmVuY2VzLCBvcHRpb25zLmNvbnRleHRP
cHRpb25zLnVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjBmZmZjM2I4
MDlhYzdjOGNkMmU2OTJiYjAzNzUyZWVmNDNhZDY5My4uNGQwYTQ1MmM0YTEyMzNmOTY5ZWI1NDIx
MzE4NWQyODkwZGM1OGE1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA5LTIyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
SFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2Fy
bHNvbi4KKworICAgICAgICBTa2lwIG5ldyB0ZXN0cyBvbiBXSzEgc2luY2UgbWVkaWFEZXZpY2Vz
IGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBXSzEuCisKKyAgICAgICAgKiBodHRwL3dwdC9hdWRpby1v
dXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDktMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIHRvUlRDSWNlUHJvdG9jb2wgc2hvdWxkIGhhbmRsZSBz
c2x0Y3AgY2FuZGlkYXRlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMzc0NDBl
MDYzYzViMzRmYmQ1ZWY0YWJkZTk1YjRkMTBmOGI5MDc1Ny4uMTkzZjExZjhhYmE3YTE4YzIwYjg4
NjQ0MjdhOTE1MDYyM2IwYWFiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMjAtMDktMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50LnNldFNpbmtJZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2Njk2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogcmVzb3VyY2Vz
L2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0L01FVEEueW1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNz
Lmh0dHBzLndpbmRvdy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQv
c2V0U2lua0lkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9hdWRpby1vdXRwdXQvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorCiAyMDIwLTA5LTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVGhyb3cgd2hlbiBBdWRpb0Nv
bm5lY3Q6OmNvbm5lY3QoKSBpcyBjYWxsZWQgZm9yIGFuIG91dHB1dCB0aGF0IGhhcyBubyBjaGFu
bmVscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNp
bmtJZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9hdWRpby1vdXRw
dXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NGQ1MzcyMmU5YjE4
MDFhM2UzOWVlOTljNWJhNmY3YjIwZDgzMGQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACisKK1BBU1Mgc2V0U2lua0lkIHJlcXVpcmVzIHVzZXIgZ2VzdHVyZSAKK1BB
U1Mgc2V0U2lua0lkIGFuZCBzaW5rSWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTIxYjU0
MTdmNmQxZGY5OGM1ZDhiYmRlOGY0YzkwYzBhODVmNGJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1sCkBAIC0w
LDAgKzEsMzYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBzZXRTaW5r
SWQgYmVoYXZpb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRG9taW5pcXVl
IEhhemFlbC1NYXNzaWV1eCIgaHJlZj0ibWFpbHRvOmRvbUB3My5vcmciLz4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly93d3cudzMub3JnL1RSL2F1ZGlvLW91dHB1dC8jZG9tLWh0bWxt
ZWRpYWVsZW1lbnQtc2V0c2lua2lkIj4KKzwvaGVhZD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKKworY29uc3Qg
YXVkaW8gPSBuZXcgQXVkaW8oKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGlmICghd2lu
ZG93LmludGVybmFscykKKyAgICAgICAgcmV0dXJuOworICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSh0cnVlKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHsgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNwZWFrZXJTZWxlY3Rpb25SZXF1
aXJlc1VzZXJHZXN0dXJlKGZhbHNlKTsgfSk7CisKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3Rz
X2RvbSh0LCAiTm90QWxsb3dlZEVycm9yIiwgYXVkaW8uc2V0U2lua0lkKCIiKSk7Cit9LCAic2V0
U2lua0lkIHJlcXVpcmVzIHVzZXIgZ2VzdHVyZSIpOworCisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1
ZGlvIDogdHJ1ZSB9KTsKKyAgICBjb25zdCBsaXN0ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CisgICAgY29uc3Qgb3V0cHV0RGV2aWNlc0xpc3QgPSBs
aXN0LmZpbHRlcigoe2tpbmR9KSA9PiBraW5kID09ICJhdWRpb291dHB1dCIpOworICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKG91dHB1dERldmljZXNMaXN0Lmxlbmd0aCwgMCwgIm1lZGlhIGRldmljZSBs
aXN0IGluY2x1ZGVzIGF0IGxlYXN0IG9uZSBhdWRpbyBvdXRwdXQgZGV2aWNlIik7CisKKyAgICBs
ZXQgcHJvbWlzZSA9IGF1ZGlvLnNldFNpbmtJZChvdXRwdXREZXZpY2VzTGlzdFswXS5kZXZpY2VJ
ZCk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvLnNpbmtJZCwgIiIpOworICAgIGF3YWl0IHBy
b21pc2U7CisgICAgYXNzZXJ0X2VxdWFscyhhdWRpby5zaW5rSWQsIG91dHB1dERldmljZXNMaXN0
WzBdLmRldmljZUlkKTsKK30sICJzZXRTaW5rSWQgYW5kIHNpbmtJZCIpOworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBl
Y3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0
LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDg1Y2ViMzVlMTc5MjhkN2ExNjkwNjBmZjQ0ZWIwYjQ0
ZGZlNDcwNTIuLmFjNjFlNjhkNWNmN2ZmOGUxODA4YjVhMzNjYmY0YTkxMTM3ZTM3YjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0
aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0
LWV4cGVjdGF0aW9ucy5qc29uCkBAIC00OSw3ICs0OSw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9hcG5nIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2FwcC11cmkiOiAi
c2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXNzdW1wdGlvbnMiOiAic2tpcCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0IjogInNraXAiLCAKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2F1eGNsaWNrIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Jh
Y2tncm91bmQtZmV0Y2giOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9iYXR0
ZXJ5LXN0YXR1cyI6ICJza2lwIiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9NRVRBLnltbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L01FVEEueW1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmI2YTdkNGQwNjI1OTExN2FmOGZiODQzZjZhOGQyNTJiYWMwMWE4ZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dC9NRVRBLnltbApAQCAtMCwwICsxLDQgQEAKK3NwZWM6IGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtb3V0cHV0Lworc3VnZ2VzdGVkX3Jldmlld2VyczoKKyAg
LSBndWlkb3UKKyAgLSBqYW4taXZhcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5k
b3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQwMzkwNmUyZTE5MjFmODBmOWE2OGU5ZjNkYzllOTk2NWRhYmRmN2IKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNiBAQAorCitQQVNTIGlkbF90ZXN0IHNldHVwIAorUEFTUyBpZGxfdGVzdCB2YWxpZGF0
aW9uIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MTWVkaWFFbGVtZW50OiBvcmlnaW5hbCBp
bnRlcmZhY2UgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTE1lZGlhRWxlbWVu
dDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEds
b2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBIVE1MRWxl
bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRF
ZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEhUTUxFbGVtZW50IGluY2x1
ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBFbGVt
ZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBF
bGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUgCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZSAKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlIAorUEFTUyBIVE1MTWVkaWFFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRl
IHNpbmtJZCAKK1BBU1MgSFRNTE1lZGlhRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRT
aW5rSWQoRE9NU3RyaW5nKSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8t
b3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUy
OGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhh
cm5lc3MuaHR0cHMud2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMg
cmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxh
dGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRs
aGFybmVzcy5odHRwcy53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kN2NkYmQwNzY4MzM0ODFiNTNmMzViMjZkNWVlMDE2ZmQ3MGM0MTExCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9h
dWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMKQEAgLTAsMCArMSwyMCBAQAor
Ly8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzCisvLyBNRVRBOiBzY3Jp
cHQ9L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9t
ZWRpYWNhcHR1cmUtb3V0cHV0LworCisndXNlIHN0cmljdCc7CisKK2lkbF90ZXN0KAorICBbJ2F1
ZGlvLW91dHB1dCddLAorICBbJ21lZGlhY2FwdHVyZS1zdHJlYW1zJywgJ2h0bWwnLCAnZG9tJ10s
CisgIGlkbF9hcnJheSA9PiB7CisgICAgc2VsZi5hdWRpbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2F1ZGlvJyk7CisgICAgc2VsZi52aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Zp
ZGVvJyk7CisgICAgaWRsX2FycmF5LmFkZF9vYmplY3RzKHsKKyAgICAgIEhUTUxBdWRpb0VsZW1l
bnQ6IFsnYXVkaW8nXSwKKyAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6IFsndmlkZW8nXSwKKyAgICAg
IE1lZGlhRGV2aWNlczogWyduYXZpZ2F0b3IubWVkaWFEZXZpY2VzJ10sCisgICAgfSk7CisgIH0K
Kyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lk
Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGUxNzMyMzI0MjEyMmFiOWMyNzNjMjI5
NzhiMmI5YzgzZmU2NTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBzZXRTaW5rSWQgb24gZGVmYXVsdCBhdWRp
byBvdXRwdXQgc2hvdWxkIGFsd2F5cyB3b3JrIAorUEFTUyBzZXRTaW5rSWQgZmFpbHMgd2l0aCBO
b3RGb3VuZEVycm9yIG9uIG1hZGUgdXAgZGV2aWNlaWQgCitGQUlMIExpc3QgZGV2aWNlLCBzZXRT
aW5rSWQgc2hvdWxkIGJlIGFsbG93ZWQgb24gdGhlIGRlZmF1bHQsIHRoZSByZXN0IG9mIHRoZSBk
ZXZpY2VzIHdpbGwgZ2V0IGEgTm90QWxsb3dlZEVycm9yIGFzc2VydF9ub3RfZXF1YWxzOiBtZWRp
YSBkZXZpY2UgbGlzdCBpbmNsdWRlcyBhdCBsZWFzdCBvbmUgYXVkaW8gb3V0cHV0IGRldmljZSBn
b3QgZGlzYWxsb3dlZCB2YWx1ZSAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRw
dXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFmNzAzYTkzNTBiZjU1N2YwZDM4
OTExYTA5YzA5YTlkMDJlYWEzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5o
dG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVz
dCBzZXRTaW5rSWQgYmVoYXZpb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
RG9taW5pcXVlIEhhemFlbC1NYXNzaWV1eCIgaHJlZj0ibWFpbHRvOmRvbUB3My5vcmciLz4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93d3cudzMub3JnL1RSL2F1ZGlvLW91dHB1dC8j
ZG9tLWh0bWxtZWRpYWVsZW1lbnQtc2V0c2lua2lkIj4KKzwvaGVhZD4KKzxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsK
KworY29uc3QgYXVkaW8gPSBuZXcgQXVkaW8oKTsKKworcHJvbWlzZV90ZXN0KHQgPT4gYXVkaW8u
c2V0U2lua0lkKCIiKSwgInNldFNpbmtJZCBvbiBkZWZhdWx0IGF1ZGlvIG91dHB1dCBzaG91bGQg
YWx3YXlzIHdvcmsiKTsKKworcHJvbWlzZV90ZXN0KHQgPT4gcHJvbWlzZV9yZWplY3RzX2RvbSh0
LCAiTm90Rm91bmRFcnJvciIsIGF1ZGlvLnNldFNpbmtJZCgibm9uZXhpc3RlbnRfZGV2aWNlX2lk
IikpLAorICAic2V0U2lua0lkIGZhaWxzIHdpdGggTm90Rm91bmRFcnJvciBvbiBtYWRlIHVwIGRl
dmljZWlkIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgbGlzdCA9IGF3
YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpOworICBjb25zdCBv
dXRwdXREZXZpY2VzTGlzdCA9IGxpc3QuZmlsdGVyKCh7a2luZH0pID0+IGtpbmQgPT0gImF1ZGlv
b3V0cHV0Iik7CisgIGFzc2VydF9ub3RfZXF1YWxzKG91dHB1dERldmljZXNMaXN0Lmxlbmd0aCwg
MCwKKyAgICAibWVkaWEgZGV2aWNlIGxpc3QgaW5jbHVkZXMgYXQgbGVhc3Qgb25lIGF1ZGlvIG91
dHB1dCBkZXZpY2UiKTsKKworICBsZXQgYWNjZXB0ZWREZXZpY2VzID0gMDsKKyAgZm9yIChjb25z
dCB7ZGV2aWNlSWR9IG9mIG91dHB1dERldmljZXNMaXN0KSB7CisgICAgY29uc3Qge2RldmljZUlk
fSA9IG91dHB1dERldmljZXNMaXN0WzBdOworICAgIGNvbnN0IHAxID0gYXVkaW8uc2V0U2lua0lk
KGRldmljZUlkKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvLnNpbmtJZCwgIiIsICJiZWZvcmUg
aXQgcmVzb2x2ZXMsIHNldFNpbmtJZCBpcyB1bmNoYW5nZWQiKTsKKyAgICB0cnkgeworICAgICAg
bGV0IHIgPSBhd2FpdCBwMTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYWNjZXB0ZWREZXZpY2VzLCAw
LCAib25seSB0aGUgZGVmYXVsdCBzaW5rIGRldmljZSBjYW4gYmUgc2V0Iik7CisgICAgICBhY2Nl
cHRlZERldmljZXMrKzsKKyAgICAgIGFzc2VydF9lcXVhbHMociwgdW5kZWZpbmVkLCAic2V0U2lu
a0lkIHJlc29sdmVzIHdpdGggdW5kZWZpbmVkIik7CisgICAgICBhc3NlcnRfZXF1YWxzKGF1ZGlv
LnNpbmtJZCwgZGV2aWNlSWQsICJ3aGVuIGl0IHJlc29sdmVzLCBzZXRTaW5rSWQgdXBkYXRlcyBz
aW5rSWQgdG8gdGhlIHJlcXVlc3RlZCBkZXZpY2VJZCIpOworICAgICAgciA9IGF3YWl0IGF1ZGlv
LnNldFNpbmtJZChkZXZpY2VJZCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHIsIHVuZGVmaW5lZCwg
InJlc2V0dGluZyBzaW5raWQgb24gc2FtZSBjdXJyZW50IHZhbHVlIHNob3VsZCBhbHdheXMgd29y
ayIpOworICAgICAgciA9IGF3YWl0IGF1ZGlvLnNldFNpbmtJZCgiIik7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHIsIHVuZGVmaW5lZCwgInJlc2V0dGluZyBzaW5raWQgb24gZGVmYXVsdCBhdWRpbyBv
dXRwdXQgc2hvdWxkIGFsd2F5cyB3b3JrIik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgYXNz
ZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiLCAiTm9uLWRlZmF1bHQgZGV2aWNl
cyBhcmUgZmFpbGluZyB3aXRoIE5vdEFsbG93ZWQgZXJyb3IiKTsKKyAgICB9CisgIH0KK30sICJM
aXN0IGRldmljZSwgc2V0U2lua0lkIHNob3VsZCBiZSBhbGxvd2VkIG9uIHRoZSBkZWZhdWx0LCB0
aGUgcmVzdCBvZiB0aGUgZGV2aWNlcyB3aWxsIGdldCBhIE5vdEFsbG93ZWRFcnJvciIpOworCis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYXVkaW8tb3V0cHV0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvdzNjLWltcG9ydC5sb2cKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODIzYzUxNWNlZjZlYTlkMmM4YTMyNTY3OTY5MmFkYWE4MTE1Y2QxMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgor
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L01F
VEEueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRp
by1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQtbWFudWFsLmh0
dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1
ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDc2OGVhODRkNzBkNGJhMGY1MjQ1M2IyZTdl
YzYwNDMxMWNiMzRiMTAuLmU3ZmJmMTJhNWQwOWQ5MjVlZjIxNmRiNGJkMWM5YzZkMjIyNWJmMDQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTY1LDYgKzY1LDkgQEAgaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLU1vY2tDYXB0dXJl
RGV2aWNlc0VuYWJsZWQuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2Ut
Y2FjaGUtZ2V0VXNlck1lZGlhLXBlbmRpbmctcHJvbWlzZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rl
c3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1tZWRpYXN0cmVhbS5odG1sIFsgU2tpcCBdCiAKK2h0
dHAvd3B0L2F1ZGlvLW91dHB1dCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9hdWRpby1vdXRwdXQgWyBTa2lwIF0KKwogIyBEYXRhbGlzdCBpcyB1bnN1cHBvcnRlZCBp
biBXSzEKIGFjY2Vzc2liaWxpdHkvZGF0YWxpc3QuaHRtbCBbIFdvbnRGaXggXQogZmFzdC9mb3Jt
cy9kYXRhbGlzdCBbIFdvbnRGaXggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA1Y2IzNzA4N2VkMTJhYzA2MmY2ZTRhMWY1ZDhkNGJhMWFmNmY4MThlLi5i
NWQ2YzAzYzQ0OWUzY2MxYTMxZGYyZjIzODVkMDcyOTcyZDdlNmJmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtODU5LDYgKzg1OSw5IEBAIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMgWyBTa2lwIF0KIGh0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtIFsgU2tpcCBdCiBodHRwL3Rlc3RzL25hdmlnYXRp
b24vcGFnZS1jYWNoZS1nZXRVc2VyTWVkaWEtcGVuZGluZy1wcm9taXNlLmh0bWwgWyBTa2lwIF0K
IAoraHR0cC93cHQvYXVkaW8tb3V0cHV0IFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2F1ZGlvLW91dHB1dCBbIFNraXAgXQorCiAjIG5lZWRzIGVuaGFuY2VkIGV2ZW50
U2VuZGVyLmNvbnRleHRNZW51KCkgcmV0dXJuIHZhbHVlCiAjd2Via2l0Lm9yZy9iLzQ1MDIxIG1l
ZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409459</attachid>
            <date>2020-09-23 04:17:54 -0700</date>
            <delta_ts>2020-09-23 07:04:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-216696-20200923131751.patch</filename>
            <type>text/plain</type>
            <size>58760</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJlMDdhMmM0MmFlNDcyYTcxN2NlYjVj
MGRhODA0ZGM2NDUwNGI1ODIuLjY1MDMxY2NlODkzZjI5MDM4OWUxOTc4MWI2NzY4NmIxNjQwYWFm
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDktMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50
LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
IEFkZCBIQVZFX0FVRElPX09VVFBVVF9ERVZJQ0VfVU5JUVVFX0lELgorICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMC0wOS0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgogCiAgICAgICAgIFtKU0NdIEJpZ0ludCBzaG91bGQgd29yayB3aXRoIE1hcCAvIFNl
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDRkZjg4NjE3NDcwNjMwMTgyY2EwNTU1NTFmMzdmMzg0YjUwMmVjNTMu
LmZkNDgyZDg2Mjk5N2QwNTlhMDAzMWQxZWFhMmM2MWVjNmU2OTcxNjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2OCBAQAorMjAyMC0wOS0yMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhUTUxNZWRpYUVsZW1lbnQuc2V0U2lua0lk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY2OTYK
KworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgSW1wbGVtZW50
IHNldFNpbmtJZCBhbmQgc2lua0lkIGFzIHBlciBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFj
YXB0dXJlLW91dHB1dC8jaHRtbG1lZGlhZWxlbWVudC1leHRlbnNpb25zLgorICAgICAgICBJbnRy
b2R1Y2UgYSBzZXR0aW5nIHRvIGV4cG9zZSB0aGVzZSBtZXRob2RzIGFuZCB0byBlbmFibGUvZGlz
YWJsZSB1c2VyIGdlc3R1cmUgcmVxdWlyZW1lbnQuCisgICAgICAgIEFkZCBpbnRlcmZhY2VzIHRv
IGNoYW5nZSBkZXZpY2Ugb3V0cHV0IGZvciBzcGVjaWZpYyBtZWRpYSBwbGF5ZXJzLgorICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgSExTLCBNU0UgYW5kIE1lZGlhU3RyZWFtVHJhY2sgcmVuZGVyZXJz
IG9uIE1hY09TLgorICAgICAgICBJbiBjYXNlIG9mIHNldHRpbmcgdGhlIGVtcHR5IHN0cmluZywg
dGhlIGRlZmF1bHQgb3V0cHV0IGRldmljZSBpcyB1c2VkCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
d3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRw
cy53aW5kb3cuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2UgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0QXVkaW9PdXRwdXREZXZpY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YXVkaW9PdXRwdXREZXZpY2VJZCBjb25z
dCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb091dHB1dEhhc2hlZERldmljZUlkIGNvbnN0KToKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnRBdWRpb091dHB1dC5pZGw6IEFkZGVkLgorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6YXVkaW9PdXRw
dXREZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6OmF1ZGlvT3V0cHV0RGV2
aWNlSWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6OmF1ZGlv
T3V0cHV0RGV2aWNlSWRPdmVycmlkZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNy
ZWF0ZUFWUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphdWRpb091dHB1dERl
dmljZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2Vk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnNldEF1ZGlvT3V0cHV0RGV2aWNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVkaW9PdXRwdXREZXZpY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRlQXVk
aW9Vbml0SWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaDoKKwogMjAyMC0wOS0yMiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGEgZGVmYXVsdCBw
cm9tcHQgZm9yIGdldFVzZXJNZWRpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzNjM4ZTdhY2EzNTk1MjhhOTJjMDI4
ZmM1NWFlNDE0ZmFhMGUxYzYwLi5hYjMxNTY5M2YwZDg4NGY1ZDI0Y2U4ZmFmZjQ1MDMyNzFjYTU1
NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA5LTIyICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlh
RWxlbWVudC5zZXRTaW5rSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKwor
ICAgICAgICBBZGQgaW50ZXJuYWwgZmxhZyB0byBlbmFibGUvZGlzYWJsZSB1c2VyIGdlc3R1cmUg
cmVxdWlyZW1lbnQgZm9yIHNldHRpbmcgYXVkaW8gb3V0cHV0IGRldmljZSwKKyAgICAgICAgYW5k
IGZvciBwZXIgbWVkaWEgZWxlbWVudCBzZXR0aW5nIG9mIGF1ZGlvIG91dHB1dCBkZXZpY2UuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbHMueWFtbDoKKwogMjAyMC0wOS0yMiAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGEg
ZGVmYXVsdCBwcm9tcHQgZm9yIGdldFVzZXJNZWRpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCA2
MDBlNThjNWUyMmUxMjI3MDMzZjVmYzFhMjdhZDBiNmJjZGQyMDlhLi40NzEwZjc4OWIzMDc3OTky
MTRmYjJiNmZhYTM3MWEyOGMwYzUyMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtNjgyLDYg
KzY4MiwxMCBAQAogI2RlZmluZSBIQVZFX05TVEFCTEVWSUVXU1RZTEUgMQogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEhBVkVfQVVESU9fT1VUUFVUX0RFVklDRV9VTklRVUVf
SUQgMQorI2VuZGlmCisKICNpZiAoKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApIFwKICAg
ICB8fCAoUExBVEZPUk0oV0FUQ0hPUykgJiYgX19XQVRDSF9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSA3MDAwMCkgXAogICAgIHx8IChQTEFURk9STShBUFBMRVRWKSAmJiBfX1RWX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDE0MDAwMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTA3OWNi
MTlmNDQ2MDQ3YmU2ODVhOGY4ZjRhOWFiNWFmZWQ2MjdjYy4uZDJlZmUzMTcwNmJmNDJjZTUwNmE4
MTk0NjQ4NWJlNTI2OWMwMzU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTkxOSw2ICs5MTks
NyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGh0bWwvSFRNTE1hcEVsZW1l
bnQuaWRsCiAgICAgaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmlkbAorICAgIGh0bWwvSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0LmlkbAog
ICAgIGh0bWwvSFRNTE1lbnVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTE1lbnVJdGVtRWxlbWVu
dC5pZGwKICAgICBodG1sL0hUTUxNZXRhRWxlbWVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGVkOGI2NzBiMGZhODQzMTYxZTlh
ODAzYjJkMDlkYTU2ZjRiODlmNTYuLjMzODM0ZmI1NDRmMDk3NjlkNTcxMzRjYzBhNTc2YjQ1ZTc1
NGE0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdApAQCAtODQ0LDYgKzg0NCw3IEBAICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWFwRWxlbWVudC5pZGwKICQoUFJPSkVD
VF9ESVIpL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmlkbAorJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50
QXVkaW9PdXRwdXQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwK
ICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1lbnVJdGVtRWxlbWVudC5pZGwKICQoUFJPSkVDVF9E
SVIpL2h0bWwvSFRNTE1ldGFFbGVtZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlMjE0NDQ1MmNjNjY4MTlmOTA4MzExZDA1
ZmMyOWZlNDgyMTA0MTlhLi5kZDg2NTgwYmEzYzNjY2YwMmRiNDRhNDc3Yjk1ZWJkYzgxM2U0ODU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dApAQCAtOTAwLDYgKzkwMCw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTSFRNTE1hcnF1ZWVFbGVtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWFycXVlZUVsZW1lbnQuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50LmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVk
aWFFbGVtZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50QXVkaW9PdXRwdXQuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFF
bGVtZW50TWVkaWFTZXNzaW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50TWVkaWFTZXNzaW9uLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudFJlbW90
ZVBsYXliYWNrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZTBhZjIwZjVk
ODI3MDc3MDhhNzQ3NzY3NTRlYmJkY2UyZTA0MzRlMC4uMDc0Mjg3YTY5NmE0YjFmZmRlODg1YmYy
NThhYzg5ZGNmOWFhMDE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC04NjQs
NiArODY0LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1M
TWFwRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwgXAorICAgICQo
V2ViQ29yZSkvaHRtbC9IVE1MTWVkaWFFbGVtZW50QXVkaW9PdXRwdXQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvSFRNTE1lbnVFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hU
TUxNZW51SXRlbUVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTE1ldGFFbGVt
ZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlcy5jcHAKaW5kZXggYmU3MGFhYWJkOGU4MGQyZjdiNWNmNTJlNzMyNzE1ZjYxODM5
OGYwZS4uODUxOTNhYzg1ZTE0YTBmNDRkNDFjZWU0Nzk5YjM3OWRkYWQyYjBiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApA
QCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKGNvbnN0
IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICBib29sIGNhbkFj
Y2Vzc01pY3JvcGhvbmUgPSBjaGVja01pY3JvcGhvbmVBY2Nlc3MoZG9jdW1lbnQpOwogICAgIGJv
b2wgY2FuQWNjZXNzU3BlYWtlciA9IGNoZWNrU3BlYWtlckFjY2Vzcyhkb2N1bWVudCk7CiAKKyAg
ICBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5jbGVhcigpOworCiAgICAgVmVj
dG9yPFJlZjxNZWRpYURldmljZUluZm8+PiBkZXZpY2VzOwogICAgIGZvciAoYXV0byYgbmV3RGV2
aWNlIDogbmV3RGV2aWNlcykgewogICAgICAgICBpZiAoIWNhbkFjY2Vzc01pY3JvcGhvbmUgJiYg
bmV3RGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25l
KQpAQCAtMjE0LDYgKzIxNiw5IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpleHBvc2VEZXZpY2VzKGNv
bnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcywgY29uc3QKICAgICAgICAgYXV0
byBkZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hT
dHJpbmdXaXRoU2FsdChuZXdEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZUlESGFzaFNhbHQp
OwogICAgICAgICBhdXRvIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobmV3RGV2aWNlLmdyb3VwSWQoKSwgbV9ncm91cElk
SGFzaFNhbHQpOwogCisgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNwZWFrZXIpCisgICAgICAgICAgICBtX2F1ZGlvT3V0cHV0RGV2aWNl
SWRUb1BlcnNpc3RlbnRJZC5hZGQoZGV2aWNlSWQsIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSk7
CisKICAgICAgICAgZGV2aWNlcy5hcHBlbmQoTWVkaWFEZXZpY2VJbmZvOjpjcmVhdGUobmV3RGV2
aWNlLmxhYmVsKCksIFdURk1vdmUoZGV2aWNlSWQpLCBXVEZNb3ZlKGdyb3VwSWQpLCB0b01lZGlh
RGV2aWNlSW5mb0tpbmQobmV3RGV2aWNlLnR5cGUoKSkpKTsKICAgICB9CiAgICAgcHJvbWlzZS5y
ZXNvbHZlKGRldmljZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggNTgyODY3MjUzY2FkMTY5OGQ4MDE1ZjY2ZWE1ZjUzNGY5
MmY1MzlkMS4uNmY5MDYyOGFiMGNjOGYwYTM0MTExMzRmODc5N2U2NGJmYzgxNmYzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCkBA
IC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVudW1lcmF0ZURldmljZXMoRW51bWVy
YXRlRGV2aWNlc1Byb21pc2UmJik7CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRz
IGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7CiAKKyAgICBTdHJpbmcgZGV2aWNlSWRUb1BlcnNp
c3RlbnRJZChjb25zdCBTdHJpbmcmIGRldmljZUlkKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvT3V0
cHV0RGV2aWNlSWRUb1BlcnNpc3RlbnRJZC5nZXQoZGV2aWNlSWQpOyB9CisKICAgICB1c2luZyBS
ZWZDb3VudGVkPE1lZGlhRGV2aWNlcz46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlh
RGV2aWNlcz46OmRlcmVmOwogCkBAIC0xMzAsNiArMTMyLDkgQEAgcHJpdmF0ZToKIAogICAgIE9w
dGlvblNldDxHZXN0dXJlQWxsb3dlZFJlcXVlc3Q+IG1fcmVxdWVzdFR5cGVzRm9yQ3VycmVudEdl
c3R1cmU7CiAgICAgV2Vha1B0cjxVc2VyR2VzdHVyZVRva2VuPiBtX2N1cnJlbnRHZXN0dXJlVG9r
ZW47CisKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtX2F1ZGlvT3V0cHV0RGV2aWNlSWRU
b1BlcnNpc3RlbnRJZDsKKyAgICBTdHJpbmcgbV9hdWRpb091dHB1dERldmljZUlkOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNkY2M1ZTcxYjhiMTMzOTAwMjYyMWFjN2I2Y2Fi
NzQwYWRmY2UyMWIuLjUxODM4ZmNmN2E4YjhlOTgwNTE2ZmUxZDJiZDNlYWUyYTAzNzRiMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTc2OTIsNiArNzY5Miw3IEBACiAJCTQxRDI4RDBDMjEzOUUwMUUwMEY0MjA2RiAvKiBMaWJX
ZWJSVENTdGF0c0NvbGxlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBM
aWJXZWJSVENTdGF0c0NvbGxlY3Rvci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1N0YXRz
Q29sbGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRDQxQzY1MjI1Njg1
OTIwMDY5Nzk0MiAvKiBTZXJ2aWNlV29ya2VySW50ZXJuYWxzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckludGVybmFscy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFENTFCQjIxRTRFMkU4MTAwMTMxQTVCIC8qIExpYldl
YlJUQ0F1ZGlvRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldl
YlJUQ0F1ZGlvRm9ybWF0Lmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDQXVkaW9Gb3JtYXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFENkJEOTgyNTFCM0FEQTAwNTVBN0I3
IC8qIEhUTUxNZWRpYUVsZW1lbnRBdWRpb091dHB1dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFERTdDN0EyMjJEQTEzRDAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90YU1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZVF1b3RhTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREU3QzdCMjIyREExM0Uw
MDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFN0b3JhZ2VRdW90YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFERUZDQjIxRTU2QzFCOTAwMEQ5RTVGIC8qIEpTRE9NQmluZGluZ0ludGVybmFscy5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEpTRE9NQmluZGluZ0lu
dGVybmFscy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyODg2LDYgKzIyODg3
LDcgQEAKIAkJCQlFNDQ2MTM5MjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5j
cHAgKi8sCiAJCQkJRTQ0NjEzOTMwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxNZWRpYUVsZW1lbnQu
aCAqLywKIAkJCQlFNDQ2MTM5NDBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5p
ZGwgKi8sCisJCQkJNDFENkJEOTgyNTFCM0FEQTAwNTVBN0I3IC8qIEhUTUxNZWRpYUVsZW1lbnRB
dWRpb091dHB1dC5pZGwgKi8sCiAJCQkJQ0Q1MjA5RTUxQjBCRDlFMTAwNzcxODRFIC8qIEhUTUxN
ZWRpYUVsZW1lbnRFbnVtcy5oICovLAogCQkJCUE4RUE3OUVDMEExOTE2REYwMEE4RUY1RiAvKiBI
VE1MTWVudUVsZW1lbnQuY3BwICovLAogCQkJCUE4RUE3OUU4MEExOTE2REYwMEE4RUY1RiAvKiBI
VE1MTWVudUVsZW1lbnQuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IGE0ZjM2Nzk4ZTU0YWY0ZmQzOTRmNDIzYzZmYjBhNmZhMDg2OTZiMjEuLjBmOTk5
NzU3ODkwNzEzOWZkYmYyZGJjZTE0N2IzYzViY2RmODMzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgIk1JTUVU
eXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJN
ZWRpYUNvbnRyb2xzSG9zdC5oIgorI2luY2x1ZGUgIk1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUg
Ik1lZGlhRG9jdW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYUVycm9yLmgiCiAjaW5jbHVkZSAiTWVk
aWFGcmFnbWVudFVSSVBhcnNlci5oIgpAQCAtNzgsNiArNzksNyBAQAogI2luY2x1ZGUgIk1lZGlh
UGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2luY2x1ZGUgIk1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYURldmljZXMuaCIK
ICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBPREludGVydmFsVHJl
ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTI4NDMsNiArMjg0NSw0OSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmZhc3RTZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICBzZWVrV2l0
aFRvbGVyYW5jZSh0aW1lLCBuZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lOjp6ZXJvVGltZSgp
LCB0cnVlKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCit2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKFN0cmluZyYmIGRldmljZUlkLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50
KCkuZG9tV2luZG93KCk7CisgICAgYXV0byogbWVkaWFEZXZpY2VzID0gd2luZG93ID8gTmF2aWdh
dG9yTWVkaWFEZXZpY2VzOjptZWRpYURldmljZXMod2luZG93LT5uYXZpZ2F0b3IoKSkgOiBudWxs
cHRyOworICAgIGlmICghbWVkaWFEZXZpY2VzKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmICghZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpICYmIGRv
Y3VtZW50KCkuc2V0dGluZ3MoKS5zcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSgp
KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwg
IkEgdXNlciBnZXN0dXJlIGlzIHJlcXVpcmVkIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKGRldmljZUlkLmlzRW1wdHkoKSkKKyAgICAgICAgZGV2aWNlSWQgPSB7IH07
CisKKyAgICBpZiAoZGV2aWNlSWQgPT0gbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkKSB7Cisg
ICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
U3RyaW5nIHBlcnNpc3RlbnRJZDsKKyAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKSB7CisgICAg
ICAgIHBlcnNpc3RlbnRJZCA9IG1lZGlhRGV2aWNlcy0+ZGV2aWNlSWRUb1BlcnNpc3RlbnRJZChk
ZXZpY2VJZCk7CisgICAgICAgIGlmIChwZXJzaXN0ZW50SWQuaXNOdWxsKCkpIHsKKyAgICAgICAg
ICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IgfSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2F1ZGlvT3V0cHV0UGVyc2lz
dGVudERldmljZUlkID0gV1RGTW92ZShwZXJzaXN0ZW50SWQpOworICAgIGlmIChtX3BsYXllcikK
KyAgICAgICAgbV9wbGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpOworCisgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
TWVkaWFFbGVtZW50LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkZXZp
Y2VJZCA9IFdURk1vdmUoZGV2aWNlSWQpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBt
dXRhYmxlIHsKKyAgICAgICAgbV9hdWRpb091dHB1dEhhc2hlZERldmljZUlkID0gV1RGTW92ZShk
ZXZpY2VJZCk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIH0pOworfQorI2VuZGlm
CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vlayhjb25zdCBNZWRpYVRpbWUmIHRpbWUpCiB7
CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0aW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYWIyYjAwMTFiNTk0MzllYTUxZThhYTNlMjA4ZmUwMTJj
NjNkMTJlZC4uNjE1MDA1M2I3ZjhjMzllYzcwMDEzNzU0ZjQ5ZWVjODZiMzc1YzFlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTI2OCw2ICsyNjgsMTEgQEAgcHVi
bGljOgogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdDsKICAgICBkb3VibGUg
bWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2UoU3RyaW5nJiYgZGV2aWNlSWQsIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICBTdHJpbmcgYXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJ
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9PdXRwdXRIYXNoZWREZXZpY2VJZDsgfQorI2VuZGlm
CisKICAgICB1c2luZyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkJ1ZmZlcmluZ1BvbGljeTsKICAg
ICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShCdWZmZXJpbmdQb2xpY3kpOwogICAgIFdFQkNPUkVf
RVhQT1JUIEJ1ZmZlcmluZ1BvbGljeSBidWZmZXJpbmdQb2xpY3koKSBjb25zdDsKQEAgLTYwNSw2
ICs2MTAsOSBAQCBwcm90ZWN0ZWQ6CiAKICAgICBTZWN1cml0eU9yaWdpbkRhdGEgZG9jdW1lbnRT
ZWN1cml0eU9yaWdpbigpIGNvbnN0IGZpbmFsOwogCisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2
aWNlSWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmlj
ZUlkOyB9CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fYXVkaW9PdXRwdXRQZXJzaXN0ZW50RGV2aWNlSWQ7IH0KKwogICAgIGJv
b2wgbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4g
bV9tZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3I7IH0KICAgICB2b2lkIHNldE1l
ZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3Rvcihib29sKTsKICAgICB2b2lkIHVwZGF0
ZU1lZGlhQ29udHJvbHNBZnRlclByZXNlbnRhdGlvbk1vZGVDaGFuZ2UoKTsKQEAgLTExOTcsNiAr
MTIwNSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0
IHsgZmFsc2UgfTsKICAgICBib29sIG1fcGxheWluZ09uU2Vjb25kU2NyZWVuIHsgZmFsc2UgfTsK
ICAgICBib29sIG1fcmVtb3ZlZEJlaGF2aW9yUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0
dXJlIHsgZmFsc2UgfTsKKworICAgIFN0cmluZyBtX2F1ZGlvT3V0cHV0UGVyc2lzdGVudERldmlj
ZUlkOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgU3RyaW5nIG1fYXVkaW9PdXRwdXRI
YXNoZWREZXZpY2VJZDsKKyNlbmRpZgogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRv
U3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6OkF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudEF1ZGlvT3V0cHV0Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MDA2MTBkYzdjMmI2YWE0OWU5MDlkYTkwYjJmMzNhN2U5ZjQ3YTQyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50QXVk
aW9PdXRwdXQuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworCitbCisgICAgQ29uZGl0aW9uYWw9VklERU8mTUVESUFfU1RS
RUFNLAorXSBwYXJ0aWFsIGludGVyZmFjZSBIVE1MTWVkaWFFbGVtZW50IHsKKyAgICBbRW5hYmxl
ZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbiwgSW1w
bGVtZW50ZWRBcz1hdWRpb091dHB1dEhhc2hlZERldmljZUlkXSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHNpbmtJZDsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1FeHBvc2VTcGVha2VycyZQ
ZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbiwgSW1wbGVtZW50ZWRBcz1zZXRBdWRpb091dHB1dERl
dmljZV0gUHJvbWlzZTx1bmRlZmluZWQ+IHNldFNpbmtJZChET01TdHJpbmcgZGV2aWNlSWQpOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXVkaW9PdXRwdXRQcm92aWRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdWRpb091dHB1dFByb3ZpZGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWRlYTEwY2M4OThlNDEzYjczNDczZDcwZmJiNjZhMGM0OTFiMDAyZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXVkaW9PdXRwdXRQcm92aWRlci5oCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBQYWdlOworCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBBdWRpb091dHB1dFByb3ZpZGVy
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBBdWRpb091dHB1
dFByb3ZpZGVyKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfkF1ZGlvT3V0cHV0UHJvdmlkZXIo
KSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNl
Q2hhbmdlZChQYWdlJik7Cit9OworCitpbmxpbmUgdm9pZCBBdWRpb091dHB1dFByb3ZpZGVyOjpk
ZWZhdWx0QXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKFBhZ2UmKQoreworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMTc4OTdlZTMwNGFlYjIyYjU4MmZiZDkzYjRiOTI2MTQy
MDI3M2I2Zi4uNGJjNjgxNjk5ODBhMTMzMTRlN2JmZTRjZTY0NTAzYjk1MmRmZDkzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtODI2LDYgKzgyNiwxMiBAQCBtZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5OgogZXhwb3NlU3BlYWtlcnNFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQog
CitwZXJFbGVtZW50U3BlYWtlclNlbGVjdGlvbkVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisK
K3NwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlOgorICBpbml0aWFsOiB0cnVlCisK
IG1lZGlhRGV2aWNlSWRlbnRpZmllclN0b3JhZ2VEaXJlY3Rvcnk6CiAgIHR5cGU6IFN0cmluZwog
ICBjb25kaXRpb25hbDogRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA2M2NmM2NjZWU4MTEyZTE1
NWUxOTM4MDVhNjQ0OGNlOGRiYTFlM2EyLi45MDJmNTg5OTdmNzI2Y2ZiMTdhNjI2YmQ5ZTk0NjVl
NTlkZGVjYjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCkBAIC0xNjA0LDYgKzE2MDQsMTEgQEAgdm9pZCBNZWRpYVBsYXllcjo6c2V0
UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlIG1vZGUpCiAgICAgbV9w
cml2YXRlLT5zZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKG1vZGUpOwogfQogCit2b2lkIE1l
ZGlhUGxheWVyOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQoreworICAgIG1fcHJpdmF0ZS0+
YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKIGNvbnN0IExvZ2dlciYgTWVkaWFQbGF5ZXI6Om1lZGlhUGxheWVyTG9nZ2VyKCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGVh
MjU3ZjEyYWNmMDllMGJiZGZiMzI5YjExNTNjY2U1MWFjYWY0ZjMuLmQ0NjczMWEyYmFkZjg4NTcw
MTgwMTk4ODE1NjIzMmMzNGIxZmRmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjczLDYgKzI3Myw5IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgU2VjdXJpdHlPcmlnaW5EYXRhIGRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25z
dCB7IHJldHVybiB7IH07IH0KIAorICAgIHZpcnR1YWwgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNl
SWQoKSBjb25zdCB7IHJldHVybiB7IH07IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBhdWRpb091dHB1
dERldmljZUlkT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiB7IH07IH0KKwogI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVu
dGlmaWVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgY29uc3QgTG9nZ2VyJiBt
ZWRpYVBsYXllckxvZ2dlcigpID0gMDsKQEAgLTYzMSw2ICs2MzQsMTAgQEAgcHVibGljOgogICAg
IER5bmFtaWNSYW5nZU1vZGUgcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZTsgfQogICAgIHZvaWQgc2V0UHJlZmVycmVk
RHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlKTsKIAorICAgIFN0cmluZyBhdWRpb091
dHB1dERldmljZUlkKCkgY29uc3Q7CisgICAgU3RyaW5nIGF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVy
cmlkZSgpIGNvbnN0OworICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCk7CisKIHBy
aXZhdGU6CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICBNZWRpYVBs
YXllcihNZWRpYVBsYXllckNsaWVudCYsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllcik7CkBAIC03MDUsNiArNzEyLDE2IEBAIHB1YmxpYzoKIH07CiAKIAoraW5saW5lIFN0
cmluZyBNZWRpYVBsYXllcjo6YXVkaW9PdXRwdXREZXZpY2VJZCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPmF1ZGlvT3V0cHV0RGV2aWNlSWQoKSA6IFN0cmluZyB7
IH07Cit9CisKK2lubGluZSBTdHJpbmcgTWVkaWFQbGF5ZXI6OmF1ZGlvT3V0cHV0RGV2aWNlSWRP
dmVycmlkZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPmF1ZGlv
T3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpIDogU3RyaW5nIHsgfTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCA2NzBj
MGE0OTRjMTFhMjczNzYwNDI4NDE4M2MwMDc4OGQ5NzU5NzhkLi44MTI1MzMwMjc2ZGQ1NDRlMWZj
YWJkYTE3ZDYzNmNiY2Y4N2JhZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMjg5LDYgKzI4OSw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSgpIHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1Jhbmdl
TW9kZShEeW5hbWljUmFuZ2VNb2RlKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBhdWRpb091dHB1
dERldmljZUNoYW5nZWQoKSB7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBh
ZGUwNjMyYzlmNmNkYzBjMTRkNWRhODg1Y2E3Yjc0Mjc4YmJkM2UzLi44NWNlODFkMTAzYjg1ZDFk
NDI2YjdhMzQ4ZDhmMDNhMGJlMzY2NDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0zMTgs
NiArMzE4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNob3VsZE9ic2VydmVUaW1lQ29udHJv
bFN0YXR1cyhib29sKTsKIAogICAgIHZvaWQgc2V0UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShE
eW5hbWljUmFuZ2VNb2RlKSBmaW5hbDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdl
ZCgpIGZpbmFsOwogCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBS
ZXRhaW5QdHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRl
eCBhYzBmOGZmYTAyODgzZTRhYWZmZjMyYmYzODBmODgyMzAwMmI1NjE1Li41MjJlMGM3NGRiODk1
ZGMyMzY4YmI5N2RjZWUwN2VlMjViMGZmOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAg
LTk1Myw2ICs5NTMsMTYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpjcmVhdGVBVlBsYXllcigpCiAgICAgaWYgKG1fYXZQbGF5ZXJJdGVtKQogICAgICAgICBzZXRB
VlBsYXllckl0ZW0obV9hdlBsYXllckl0ZW0uZ2V0KCkpOwogCisjaWYgSEFWRShBVURJT19PVVRQ
VVRfREVWSUNFX1VOSVFVRV9JRCkKKyAgICBhdXRvIGF1ZGlvT3V0cHV0RGV2aWNlSWQgPSBwbGF5
ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgaWYgKCFhdWRpb091dHB1
dERldmljZUlkLmlzTnVsbCgpKSB7CisgICAgICAgIGlmIChhdWRpb091dHB1dERldmljZUlkLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VV
bmlxdWVJRCA9IG5pbDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9hdlBsYXllci5nZXQo
KS5hdWRpb091dHB1dERldmljZVVuaXF1ZUlEID0gYXVkaW9PdXRwdXREZXZpY2VJZDsKKyAgICB9
CisjZW5kaWYKKwogICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKIH0KIApAQCAtMzI5Myw2
ICszMzAzLDE5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0
UHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuCiAjZW5kaWYKIH0KIAordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjphdWRpb091dHB1dERldmljZUNoYW5n
ZWQoKQoreworI2lmIEhBVkUoQVVESU9fT1VUUFVUX0RFVklDRV9VTklRVUVfSUQpCisgICAgaWYg
KCFtX2F2UGxheWVyIHx8ICFwbGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gZGV2
aWNlSWQgPSBwbGF5ZXIoKS0+YXVkaW9PdXRwdXREZXZpY2VJZCgpOworICAgIGlmIChkZXZpY2VJ
ZC5pc0VtcHR5KCkpCisgICAgICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXVkaW9PdXRwdXREZXZpY2VV
bmlxdWVJRCA9IG5pbDsKKyAgICBlbHNlCisgICAgICAgIG1fYXZQbGF5ZXIuZ2V0KCkuYXVkaW9P
dXRwdXREZXZpY2VVbmlxdWVJRCA9IGRldmljZUlkOworI2VuZGlmCit9CisKIE5TQXJyYXkqIGFz
c2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBbW05T
QXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5k
ZXggMDliZjU1NzQ4NDMzMWQ1ODIyMGQyMGY1ZjIwMzMyOTZlNjljZWM0Mi4uOGNlM2I3YjQwNWRm
ZGY5NzAyZjJmOTUxOGFkNjlkZDg1YmRmNzc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgK
QEAgLTI1NCw2ICsyNTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIHBlcmZvcm1U
YXNrQXRNZWRpYVRpbWUoRnVuY3Rpb248dm9pZCgpPiYmLCBjb25zdCBNZWRpYVRpbWUmKSBmaW5h
bDsKKyAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAgdm9p
ZCBlbnN1cmVMYXllcigpOwogICAgIHZvaWQgZGVzdHJveUxheWVyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KaW5kZXggOGI5NDE1MDdjMDM4ODFjMDIxNmI0ZTc5MmUzOWRiMjZlMzU3ZmRi
OS4uMGJiNDIxMjVjODI5YTA4N2UxYzE3ZGQ1NjY3YjE5MzNkYjQxZjk4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbQpAQCAtMTE2Niw2ICsxMTY2LDE2IEBAIEFMTE9XX05FV19BUElfV0lU
SE9VVF9HVUFSRFNfRU5ECiAgICAgW2F1ZGlvUmVuZGVyZXIgc2V0Vm9sdW1lOm1fcGxheWVyLT52
b2x1bWUoKV07CiAgICAgW2F1ZGlvUmVuZGVyZXIgc2V0QXVkaW9UaW1lUGl0Y2hBbGdvcml0aG06
KG1fcGxheWVyLT5wcmVzZXJ2ZXNQaXRjaCgpID8gQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRobVNw
ZWN0cmFsIDogQVZBdWRpb1RpbWVQaXRjaEFsZ29yaXRobVZhcmlzcGVlZCldOwogCisjaWYgSEFW
RShBVURJT19PVVRQVVRfREVWSUNFX1VOSVFVRV9JRCkKKyAgICBhdXRvIGRldmljZUlkID0gbV9w
bGF5ZXItPmF1ZGlvT3V0cHV0RGV2aWNlSWRPdmVycmlkZSgpOworICAgIGlmICghZGV2aWNlSWQu
aXNOdWxsKCkpIHsKKyAgICAgICAgaWYgKGRldmljZUlkLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IGF1ZGlvUmVuZGVyZXIuYXVkaW9PdXRwdXREZXZpY2VVbmlxdWVJRCA9IG5pbDsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgYXVkaW9SZW5kZXJlci5hdWRpb091dHB1dERldmljZVVuaXF1ZUlE
ID0gZGV2aWNlSWQ7CisgICAgfQorI2VuZGlmCisKICAgICBAdHJ5IHsKICAgICAgICAgW21fc3lu
Y2hyb25pemVyIGFkZFJlbmRlcmVyOmF1ZGlvUmVuZGVyZXJdOwogICAgIH0gQGNhdGNoKE5TRXhj
ZXB0aW9uICpleGNlcHRpb24pIHsKQEAgLTEyNzYsNiArMTI4NiwyMiBAQCBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGVyZm9ybVRhc2tBdE1lZGlhVGltZShXVEY6
OkZ1bmN0aW9uPAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKK3sKKyNpZiBI
QVZFKEFVRElPX09VVFBVVF9ERVZJQ0VfVU5JUVVFX0lEKQorICAgIGlmICghbV9wbGF5ZXIpCisg
ICAgICAgIHJldHVybjsKKyAgICBhdXRvIGRldmljZUlkID0gbV9wbGF5ZXItPmF1ZGlvT3V0cHV0
RGV2aWNlSWQoKTsKKyAgICBmb3IgKGF1dG8mIGtleSA6IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5k
ZXJlck1hcC5rZXlzKCkpIHsKKyAgICAgICAgYXV0byByZW5kZXJlciA9ICgoX19icmlkZ2UgQVZT
YW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopa2V5LmdldCgpKTsKKyAgICAgICAgaWYgKGRldmlj
ZUlkLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJlbmRlcmVyLmF1ZGlvT3V0cHV0RGV2aWNlVW5p
cXVlSUQgPSBuaWw7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlbmRlcmVyLmF1ZGlvT3V0
cHV0RGV2aWNlVW5pcXVlSUQgPSBkZXZpY2VJZDsKKyAgICB9CisjZW5kaWYKK30KKwogV1RGTG9n
Q2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpsb2dDaGFubmVs
KCkgY29uc3QKIHsKICAgICByZXR1cm4gTG9nTWVkaWFTb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oCmluZGV4IDhkZTg5NWQ3YjI0MTE4ZmRiMjhmYWMzOWNiMWJmYmU5OGI4Zjc2MTMuLjYz
MWYzMDMxZWE0MzgwZWEzOGQxZDQ1YWY2YjM0MjkwMDAyNTBlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oCkBAIC0xNTksNiArMTU5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGVuZGVkKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9lbmRlZDsgfQogCiAgICAgdm9pZCBzZXRCdWZmZXJp
bmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmluZ1BvbGljeSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKIAogICAgIE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlIGN1cnJlbnRSZWFkeVN0YXRlKCk7CiAgICAgdm9pZCB1cGRhdGVSZWFkeVN0YXRl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggMmRiNTBiYjg5NTc0ZWRjMzdhZDlj
N2NjOWJhYmZjYzE5MzcwMzAzNi4uM2E4YzM4Yzc2ODRkNDE1OGE1NjM2OWM0NzBkMTA0YTA3NGM5
ZWU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtODY3LDcgKzg2Nyw4IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MoKQog
ewogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yIGN1cnJlbnRUcmFja3MgPSBtX21l
ZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCk7CiAKLSAgICBhdXRvIHNldEF1ZGlvVHJhY2tTdGF0
ZSA9IFt0aGlzXShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtJiB0cmFjaywgaW50IGluZGV4
LCBUcmFja1N0YXRlIHN0YXRlKQorICAgIGF1dG8gZGV2aWNlSWQgPSBtX3BsYXllci0+YXVkaW9P
dXRwdXREZXZpY2VJZE92ZXJyaWRlKCk7CisgICAgYXV0byBzZXRBdWRpb1RyYWNrU3RhdGUgPSBb
dGhpcywgJmRldmljZUlkXShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtJiB0cmFjaywgaW50
IGluZGV4LCBUcmFja1N0YXRlIHN0YXRlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChzdGF0ZSkg
ewogICAgICAgICBjYXNlIFRyYWNrU3RhdGU6OlJlbW92ZToKQEAgLTg4NCw2ICs4ODUsOSBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlVHJhY2tzKCkK
ICAgICAgICAgICAgIHRyYWNrLnNldFZvbHVtZShtX3ZvbHVtZSk7CiAgICAgICAgICAgICB0cmFj
ay5zZXRNdXRlZChtX211dGVkKTsKICAgICAgICAgICAgIHRyYWNrLnNldEVuYWJsZWQodHJhY2su
c3RyZWFtVHJhY2soKS5lbmFibGVkKCkgJiYgIXRyYWNrLnN0cmVhbVRyYWNrKCkubXV0ZWQoKSk7
CisgICAgICAgICAgICBpZiAoIWRldmljZUlkLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHRy
YWNrLnNldEF1ZGlvT3V0cHV0RGV2aWNlKGRldmljZUlkKTsKKwogICAgICAgICAgICAgaWYgKHBs
YXlpbmcoKSkKICAgICAgICAgICAgICAgICB0cmFjay5wbGF5KCk7CiAgICAgICAgICAgICBicmVh
azsKQEAgLTEwMTcsNiArMTAyMSwxNSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6c2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZQogICAgICAg
ICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+Zmx1c2hBbmRSZW1vdmVJbWFnZSgpOwogfQog
Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YXVkaW9PdXRwdXRE
ZXZpY2VDaGFuZ2VkKCkKK3sKKyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47Cisg
ICAgYXV0byBkZXZpY2VJZCA9IG1fcGxheWVyLT5hdWRpb091dHB1dERldmljZUlkKCk7CisgICAg
Zm9yIChhdXRvJiBhdWRpb1RyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKQorICAgICAg
ICBhdWRpb1RyYWNrLT5zZXRBdWRpb091dHB1dERldmljZShkZXZpY2VJZCk7Cit9CisKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzY2hlZHVsZURlZmVycmVkVGFz
ayhGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChmdW5jdGlvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAppbmRleCA2NDg5ZjlkYTdjNTYy
NmMyMDI5Nzg1M2YxYTAxZTllYWZiZTU2MDBiLi5lNzI1NWEzNmUwMjAzNmI3MTY4MmUzNzU0Yzg1
OTJkMThhZmY1YTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKQEAg
LTUzLDYgKzUzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWUoZmxvYXQp
OwogICAgIGZsb2F0IHZvbHVtZSgpIGNvbnN0OwogCisgICAgdmlydHVhbCB2b2lkIHNldEF1ZGlv
T3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYpOworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiwgY29uc3Qgdm9pZCopOwogI2VuZGlm
CkBAIC0xMDksNiArMTExLDEwIEBAIGlubGluZSBjb25zdCBjaGFyKiBBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcjo6bG9nQ2xhc3NOYW1lKCkgY29uc3QKIH0KICNlbmRpZgogCitpbmxpbmUg
dm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0QXVkaW9PdXRwdXREZXZpY2Uo
Y29uc3QgU3RyaW5nJikKK3sKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKaW5kZXggYTE4NWNkNDcw
MzYzZTYwNWY5MGQ0OTlkZTAzODA5Nzk2YWM5YzVhYy4uNWRhNTc5NTBiOTg5MDRjYTA5OGRiYTM0
NzkyMmZkY2M3NmM0ODBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5j
cHAKQEAgLTk3LDYgKzk3LDExIEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6
c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICB1cGRhdGVSZW5kZXJlcigpOwogfQogCit2b2lk
IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSWQpCit7CisgICAgbV9yZW5kZXJlci0+c2V0QXVkaW9PdXRwdXREZXZp
Y2UoZGV2aWNlSWQpOworfQorCiBmbG9hdCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp2
b2x1bWUoKSBjb25zdAogewogICAgIHJldHVybiBtX3JlbmRlcmVyLT52b2x1bWUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAppbmRleCBhNDg1YzE4Y2E4N2ExYzZmMzJhNjE5
ZWU4Y2RjNWEzYzhlYWQ3NGUzLi4yZjc0ZDk1NTI0ZmRmYzMxOGY2ZWQ1NTIxYTU4ZjA0MmFiNjVl
ZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCkBAIC00Nyw2ICs0Nyw3
IEBAIHB1YmxpYzoKICAgICB+QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSgpOwogCiAgICAg
dm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KKyAgICB2
b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQo
KTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJD
b2NvYS5jcHAKaW5kZXggNzYyMzJiNzlkOWQwN2ViMWI4OWM0MmViNTM0NGRkYzMwNTQyYWUwOC4u
NWIxMWRkZWU3YzEyMTg5ZjcwMGRjM2RmMjQ4ZWRmYmEwMDhhOTc1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcApAQCAtNjcsMTEg
KzY3LDE4IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0Vm9s
dW1lKGZsb2F0IHZvbHVtZSkKICAgICAgICAgbV9kYXRhU291cmNlLT5zZXRWb2x1bWUodm9sdW1l
KTsKIH0KIAordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRBdWRp
b091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlkKQoreworICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgY3JlYXRlIGEgdW5pdCBmb3Igb3Vyc2VsdmVzIGhlcmUgb3IgdXNlIHRoZSBkZWZh
dWx0IHVuaXQgaWYgZGV2aWNlSWQgaXMgbWF0Y2hpbmcuCisgICAgQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJVbml0OjpzaW5nbGV0b24oKS5zZXRBdWRpb091dHB1dERldmljZShkZXZpY2VJ
ZCk7CisgICAgbV9zaG91bGRSZXNldCA9IHRydWU7Cit9CisKIHZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVU
aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURl
c2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFz
aWNUeXBlKTsKLSAgICBpZiAoIW1fZGF0YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERl
c2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2Ny
aXB0aW9uKSB7CisgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgbV9zaG91bGRSZXNldCB8fCAhbV9k
YXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNj
cmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1
ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDIs
ICp0aGlzKTsKIAogICAgICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQodG9DQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pKSkgewpAQCAtOTUsNiArMTAyLDcgQEAg
dm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyhjb25z
dCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUKICAgICAgICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyVW5pdDo6c2luZ2xldG9uKCkuYWRkU291cmNlKFdURk1vdmUobmV3U291cmNlKSk7
CiAgICAgICAgIH0pOwogICAgICAgICBtX2RhdGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2Up
OworICAgICAgICBtX3Nob3VsZFJlc2V0ID0gZmFsc2U7CiAgICAgfQogCiAgICAgbV9kYXRhU291
cmNlLT5wdXNoU2FtcGxlcyhzYW1wbGVUaW1lLCBhdWRpb0RhdGEsIHNhbXBsZUNvdW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCmluZGV4
IDUxYWM0MzM3YzRlMDM1OGZkZGNiNGVhODU0N2YyYWJiMGJjMGZhODcuLmRlODM5Njc0YmQ3ZDA0
OTNlZGNjNjE5MmMwYjE5MmE0Zjc0NTA4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29h
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaApAQCAtNTMsOSArNTMsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyKCkgZmluYWw7CiAgICAgdm9p
ZCBzZXRWb2x1bWUoZmxvYXQpIGZpbmFsOworICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2Uo
Y29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uPiBtX291dHB1dERlc2NyaXB0aW9uOwogICAgIFJlZlB0cjxBdWRpb1NhbXBs
ZURhdGFTb3VyY2U+IG1fZGF0YVNvdXJjZTsKKyAgICBib29sIG1fc2hvdWxkUmVzZXQgeyBmYWxz
ZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0LmNwcAppbmRleCBkYWM3NGExMjU1YzVlNTRhNTIzNDM2ZmU2OWE4ZTQ0NGMyZTcw
YjE1Li5lNzE1ODc4NDZhNDk0ZmRjODgxMGQ4ODI0ZjI2ZjZjODc2NTU2MDFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMzYs
NiArMzYsMTEgQEAKICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0F1ZGlvVG9vbGJveFNQSS5oPgog
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJD
b3JlQXVkaW9DYXB0dXJlRGV2aWNlLmgiCisjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXIuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDYgKzU2LDMzIEBAIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dCgpCiAgICAgc3RvcCgpOwogfQogCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdDo6c2V0QXVkaW9PdXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkKK3sKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgYXV0byBkZXZpY2UgPSBDb3JlQXVkaW9DYXB0dXJlRGV2aWNl
TWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1ZGlvRGV2aWNlV2l0aFVJRChkZXZpY2VJRCk7CisK
KyAgICBpZiAoIWRldmljZSAmJiAhZGV2aWNlSUQuaXNFbXB0eSgpKSB7CisgICAgICAgIFJFTEVB
U0VfTE9HKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2V0QXVk
aW9PdXRwdXREZXZpY2VJZCAtIGRpZCBub3QgZmluZCBkZXZpY2UiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGF1dG8gYXVkaW9Vbml0RGV2aWNlSUQgPSBkZXZpY2UgPyBkZXZpY2Ut
PmRldmljZUlEKCkgOiAwOworICAgIGlmIChtX2RldmljZUlEID09IGF1ZGlvVW5pdERldmljZUlE
KQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIHNob3VsZFJlc3RhcnQgPSBtX2lzU3RhcnRl
ZDsKKyAgICBpZiAobV9pc1N0YXJ0ZWQpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fZGV2aWNl
SUQgPSBhdWRpb1VuaXREZXZpY2VJRDsKKworICAgIGlmIChzaG91bGRSZXN0YXJ0KQorICAgICAg
ICBzdGFydCgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGV2aWNlSUQpOworI2VuZGlmCit9
CisKIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjphZGRTb3VyY2UoUmVm
PEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4mJiBzb3VyY2UpCiB7CiAgICAgUkVMRUFTRV9MT0coV2Vi
UlRDLCAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjphZGRTb3VyY2UiKTsKQEAg
LTE2MSw2ICsxOTMsMTYgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6
OmNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCkKICAgICB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBpZiAobV9kZXZpY2VJRCkgeworICAgICAgICBlcnJvciA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KHJlbW90ZUlPVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnRE
ZXZpY2UsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZtX2RldmljZUlELCBzaXplb2YobV9k
ZXZpY2VJRCkpOworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6Y3JlYXRl
QXVkaW9Vbml0IHVuYWJsZSB0byBzZXQgdW5pdCBkZXZpY2UgSUQgJWQsIGVycm9yICVkICglLjRz
KSIsIChpbnQpbV9kZXZpY2VJRCwgKGludCllcnJvciwgKGNoYXIqKSZlcnJvcik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKwogICAgIEFVUmVuZGVyQ2Fs
bGJhY2tTdHJ1Y3QgY2FsbGJhY2sgPSB7IGlucHV0UHJvYywgbnVsbHB0ciB9OwogICAgIGVycm9y
ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkocmVtb3RlSU9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlf
U2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZjYWxsYmFjaywg
c2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKaW5kZXggNDQwNzZhNTZlYzk3NGY5YmI4
NzM0MmJmYzc0ODMwYzg1OWM3NzJmNi4uNjEwODEwNGViNmY3N2JlYmVmMTg2NGJkODg3NjQzMTc3
ZTBhZDQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQuaApAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpOwogICAg
IHZvaWQgc3RvcCgpOwogCisgICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJp
bmcmKTsKKwogICAgIHZvaWQgYWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYp
OwogICAgIHZvaWQgcmVtb3ZlU291cmNlKEF1ZGlvU2FtcGxlRGF0YVNvdXJjZSYpOwogCkBAIC02
OCw2ICs3MCw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFVwZGF0ZVJlbmRlclNvdXJj
ZXMgeyBmYWxzZSB9OwogICAgIExvY2sgbV9zb3VyY2VzTG9jazsKICAgICBib29sIG1faXNTdGFy
dGVkIHsgZmFsc2UgfTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgdWludDMyX3QgbV9kZXZpY2VJ
RCB7IDAgfTsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggYmMxOTcxNmYyZWNmZDNlNDBi
MWUyYWNiOWU4NmRmYjUzZWI5NzNiOS4uZjZiY2I4ZmY5NGRlMGVhZDkxMDQ5OGNjN2Y1ZmVkYmVl
ODUzNGExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sCkBAIC0xNDQsNyArMTQ0LDE0IEBAIEV4cG9zZVNwZWFrZXJzRW5h
YmxlZDoKICAgZGVmYXVsdFZhbHVlOiBmYWxzZQogICBodW1hblJlYWRhYmxlTmFtZTogIkFsbG93
IHNwZWFrZXIgZGV2aWNlIHNlbGVjdGlvbiIKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
QWxsb3cgc3BlYWtlciBkZXZpY2Ugc2VsZWN0aW9uIgotICBjb25kaXRpb246IEVOQUJMRShXRUJf
UlRDKQorICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TVFJFQU0pCisKK1BlckVsZW1lbnRTcGVh
a2VyU2VsZWN0aW9uRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNl
CisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQWxsb3cgcGVyIG1lZGlhIGVsZW1lbnQgc3BlYWtlciBk
ZXZpY2Ugc2VsZWN0aW9uIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJBbGxvdyBwZXIg
bWVkaWEgZWxlbWVudCBzcGVha2VyIGRldmljZSBzZWxlY3Rpb24iCisgIGNvbmRpdGlvbjogRU5B
QkxFKE1FRElBX1NUUkVBTSkKIAogVlA5RGVjb2RlckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFt
bCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAppbmRl
eCBjNzI3NjY2MDExMzczM2VlMTFiODhmY2NmMzU3MzRlOTYwZDgyODRmLi44ODA5MjA2ZWJmODM3
ZmRkNTVjZWM2NTE0NGQ5NTkxMzQxZjQ1OWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCkBAIC03Miw2ICs3MiwxMyBAQCBXZWJSVENN
RE5TSUNFQ2FuZGlkYXRlc0VuYWJsZWQ6CiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzCiAgIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9SVEMpCiAKK1NwZWFrZXJTZWxlY3Rp
b25SZXF1aXJlc1VzZXJHZXN0dXJlOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogdHJ1
ZQorICBodW1hblJlYWRhYmxlTmFtZTogIlJlcXVpcmUgYSB1c2VyIGdlc3R1cmUgZm9yIHNwZWFr
ZXIgc2VsZWN0aW9uIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJSZXF1aXJlIGEgdXNl
ciBnZXN0dXJlIGZvciBzcGVha2VyIHNlbGVjdGlvbiIKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCiBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRl
ZmF1bHRWYWx1ZTogREVGQVVMVF9GUkFNRV9GTEFUVEVOSU5HCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjYyMWVmODQ0MTgxOGQzZGQyNDM1NjZk
YmI4ZDA2MWMyNzJjMjc3Mi4uZDcyMWQyNWQ5ZmYwMjI0MGMzOTg1MTk1YzAwNDM2MTY4MjJiMGNl
NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIwLTA5LTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY5Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisKIDIwMjAtMDktMjIgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBhIGRl
ZmF1bHQgcHJvbXB0IGZvciBnZXRVc2VyTWVkaWEKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggM2Y4NGVkNmEzYjU5YjljYWNlZDM4MTI4NWRlMTJjNGE2Njhj
YjgxMC4uZjcxYWYyYjFjYjZhOTg0NTI2NzFjZGE1MDU1ZTNhMmNkZmE5YWVmZCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTk5Miw2ICs5OTIsNyBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKGNv
bnN0IFRlc3RPcHRpb25zJiBvcHRpbwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVBsYXliYWNr
UmVxdWlyZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5j
ZXNTZXRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShwcmVmZXJlbmNlcywgZmFsc2Up
OwogICAgIFdLUHJlZmVyZW5jZXNTZXRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShw
cmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVh
dHVyZUZvcktleShwcmVmZXJlbmNlcywgZmFsc2UsIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSIpKTsKIAogICAgIFdLUHJl
ZmVyZW5jZXNTZXRTaG91bGRVc2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KHByZWZlcmVuY2Vz
LCBvcHRpb25zLmNvbnRleHRPcHRpb25zLnVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQpOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNjBmZmZjM2I4MDlhYzdjOGNkMmU2OTJiYjAzNzUyZWVmNDNhZDY5My4uNGQwYTQ1
MmM0YTEyMzNmOTY5ZWI1NDIxMzE4NWQyODkwZGM1OGE1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIwLTA5LTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudC5zZXRTaW5rSWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjY5NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBTa2lwIG5ldyB0ZXN0cyBvbiBXSzEg
c2luY2UgbWVkaWFEZXZpY2VzIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBXSzEuCisKKyAgICAgICAg
KiBodHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDktMjIgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIHRvUlRDSWNlUHJvdG9j
b2wgc2hvdWxkIGhhbmRsZSBzc2x0Y3AgY2FuZGlkYXRlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggMzc0NDBlMDYzYzViMzRmYmQ1ZWY0YWJkZTk1YjRkMTBmOGI5MDc1Ny4uMTkz
ZjExZjhhYmE3YTE4YzIwYjg4NjQ0MjdhOTE1MDYyM2IwYWFiOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDktMjIgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFF
bGVtZW50LnNldFNpbmtJZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE2Njk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisg
ICAgICAgICogcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L01FVEEueW1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlv
LW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93Lmpz
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3NldFNp
bmtJZC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgor
CiAyMDIwLTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
VGhyb3cgd2hlbiBBdWRpb0Nvbm5lY3Q6OmNvbm5lY3QoKSBpcyBjYWxsZWQgZm9yIGFuIG91dHB1
dCB0aGF0IGhhcyBubyBjaGFubmVscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
YXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NGQ1MzcyMmU5YjE4MDFhM2UzOWVlOTljNWJhNmY3YjIwZDgzMGQzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJZC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1Mgc2V0U2lua0lkIHJlcXVpcmVz
IHVzZXIgZ2VzdHVyZSAKK1BBU1Mgc2V0U2lua0lkIGFuZCBzaW5rSWQgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hYTIxYjU0MTdmNmQxZGY5OGM1ZDhiYmRlOGY0YzkwYzBhODVmNGJlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYXVkaW8tb3V0cHV0L3NldFNpbmtJ
ZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGhlYWQ+Cis8
dGl0bGU+VGVzdCBzZXRTaW5rSWQgYmVoYXZpb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iRG9taW5pcXVlIEhhemFlbC1NYXNzaWV1eCIgaHJlZj0ibWFpbHRvOmRvbUB3My5v
cmciLz4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93d3cudzMub3JnL1RSL2F1ZGlv
LW91dHB1dC8jZG9tLWh0bWxtZWRpYWVsZW1lbnQtc2V0c2lua2lkIj4KKzwvaGVhZD4KKzxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyJ1c2Ug
c3RyaWN0IjsKKworY29uc3QgYXVkaW8gPSBuZXcgQXVkaW8oKTsKKworcHJvbWlzZV90ZXN0KHQg
PT4geworICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgcmV0dXJuOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSh0
cnVlKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHsgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNw
ZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlKGZhbHNlKTsgfSk7CisKKyAgICByZXR1
cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90QWxsb3dlZEVycm9yIiwgYXVkaW8uc2V0U2lu
a0lkKCIiKSk7Cit9LCAic2V0U2lua0lkIHJlcXVpcmVzIHVzZXIgZ2VzdHVyZSIpOworCisKK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSh7IGF1ZGlvIDogdHJ1ZSB9KTsKKyAgICBjb25zdCBsaXN0ID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7CisgICAgY29uc3Qgb3V0
cHV0RGV2aWNlc0xpc3QgPSBsaXN0LmZpbHRlcigoe2tpbmR9KSA9PiBraW5kID09ICJhdWRpb291
dHB1dCIpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKG91dHB1dERldmljZXNMaXN0Lmxlbmd0aCwg
MCwgIm1lZGlhIGRldmljZSBsaXN0IGluY2x1ZGVzIGF0IGxlYXN0IG9uZSBhdWRpbyBvdXRwdXQg
ZGV2aWNlIik7CisKKyAgICBsZXQgcHJvbWlzZSA9IGF1ZGlvLnNldFNpbmtJZChvdXRwdXREZXZp
Y2VzTGlzdFswXS5kZXZpY2VJZCk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvLnNpbmtJZCwg
IiIpOworICAgIGF3YWl0IHByb21pc2U7CisgICAgYXNzZXJ0X2VxdWFscyhhdWRpby5zaW5rSWQs
IG91dHB1dERldmljZXNMaXN0WzBdLmRldmljZUlkKTsKK30sICJzZXRTaW5rSWQgYW5kIHNpbmtJ
ZCIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVz
b3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDg1Y2ViMzVlMTc5Mjhk
N2ExNjkwNjBmZjQ0ZWIwYjQ0ZGZlNDcwNTIuLmFjNjFlNjhkNWNmN2ZmOGUxODA4YjVhMzNjYmY0
YTkxMTM3ZTM3YjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJj
ZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCkBAIC00OSw3ICs0OSw3IEBACiAg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hcG5nIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2FwcC11cmkiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXNzdW1w
dGlvbnMiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0Ijog
InNraXAiLCAKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dCI6ICJpbXBvcnQi
LCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2F1eGNsaWNrIjogInNraXAiLCAKICAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2giOiAiaW1wb3J0IiwgCiAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9iYXR0ZXJ5LXN0YXR1cyI6ICJza2lwIiwgCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9NRVRB
LnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8t
b3V0cHV0L01FVEEueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2YTdkNGQwNjI1OTExN2FmOGZiODQzZjZhOGQy
NTJiYWMwMWE4ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9NRVRBLnltbApAQCAtMCwwICsxLDQgQEAK
K3NwZWM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtb3V0cHV0Lworc3VnZ2Vz
dGVkX3Jldmlld2VyczoKKyAgLSBndWlkb3UKKyAgLSBqYW4taXZhcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRs
aGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5k
b3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMzkwNmUyZTE5MjFmODBmOWE2OGU5ZjNkYzll
OTk2NWRhYmRmN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorCitQQVNTIGlkbF90ZXN0IHNldHVwIAorUEFT
UyBpZGxfdGVzdCB2YWxpZGF0aW9uIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MTWVkaWFF
bGVtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZCAKK1BBU1MgUGFydGlhbCBpbnRlcmZh
Y2UgSFRNTE1lZGlhRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEhUTUxF
bGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlIAorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhh
bmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVk
ZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNT
IEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlIAorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlIAorUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90
dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBIVE1MTWVkaWFFbGVtZW50IGlu
dGVyZmFjZTogYXR0cmlidXRlIHNpbmtJZCAKK1BBU1MgSFRNTE1lZGlhRWxlbWVudCBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBzZXRTaW5rSWQoRE9NU3RyaW5nKSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFy
bmVzcy5odHRwcy53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YXVkaW8tb3V0cHV0L2lkbGhhcm5lc3MuaHR0cHMud2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJl
IHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9pZGxoYXJuZXNzLmh0
dHBzLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2NkYmQwNzY4MzM0ODFiNTNmMzViMjZkNWVlMDE2
ZmQ3MGM0MTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMK
QEAgLTAsMCArMSwyMCBAQAorLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvV2ViSURMUGFyc2Vy
LmpzCisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCisKKy8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtb3V0cHV0LworCisndXNlIHN0cmljdCc7CisK
K2lkbF90ZXN0KAorICBbJ2F1ZGlvLW91dHB1dCddLAorICBbJ21lZGlhY2FwdHVyZS1zdHJlYW1z
JywgJ2h0bWwnLCAnZG9tJ10sCisgIGlkbF9hcnJheSA9PiB7CisgICAgc2VsZi5hdWRpbyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJyk7CisgICAgc2VsZi52aWRlbyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgaWRsX2FycmF5LmFkZF9vYmplY3RzKHsKKyAg
ICAgIEhUTUxBdWRpb0VsZW1lbnQ6IFsnYXVkaW8nXSwKKyAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6
IFsndmlkZW8nXSwKKyAgICAgIE1lZGlhRGV2aWNlczogWyduYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
J10sCisgICAgfSk7CisgIH0KKyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRp
by1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGUxNzMy
MzI0MjEyMmFiOWMyNzNjMjI5NzhiMmI5YzgzZmU2NTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0
U2lua0lkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBzZXRTaW5r
SWQgb24gZGVmYXVsdCBhdWRpbyBvdXRwdXQgc2hvdWxkIGFsd2F5cyB3b3JrIAorUEFTUyBzZXRT
aW5rSWQgZmFpbHMgd2l0aCBOb3RGb3VuZEVycm9yIG9uIG1hZGUgdXAgZGV2aWNlaWQgCitGQUlM
IExpc3QgZGV2aWNlLCBzZXRTaW5rSWQgc2hvdWxkIGJlIGFsbG93ZWQgb24gdGhlIGRlZmF1bHQs
IHRoZSByZXN0IG9mIHRoZSBkZXZpY2VzIHdpbGwgZ2V0IGEgTm90QWxsb3dlZEVycm9yIGFzc2Vy
dF9ub3RfZXF1YWxzOiBtZWRpYSBkZXZpY2UgbGlzdCBpbmNsdWRlcyBhdCBsZWFzdCBvbmUgYXVk
aW8gb3V0cHV0IGRldmljZSBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAwCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3Nl
dFNpbmtJZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFm
NzAzYTkzNTBiZjU1N2YwZDM4OTExYTA5YzA5YTlkMDJlYWEzYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0
L3NldFNpbmtJZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGhlYWQ+Cis8dGl0bGU+VGVzdCBzZXRTaW5rSWQgYmVoYXZpb3IgPC90aXRsZT4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iRG9taW5pcXVlIEhhemFlbC1NYXNzaWV1eCIgaHJlZj0ibWFpbHRv
OmRvbUB3My5vcmciLz4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93d3cudzMub3Jn
L1RSL2F1ZGlvLW91dHB1dC8jZG9tLWh0bWxtZWRpYWVsZW1lbnQtc2V0c2lua2lkIj4KKzwvaGVh
ZD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlw
dD4KKyJ1c2Ugc3RyaWN0IjsKKworY29uc3QgYXVkaW8gPSBuZXcgQXVkaW8oKTsKKworcHJvbWlz
ZV90ZXN0KHQgPT4gYXVkaW8uc2V0U2lua0lkKCIiKSwgInNldFNpbmtJZCBvbiBkZWZhdWx0IGF1
ZGlvIG91dHB1dCBzaG91bGQgYWx3YXlzIHdvcmsiKTsKKworcHJvbWlzZV90ZXN0KHQgPT4gcHJv
bWlzZV9yZWplY3RzX2RvbSh0LCAiTm90Rm91bmRFcnJvciIsIGF1ZGlvLnNldFNpbmtJZCgibm9u
ZXhpc3RlbnRfZGV2aWNlX2lkIikpLAorICAic2V0U2lua0lkIGZhaWxzIHdpdGggTm90Rm91bmRF
cnJvciBvbiBtYWRlIHVwIGRldmljZWlkIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgbGlzdCA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2
aWNlcygpOworICBjb25zdCBvdXRwdXREZXZpY2VzTGlzdCA9IGxpc3QuZmlsdGVyKCh7a2luZH0p
ID0+IGtpbmQgPT0gImF1ZGlvb3V0cHV0Iik7CisgIGFzc2VydF9ub3RfZXF1YWxzKG91dHB1dERl
dmljZXNMaXN0Lmxlbmd0aCwgMCwKKyAgICAibWVkaWEgZGV2aWNlIGxpc3QgaW5jbHVkZXMgYXQg
bGVhc3Qgb25lIGF1ZGlvIG91dHB1dCBkZXZpY2UiKTsKKworICBsZXQgYWNjZXB0ZWREZXZpY2Vz
ID0gMDsKKyAgZm9yIChjb25zdCB7ZGV2aWNlSWR9IG9mIG91dHB1dERldmljZXNMaXN0KSB7Cisg
ICAgY29uc3Qge2RldmljZUlkfSA9IG91dHB1dERldmljZXNMaXN0WzBdOworICAgIGNvbnN0IHAx
ID0gYXVkaW8uc2V0U2lua0lkKGRldmljZUlkKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvLnNp
bmtJZCwgIiIsICJiZWZvcmUgaXQgcmVzb2x2ZXMsIHNldFNpbmtJZCBpcyB1bmNoYW5nZWQiKTsK
KyAgICB0cnkgeworICAgICAgbGV0IHIgPSBhd2FpdCBwMTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
YWNjZXB0ZWREZXZpY2VzLCAwLCAib25seSB0aGUgZGVmYXVsdCBzaW5rIGRldmljZSBjYW4gYmUg
c2V0Iik7CisgICAgICBhY2NlcHRlZERldmljZXMrKzsKKyAgICAgIGFzc2VydF9lcXVhbHMociwg
dW5kZWZpbmVkLCAic2V0U2lua0lkIHJlc29sdmVzIHdpdGggdW5kZWZpbmVkIik7CisgICAgICBh
c3NlcnRfZXF1YWxzKGF1ZGlvLnNpbmtJZCwgZGV2aWNlSWQsICJ3aGVuIGl0IHJlc29sdmVzLCBz
ZXRTaW5rSWQgdXBkYXRlcyBzaW5rSWQgdG8gdGhlIHJlcXVlc3RlZCBkZXZpY2VJZCIpOworICAg
ICAgciA9IGF3YWl0IGF1ZGlvLnNldFNpbmtJZChkZXZpY2VJZCk7CisgICAgICBhc3NlcnRfZXF1
YWxzKHIsIHVuZGVmaW5lZCwgInJlc2V0dGluZyBzaW5raWQgb24gc2FtZSBjdXJyZW50IHZhbHVl
IHNob3VsZCBhbHdheXMgd29yayIpOworICAgICAgciA9IGF3YWl0IGF1ZGlvLnNldFNpbmtJZCgi
Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKHIsIHVuZGVmaW5lZCwgInJlc2V0dGluZyBzaW5raWQg
b24gZGVmYXVsdCBhdWRpbyBvdXRwdXQgc2hvdWxkIGFsd2F5cyB3b3JrIik7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiLCAi
Tm9uLWRlZmF1bHQgZGV2aWNlcyBhcmUgZmFpbGluZyB3aXRoIE5vdEFsbG93ZWQgZXJyb3IiKTsK
KyAgICB9CisgIH0KK30sICJMaXN0IGRldmljZSwgc2V0U2lua0lkIHNob3VsZCBiZSBhbGxvd2Vk
IG9uIHRoZSBkZWZhdWx0LCB0aGUgcmVzdCBvZiB0aGUgZGV2aWNlcyB3aWxsIGdldCBhIE5vdEFs
bG93ZWRFcnJvciIpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIzYzUxNWNlZjZlYTlkMmM4YTMyNTY3OTY5MmFk
YWE4MTE1Y2QxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MjAgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvYXVkaW8tb3V0cHV0L01FVEEueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9z
ZXRTaW5rSWQtbWFudWFsLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dC9zZXRTaW5rSWQuaHR0cHMuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDc2OGVhODRk
NzBkNGJhMGY1MjQ1M2IyZTdlYzYwNDMxMWNiMzRiMTAuLmU3ZmJmMTJhNWQwOWQ5MjVlZjIxNmRi
NGJkMWM5YzZkMjIyNWJmMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTY1LDYgKzY1LDkgQEAgaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVT
ZXR0aW5nLU1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZ2V0VXNlck1lZGlhLXBlbmRpbmctcHJvbWlzZS5odG1s
IFsgU2tpcCBdCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1tZWRpYXN0cmVhbS5o
dG1sIFsgU2tpcCBdCiAKK2h0dHAvd3B0L2F1ZGlvLW91dHB1dCBbIFNraXAgXQoraW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQgWyBTa2lwIF0KKwogIyBEYXRhbGlz
dCBpcyB1bnN1cHBvcnRlZCBpbiBXSzEKIGFjY2Vzc2liaWxpdHkvZGF0YWxpc3QuaHRtbCBbIFdv
bnRGaXggXQogZmFzdC9mb3Jtcy9kYXRhbGlzdCBbIFdvbnRGaXggXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1Y2IzNzA4N2VkMTJhYzA2MmY2ZTRhMWY1
ZDhkNGJhMWFmNmY4MThlLi5iNWQ2YzAzYzQ0OWUzY2MxYTMxZGYyZjIzODVkMDcyOTcyZDdlNmJm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtODU5LDYg
Kzg1OSw5IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0
cmVhbXMgWyBTa2lwIF0KIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtIFsgU2tpcCBdCiBo
dHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1nZXRVc2VyTWVkaWEtcGVuZGluZy1wcm9t
aXNlLmh0bWwgWyBTa2lwIF0KIAoraHR0cC93cHQvYXVkaW8tb3V0cHV0IFsgU2tpcCBdCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2F1ZGlvLW91dHB1dCBbIFNraXAgXQorCiAjIG5l
ZWRzIGVuaGFuY2VkIGV2ZW50U2VuZGVyLmNvbnRleHRNZW51KCkgcmV0dXJuIHZhbHVlCiAjd2Vi
a2l0Lm9yZy9iLzQ1MDIxIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>