<?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>195329</bug_id>
          
          <creation_ts>2019-03-05 09:16:37 -0800</creation_ts>
          <short_desc>Add support for Device Orientation / Motion permission API</short_desc>
          <delta_ts>2020-07-08 08:57:04 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://github.com/w3c/deviceorientation/issues/57</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>195561</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gareth</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mkwst</cc>
    
    <cc>tsavell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1512653</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 09:16:37 -0800</bug_when>
    <thetext>Add support for Device Orientation / Motion permission API:
- https://github.com/w3c/deviceorientation/issues/57</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512654</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 09:16:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/47645367&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512701</commentid>
    <comment_count>2</comment_count>
      <attachid>363655</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 10:56:11 -0800</bug_when>
    <thetext>Created attachment 363655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512706</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-05 11:00:26 -0800</bug_when>
    <thetext>Attachment 363655 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:487:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 49 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512740</commentid>
    <comment_count>4</comment_count>
      <attachid>363663</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 11:54:48 -0800</bug_when>
    <thetext>Created attachment 363663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512744</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-05 11:57:54 -0800</bug_when>
    <thetext>Attachment 363663 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:487:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 53 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512765</commentid>
    <comment_count>6</comment_count>
      <attachid>363670</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 12:40:30 -0800</bug_when>
    <thetext>Created attachment 363670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512766</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-05 12:43:29 -0800</bug_when>
    <thetext>Attachment 363670 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:487:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 53 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512778</commentid>
    <comment_count>8</comment_count>
      <attachid>363673</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 13:07:56 -0800</bug_when>
    <thetext>Created attachment 363673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512783</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-05 13:11:56 -0800</bug_when>
    <thetext>Attachment 363673 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:487:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 53 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512789</commentid>
    <comment_count>10</comment_count>
      <attachid>363676</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 13:18:03 -0800</bug_when>
    <thetext>Created attachment 363676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512794</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-05 13:21:16 -0800</bug_when>
    <thetext>Attachment 363676 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:487:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 54 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512824</commentid>
    <comment_count>12</comment_count>
      <attachid>363676</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 14:02:01 -0800</bug_when>
    <thetext>Comment on attachment 363676
Patch

Will update as per Geoff&apos;s feedback offline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512832</commentid>
    <comment_count>13</comment_count>
      <attachid>363687</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 14:20:28 -0800</bug_when>
    <thetext>Created attachment 363687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512833</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-05 14:24:46 -0800</bug_when>
    <thetext>Attachment 363687 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:487:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 54 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512857</commentid>
    <comment_count>15</comment_count>
      <attachid>363693</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 15:00:50 -0800</bug_when>
    <thetext>Created attachment 363693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512859</commentid>
    <comment_count>16</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-05 15:03:57 -0800</bug_when>
    <thetext>Attachment 363693 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:487:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 54 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512864</commentid>
    <comment_count>17</comment_count>
      <attachid>363695</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 15:28:23 -0800</bug_when>
    <thetext>Created attachment 363695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512866</commentid>
    <comment_count>18</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-05 15:31:35 -0800</bug_when>
    <thetext>Attachment 363695 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:487:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 2 in 55 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512888</commentid>
    <comment_count>19</comment_count>
      <attachid>363695</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 15:50:38 -0800</bug_when>
    <thetext>Comment on attachment 363695
Patch

Will merge orientation &amp; motion permissions on native side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513043</commentid>
    <comment_count>20</comment_count>
      <attachid>363746</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-06 08:52:48 -0800</bug_when>
    <thetext>Created attachment 363746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513044</commentid>
    <comment_count>21</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-06 08:56:27 -0800</bug_when>
    <thetext>Attachment 363746 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 65 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513045</commentid>
    <comment_count>22</comment_count>
      <attachid>363747</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-06 09:01:40 -0800</bug_when>
    <thetext>Created attachment 363747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513046</commentid>
    <comment_count>23</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-06 09:04:54 -0800</bug_when>
    <thetext>Attachment 363747 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 65 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513560</commentid>
    <comment_count>24</comment_count>
      <attachid>363889</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-07 10:02:52 -0800</bug_when>
    <thetext>Created attachment 363889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513563</commentid>
    <comment_count>25</comment_count>
      <attachid>363890</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-07 10:04:17 -0800</bug_when>
    <thetext>Created attachment 363890
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513567</commentid>
    <comment_count>26</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-07 10:08:28 -0800</bug_when>
    <thetext>Attachment 363890 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 69 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513663</commentid>
    <comment_count>27</comment_count>
      <attachid>363890</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-07 13:22:20 -0800</bug_when>
    <thetext>Comment on attachment 363890
Patch

Will merge offline feedback from Youenn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513721</commentid>
    <comment_count>28</comment_count>
      <attachid>363930</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-07 14:37:20 -0800</bug_when>
    <thetext>Created attachment 363930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513726</commentid>
    <comment_count>29</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-07 14:41:30 -0800</bug_when>
    <thetext>Attachment 363930 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 73 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513734</commentid>
    <comment_count>30</comment_count>
      <attachid>363935</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-07 14:55:36 -0800</bug_when>
    <thetext>Created attachment 363935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513736</commentid>
    <comment_count>31</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-07 14:59:25 -0800</bug_when>
    <thetext>Attachment 363935 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 76 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514007</commentid>
    <comment_count>32</comment_count>
      <attachid>364014</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-08 08:43:18 -0800</bug_when>
    <thetext>Created attachment 364014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514009</commentid>
    <comment_count>33</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-08 08:45:49 -0800</bug_when>
    <thetext>Attachment 364014 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:486:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 76 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514238</commentid>
    <comment_count>34</comment_count>
      <attachid>364014</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-03-08 15:42:28 -0800</bug_when>
    <thetext>Comment on attachment 364014
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514256</commentid>
    <comment_count>35</comment_count>
      <attachid>364014</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-08 16:30:52 -0800</bug_when>
    <thetext>Comment on attachment 364014
Patch

Clearing flags on attachment: 364014

Committed r242664: &lt;https://trac.webkit.org/changeset/242664&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514257</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-08 16:30:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514794</commentid>
    <comment_count>37</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-03-11 09:19:26 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/242664/webkit

has caused an API timeout on iOS:
Timeout

    TestWebKitAPI.WebKit.WebsitePoliciesDeviceOrientationEventEnabled
        Received data during response processing, queuing it.


I was able to confirm this locally using 
run-api-tests WebKit.WebsitePoliciesDeviceOrientationEventEnabled --ios-simulator

The test will timeout on 242664 but not on 242663</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514798</commentid>
    <comment_count>38</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-11 09:27:35 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #37)
&gt; It looks like the changes in https://trac.webkit.org/changeset/242664/webkit
&gt; 
&gt; has caused an API timeout on iOS:
&gt; Timeout
&gt; 
&gt;     TestWebKitAPI.WebKit.WebsitePoliciesDeviceOrientationEventEnabled
&gt;         Received data during response processing, queuing it.
&gt; 
&gt; 
&gt; I was able to confirm this locally using 
&gt; run-api-tests WebKit.WebsitePoliciesDeviceOrientationEventEnabled
&gt; --ios-simulator
&gt; 
&gt; The test will timeout on 242664 but not on 242663

Looking now, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669760</commentid>
    <comment_count>39</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-08 08:57:04 -0700</bug_when>
    <thetext>*** Bug 194183 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363655</attachid>
            <date>2019-03-05 10:56:11 -0800</date>
            <delta_ts>2019-03-05 11:54:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190305105611.patch</filename>
            <type>text/plain</type>
            <size>86728</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2NTk5ZTMzMzQxZjUz
NzBlNTAwNzRlNGM5MWZhZjUyOWNmNTJkOC4uNGE3MDJkZTIzY2IzY2MzZjVlMGFmM2JjOTc4ZTk3
OWFjZjY0M2ExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTAzLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9E
ZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVz
dFBlcm1pc3Npb24pOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmg6Cisg
ICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0
aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLnlhbWw6CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBJbXByb3ZlIG91ciBmaWxlIHBpY2tlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA4NzZlY2Q1ZDQxMGEzZTVhODRkOWIxMTRkYTY2ZWRkZjUxMTM3MDFmLi4wZmIzZjg4MzBjOTEz
MDMwNDBjODg5MTExMDZkYTEwOThiMmNhNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisy
MDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0
aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNv
bS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoK
KyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdl
YktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlTW90
aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om5leHREZXZpY2VP
cmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9u
TW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDE5LTAzLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgRG8gbm90IHNoYXJlIFdlYlByb2Nlc3NlcyBiZXR3ZWVuIHByaXZhdGUgYW5k
IHJlZ3VsYXIgc2Vzc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3Bw
CmluZGV4IDkwZDcwMmRjMzkwNTJkMGZjNzZkZTA4NDE1ZGE0N2I4MzczYjJkOTYuLjQ0Y2EzZTdi
NjMwYjY4ZDVjNDdlNWQ4ODFmNTY1M2YyMmVlNGE3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkV2ZW50LmNwcApAQCAtMjYsNyArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjIsNCArMTI2LDMyIEBAIEV2ZW50SW50ZXJmYWNl
IERldmljZU1vdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERldmljZU1vdGlvbkV2ZW50Ojpy
ZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYg
cHJvbWlzZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50LmlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAg
ICAgIGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsICJDYWxsIHRvIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNz
aW9uKCkgZmFpbGVkIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4i
X3MpOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVu
aWVkKTsKKyAgICB9CisKKyAgICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuQWNj
ZXNzKGRvY3VtZW50LnRvcE9yaWdpbigpKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQ2FsbCB0
byBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCBiZWNhdXNlIGl0
IHdhcyBtYWRlIGZyb20gYW4gaWZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9y
aWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29s
dmUoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0KKworICAgIGlmIChhdXRvIHBlcm1p
c3Npb25TdGF0ZSA9IGRvY3VtZW50LmRldmljZU1vdGlvbkFjY2Vzc1N0YXRlKCkpCisgICAgICAg
IHJldHVybiBwcm9taXNlLnJlc29sdmUoKnBlcm1pc3Npb25TdGF0ZSA/IFBlcm1pc3Npb25TdGF0
ZTo6R3JhbnRlZCA6IFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIGF1dG8qIHBhZ2Ug
PSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIHBhZ2UtPmNocm9tZSgp
LmNsaWVudCgpLnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKGRvY3VtZW50LnRv
cE9yaWdpbigpLCBbZG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShib29sIGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoZG9j
dW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUo
Z3JhbnRlZCk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShncmFudGVkID8gUGVybWlzc2lvblN0
YXRlOjpHcmFudGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0pOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlv
bkV2ZW50LmgKaW5kZXggM2VjYzViZDRjMGM3ZWVjMThlOWZiOGU0MTU2ZjE4YmYzZWY0NTMzZC4u
NjRhOTQ5ZDBmZmMyNDI0YmE5NDI3YmUzY2MxZGQ0NGNhMDY2MTIyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKQEAgLTI2LDEwICsyNiwxMiBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsKK2NsYXNz
IERvY3VtZW50OwogCiBjbGFzcyBEZXZpY2VNb3Rpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVu
dCB7CiBwdWJsaWM6CkBAIC02Niw2ICs2OCwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRE
ZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywg
Ym9vbCBjYW5jZWxhYmxlLCBPcHRpb25hbDxBY2NlbGVyYXRpb24+JiYsIE9wdGlvbmFsPEFjY2Vs
ZXJhdGlvbj4mJiwgT3B0aW9uYWw8Um90YXRpb25SYXRlPiYmLCBPcHRpb25hbDxkb3VibGU+KTsK
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZW51bSBjbGFzcyBQZXJtaXNz
aW9uU3RhdGUgeyBHcmFudGVkLCBEZW5pZWQgfTsKKyAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsK
KyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Q
cm9taXNlJiYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRGV2aWNlTW90aW9uRXZlbnQoKTsK
ICAgICBEZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRGV2
aWNlTW90aW9uRGF0YSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwK
aW5kZXggZjJmNWRmMjBmY2U1M2JjMTNiNWFiZTZkNDE4ZTIwYmQ1YTRmZDM4Ni4uMzJhZDZlNzVj
MGMzNGUxODQ2MjE4YWQ2OGE0ZWRlNjE3YTVkMjlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlTW90aW9uRXZlbnQuaWRsCkBAIC0zMSw2ICszMSw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFJvdGF0aW9uUmF0ZT8gcm90YXRpb25SYXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnJlc3RyaWN0ZWQgZG91YmxlPyBpbnRlcnZhbDsKIAorICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwg
RW5hYmxlZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUEldIHN0YXRpYyBQ
cm9taXNlPFBlcm1pc3Npb25TdGF0ZT4gcmVxdWVzdFBlcm1pc3Npb24oKTsKKwogICAgIHZvaWQg
aW5pdERldmljZU1vdGlvbkV2ZW50KG9wdGlvbmFsIERPTVN0cmluZyB0eXBlID0gIiIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFs
c2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBjYW5j
ZWxhYmxlID0gZmFsc2UsCkBAIC01NywzICs1OSw1IEBACiAgICAgZG91YmxlPyBiZXRhOwogICAg
IGRvdWJsZT8gZ2FtbWE7CiB9OworCitlbnVtIFBlcm1pc3Npb25TdGF0ZSB7ICJncmFudGVkIiwg
ImRlbmllZCIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmNwcAppbmRleCBlODIxYjY1NTMxMDhhMTIwYzBmYjI3MTI3YmE1NzU1MTkwZTcxZTFlLi44NTJj
ZWMxN2QxZDI0MjNlNTdkM2MxYmU2MGI3YjRiZDY0NTA5M2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCkBAIC0yNiw3ICsyNiwxMSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZlbnQuaCIKIAor
I2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMDksNCAr
MTEzLDMyIEBAIEV2ZW50SW50ZXJmYWNlIERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmV2ZW50SW50
ZXJmYWNlKCkgY29uc3QKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1l
bnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgaWYgKCFk
b2N1bWVudC5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQ2FsbCB0
byBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkIGJlY2F1
c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3MpOworICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAg
ICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuQWNjZXNzKGRvY3VtZW50LnRvcE9y
aWdpbigpKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQ2FsbCB0byBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkIGJlY2F1c2UgaXQgd2FzIG1hZGUgZnJv
bSBhbiBpZnJhbWUgdGhhdCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBt
YWluIHBhZ2UuIl9zKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9u
U3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAgaWYgKGF1dG8gcGVybWlzc2lvblN0YXRlID0g
ZG9jdW1lbnQuZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpKQorICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZXNvbHZlKCpwZXJtaXNzaW9uU3RhdGUgPyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50
ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1l
bnQucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2
ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGRvY3VtZW50LnRvcE9y
aWdpbigpLCBbZG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShib29sIGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoZG9jdW1l
bnQpCisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0
ZShncmFudGVkKTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGdyYW50ZWQgPyBQZXJtaXNzaW9u
U3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfSk7Cit9Cisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmgKaW5kZXggMDI1YjJlMzJhNzUxZTQyZjY1MGJiNTNiNTE1YTEw
YmRiNTI3ZjQ3OC4uMTZlMzNhZjkxOTg0NjFmNmVjMjYxNGY2YTNmNTgyMTlmZGY2ZDQyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCkBAIC0yNiwxMCAr
MjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJK
U0RPTVByb21pc2VEZWZlcnJlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERl
dmljZU9yaWVudGF0aW9uRGF0YTsKK2NsYXNzIERvY3VtZW50OwogCiBjbGFzcyBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKQEAgLTYwLDYgKzYy
LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXREZXZpY2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIE9wdGlv
bmFsPGRvdWJsZT4gYWxwaGEsIE9wdGlvbmFsPGRvdWJsZT4gYmV0YSwgT3B0aW9uYWw8ZG91Ymxl
PiBnYW1tYSwgT3B0aW9uYWw8Ym9vbD4gYWJzb2x1dGUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorICAgIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIHsgR3Jh
bnRlZCwgRGVuaWVkIH07CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBET01Qcm9taXNl
RGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47CisgICAgc3RhdGljIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlzZSYmKTsKKyNl
bmRpZgorCiBwcml2YXRlOgogICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQoKTsKICAgICBEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VP
cmllbnRhdGlvbkRhdGEqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmlkbAppbmRleCAxM2ZmN2JhZGMwZTU5MTE2NjM1OTVkMTVkMTFkYmQ2MGEzMzM5ZmRi
Li42OTI5OWZjNWU2MjgwZWMxMTNmYzMyYzY2MDE5YjNlY2JmNDdkYjJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCkBAIC0zMCw2ICszMCw4IEBA
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGJldGE7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGdhbW1hOwogCisgICAgW0Nh
bGxXaXRoPURvY3VtZW50LCBFbmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVudGF0aW9uUGVybWlz
c2lvbkFQSV0gc3RhdGljIFByb21pc2U8UGVybWlzc2lvblN0YXRlPiByZXF1ZXN0UGVybWlzc2lv
bigpOworCiAgICAgLy8gRklYTUU6IENvbnNpZGVyIGRlZmluaW5nIGFuIEVOQUJMRSBtYWNybyBm
b3IgaU9TIGRldmljZSBvcmllbnRhdGlvbiBjb2RlIGFuZC9vciBtb2RpZnlpbmcKICAgICAvLyB0
aGUgYmluZGluZ3Mgc2NyaXB0cyB0byBzdXBwb3J0IGdlbmVyYXRpbmcgbW9yZSBjb21wbGljYXRl
ZCBjb25kaXRpb25hbCBjb2RlLgogI2lmIGRlZmluZWQoV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkp
ICYmIFdURl9QTEFURk9STV9JT1NfRkFNSUxZCkBAIC01NSwzICs1Nyw0IEBACiAjZW5kaWYKIH07
CiAKK2VudW0gUGVybWlzc2lvblN0YXRlIHsgImdyYW50ZWQiLCAiZGVuaWVkIiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggMTQyOTI3ODZjYzhlZmVlZjViMWEyZmMxNWRjNzEwYmZlYzFj
MzExMC4uNGY4YmQ4MmVkNzA0Y2FhMGE4NzYzOTE3ZGZhMGE2OTE1YWNjZmM4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC04NjM4LDYgKzg2MzgsNTggQEAgdm9pZCBEb2N1bWVudDo6ZnJh
bWVXYXNEaXNjb25uZWN0ZWRGcm9tT3duZXIoKQogICAgIGRldGFjaEZyb21GcmFtZSgpOwogfQog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworY29uc3QgT3B0aW9uYWw8Ym9vbD4m
IERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlKCkgY29uc3QKK3sKKyAgICBp
ZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykKKyAgICAgICAgcmV0dXJuIHRvcERvY3VtZW50KCku
ZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpOworCisgICAgcmV0dXJuIG1fZGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NTdGF0ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlT3JpZW50
YXRpb25BY2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpCit7CisgICAgaWYgKCZ0b3BEb2N1bWVudCgp
ICE9IHRoaXMpIHsKKyAgICAgICAgdG9wRG9jdW1lbnQoKS5zZXREZXZpY2VPcmllbnRhdGlvbkFj
Y2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9kZXZp
Y2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlID0gZ3JhbnRlZDsKKworICAgIGlmICghZ3JhbnRlZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvKiBmcmFtZSA9IG1fZnJhbWU7IGZyYW1l
ICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCht
X2ZyYW1lKSkKKyAgICAgICAgZnJhbWUtPndpbmRvdygpLT5zdGFydExpc3RlbmluZ0ZvckRldmlj
ZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKK30KKworY29uc3QgT3B0aW9uYWw8Ym9vbD4mIERv
Y3VtZW50OjpkZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKCZ0b3BE
b2N1bWVudCgpICE9IHRoaXMpCisgICAgICAgIHJldHVybiB0b3BEb2N1bWVudCgpLmRldmljZU1v
dGlvbkFjY2Vzc1N0YXRlKCk7CisKKyAgICByZXR1cm4gbV9kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0
ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoYm9vbCBn
cmFudGVkKQoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAhPSB0aGlzKSB7CisgICAgICAgIHRv
cERvY3VtZW50KCkuc2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoZ3JhbnRlZCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX2RldmljZU1vdGlvbkFjY2Vzc1N0YXRlID0gZ3JhbnRl
ZDsKKworICAgIGlmICghZ3JhbnRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRv
KiBmcmFtZSA9IG1fZnJhbWU7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChtX2ZyYW1lKSkKKyAgICAgICAgZnJhbWUtPndpbmRvdygp
LT5zdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7Cit9CisKKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiBXb3JrbGV0JiBEb2N1bWVudDo6ZW5z
dXJlUGFpbnRXb3JrbGV0KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNzc4YzIxMzNjNTQz
NTdkZDY3NzE5OWRmNzE5NDE3YjNlZGU5MzExYS4uYjhiNDY5MWQxNTUyZDgxMGI3ZmVhMzgzOTAw
ZmQ5ODEwYjFmMWZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyMTQsMTIgKzEyMTQsMTkg
QEAgcHVibGljOgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudElPUy5oPgogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFN
SUxZKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyJiBkZXZpY2VNb3Rpb25Db250cm9sbGVy
KCkgY29uc3Q7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyJiBkZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNpbXVsYXRl
RGV2aWNlT3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91Ymxl
IGdhbW1hKTsKICNlbmRpZgogCisgICAgY29uc3QgT3B0aW9uYWw8Ym9vbD4mIGRldmljZU9yaWVu
dGF0aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9u
QWNjZXNzU3RhdGUoYm9vbCBncmFudGVkKTsKKyAgICBjb25zdCBPcHRpb25hbDxib29sPiYgZGV2
aWNlTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERldmljZU1vdGlvbkFj
Y2Vzc1N0YXRlKGJvb2wgZ3JhbnRlZCk7CisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKKwogICAgIGNvbnN0IERvY3VtZW50VGltaW5nJiB0aW1pbmcoKSBjb25zdCB7IHJldHVy
biBtX2RvY3VtZW50VGltaW5nOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgbW9ub3Rv
bmljVGltZXN0YW1wKCkgY29uc3Q7CkBAIC0xODMxLDYgKzE4MzgsMTEgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fYXJlRnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuIHsgZmFsc2UgfTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBPcHRpb25hbDxib29sPiBtX2Rl
dmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGU7CisgICAgT3B0aW9uYWw8Ym9vbD4gbV9kZXZpY2VN
b3Rpb25BY2Nlc3NTdGF0ZTsKKyNlbmRpZgorCiAgICAgSGFzaFNldDxIVE1MUGljdHVyZUVsZW1l
bnQqPiBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXM7CiAgICAgSGFzaFNldDxIVE1MUGljdHVy
ZUVsZW1lbnQqPiBtX2FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlczsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKaW5kZXggM2EwZGMzYmIwM2RjZDcwYmU5NGVmNGI5ODYyMWQ5Nzk1NjBl
N2ViYS4uZDAwOWE4NGQyY2I3OThkYWE5ZTRiOTM4ZGYzNmMxM2JlMmU0ZWI3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00ODIsNiArNDgyLDExIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcmJiAvKnN1YkZyYW1lSG9zdCovLCBT
dHJpbmcmJiAvKnRvcEZyYW1lSG9zdCovLCB1aW50NjRfdCAvKmZyYW1lSUQqLywgdWludDY0X3Qg
LypwYWdlSUQqLywgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFj
aykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VB
Y2Nlc3MoU3RyaW5nJiYgLypzdWJGcmFtZUhvc3QqLywgU3RyaW5nJiYgLyp0b3BGcmFtZUhvc3Qq
LywgdWludDY0X3QgLypmcmFtZUlEKi8sIHVpbnQ2NF90IC8qcGFnZUlEKi8sIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soZmFsc2UpOyB9
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxi
YWNrKHRydWUpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKHRydWUpOyB9CisjZW5kaWYKKwogICAg
IHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRNZW51RWxlbWVudChIVE1MTWVudUVsZW1lbnQmKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTWVudUVsZW1lbnQoSFRNTE1lbnVFbGVtZW50Jikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVJdGVtRWxlbWVudChIVE1MTWVudUl0
ZW1FbGVtZW50JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZGZhMTEyNDg0
YTNhNDc3ZTNkYzAyMmEzNGNhMzRkZjNmZmE5M2UzMi4uOTQ5MWJkN2RiY2QyNmRkYzYxYjUzNWY1
NTNmMWViYjhlOGRhZGViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTgyNiw1
MCArMTgyNiwxMjQgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmUKICAgICBlbHNlIGlmIChldmVu
dE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAgICAgIGluY3JlbWVu
dEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZp
Y2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAgICBzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVu
dGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRldmljZW1vdGlvbkV2ZW50KQorICAgICAgICBzdGFydExpc3RlbmluZ0ZvckRldmljZU1v
dGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworfQogCiAjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5z
ZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkgJiYgZG9jdW1lbnQoKSAm
JiBkb2N1bWVudCgpLT5sb2FkZXIoKSAmJiBkb2N1bWVudCgpLT5sb2FkZXIoKS0+ZGV2aWNlT3Jp
ZW50YXRpb25FdmVudEVuYWJsZWQoKSkgeworCitEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
IERPTVdpbmRvdzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29uc3QKK3sKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBpZiAoKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlbW90aW9uRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vv
cmllbnRhdGlvbkV2ZW50KSkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNlY3VyaXR5T3JpZ2lu
QXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICAgICAgICAgIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpCi0gICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigp
LmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLmFk
ZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChkb2N1
bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU2VjdXJlQ29udGV4dCgpKQotICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRl
dmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgZnJvbSBjaGlsZCBmcmFtZSB0aGF0
IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZS4iX3MpOwot
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywg
IkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxp
c3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3MpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyAmZG9jdW1l
bnQoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgOiBudWxscHRyOwogI2Vsc2UKLSAg
ICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpIHsK
LSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkgJiYgaXNT
ZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJv
bGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkK
LSAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigq
dGhpcyk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5n
LCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gbGlzdGVuZXIgZnJvbSBj
aGlsZCBmcmFtZSB0aGF0IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1h
aW4gcGFnZS4iX3MpOwotICAgICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNlY3Vy
aXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICAg
ICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgICAgICAg
ICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChpc1NlY3VyZUNvbnRleHQoKSkKLSAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBk
ZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIgZnJvbSBjaGlsZCBmcmFtZSB0aGF0IHdhc24ndCB0
aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZS4iX3MpOwotICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQg
YXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJl
Y2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3MpOwotICAgICAgICAg
ICAgfQorICAgIHJldHVybiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgp
KTsKKyNlbmRpZgorfQorCitEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBET01XaW5kb3c6OmRldmlj
ZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgcmV0dXJuIGRvY3VtZW50KCkgPyAmZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxl
cigpIDogbnVsbHB0cjsKKyNlbHNlCisgICAgcmV0dXJuIERldmljZU1vdGlvbkNvbnRyb2xsZXI6
OmZyb20ocGFnZSgpKTsKKyNlbmRpZgorfQorCitib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9V
c2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgU3RyaW5n
JiBtZXNzYWdlKSBjb25zdAoreworICAgIGlmICghZnJhbWUoKSB8fCAhZnJhbWUoKS0+c2V0dGlu
Z3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpIHx8ICFkb2N1bWVudCgpIHx8ICFk
b2N1bWVudCgpLT5sb2FkZXIoKSB8fCAhZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRldmljZU9yaWVu
dGF0aW9uRXZlbnRFbmFibGVkKCkpIHsKKyAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIkJs
b2NrZWQgYXR0ZW1wdCB0byBhZGQgYSAiLCBldmVudFR5cGUsICIgZXZlbnQgbGlzdGVuZXIgYmVj
YXVzZSB0aGUgQVBJIGlzIGRpc2FibGVkLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgaWYgKCFpc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBtZXNzYWdlID0gbWFr
ZVN0cmluZygiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhICIsIGV2ZW50VHlwZSwgIiBldmVudCBs
aXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWlzU2FtZVNlY3VyaXR5T3Jp
Z2luQXNNYWluRnJhbWUoKSkgeworICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiQmxvY2tl
ZCBhdHRlbXB0IHRvIGFkZCBhICIsIGV2ZW50VHlwZSwgIiBldmVudCBsaXN0ZW5lciBmcm9tIGNo
aWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFp
biBwYWdlLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGZyYW1l
KCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7
CisgICAgICAgIGF1dG8gcGVybWlzc2lvblN0YXRlID0gKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkgPyBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1N0YXRlKCkgOiBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpOwor
ICAgICAgICBpZiAocGVybWlzc2lvblN0YXRlICYmICEqcGVybWlzc2lvblN0YXRlKSB7CisgICAg
ICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiTm8gIiwgZXZlbnRUeXBlLCAiIGV2ZW50cyB3
aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVk
LiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0jZW5kaWYgLy8gUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlbW90aW9uRXZlbnQpCi0gICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rp
b25FdmVudExpc3RlbmVyKCk7Ci0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
KyAgICAgICAgaWYgKCFwZXJtaXNzaW9uU3RhdGUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBt
YWtlU3RyaW5nKCJObyAiLCBldmVudFR5cGUsICIgZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwg
cGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuIik7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERPTVdpbmRvdzo6c3RhcnRM
aXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIWhh
c0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcigpOworICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VD
b250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2
aWNlTW90aW9uT3JpZW50YXRpb24oZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQs
IGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBlcnJvck1lc3NhZ2UpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgZGV2aWNlQ29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRM
aXN0ZW5lcigqdGhpcyk7Cit9CisKK3ZvaWQgRE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2
aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKGhhc0V2ZW50TGlzdGVuZXJz
KGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGF1dG8qIGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIoKSkKKyAgICAgICAgZGV2aWNlQ29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0
ZW5lcigqdGhpcyk7Cit9CisKK3ZvaWQgRE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmlj
ZU1vdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50
TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8q
IGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCk7CisgICAgaWYgKCFk
ZXZpY2VDb250cm9sbGVyIHx8IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVu
ZXIoKnRoaXMpKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwor
ICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihldmVudE5hbWVz
KCkuZGV2aWNlbW90aW9uRXZlbnQsIGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgZmFpbGVkVG9S
ZWdpc3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKKyAgICAgICAgaWYgKGF1dG8qIGRv
Y3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBlcnJv
ck1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZGV2aWNlQ29udHJvbGxl
ci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9CisKK3ZvaWQgRE9NV2luZG93Ojpz
dG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKQoreworICAgIGlmIChoYXNF
dmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoYXV0byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU1vdGlvbkNv
bnRyb2xsZXIoKSkKKyAgICAgICAgZGV2aWNlQ29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRM
aXN0ZW5lcigqdGhpcyk7Cit9CiAKIHZvaWQgRE9NV2luZG93OjpmYWlsZWRUb1JlZ2lzdGVyRGV2
aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpCiB7CkBAIC0xOTQxLDIyICsyMDE1LDYgQEAgYm9vbCBE
T01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIEV2ZW50TGlzdGVuZXIKICAgICAgICAgcmVtb3ZlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlz
KTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmJlZm9yZXVubG9hZEV2
ZW50ICYmIGFsbG93c0JlZm9yZVVubG9hZExpc3RlbmVycyh0aGlzKSkKICAgICAgICAgcmVtb3Zl
QmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlzKTsKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgZWxzZSBpZiAoZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCAmJiBkb2N1bWVudCgpKQotICAgICAg
ICBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkucmVtb3ZlRGV2aWNlRXZlbnRM
aXN0ZW5lcigqdGhpcyk7Ci0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
ZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYmIGRvY3VtZW50KCkpCi0gICAgICAgIGRvY3VtZW50KCkt
PmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIo
KnRoaXMpOwotI2Vsc2UKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRl
dmljZW1vdGlvbkV2ZW50KSB7Ci0gICAgICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBj
b250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAg
ICAgICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZl
bnQpIHsKLSAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxl
ciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAg
ICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgfQot
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xsRXZlbnQpCiAgICAgICAgIGRlY3JlbWVudFNjcm9s
bEV2ZW50TGlzdGVuZXJzQ291bnQoKTsKQEAgLTE5NzcsNiArMjAzNSwxMiBAQCBib29sIERPTVdp
bmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
RXZlbnRMaXN0ZW5lcgogICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc0dhbWVwYWRFdmVudFR5
cGUoZXZlbnRUeXBlKSkKICAgICAgICAgZGVjcmVtZW50R2FtZXBhZEV2ZW50TGlzdGVuZXJDb3Vu
dCgpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBlbHNlIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpCisgICAg
ICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkKKyAg
ICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYK
IAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjA1OSwxOCArMjEyMyw5IEBAIHZvaWQgRE9NV2lu
ZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAgICAgRXZlbnRUYXJnZXQ6OnJlbW92ZUFs
bEV2ZW50TGlzdGVuZXJzKCk7CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMt
PmRvY3VtZW50KCkpIHsKLSAgICAgICAgZG9jdW1lbnQtPmRldmljZU1vdGlvbkNvbnRyb2xsZXIo
KS5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycygqdGhpcyk7Ci0gICAgICAgIGRvY3VtZW50
LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3Rl
bmVycygqdGhpcyk7Ci0gICAgfQotI2Vsc2UKLSAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxl
ciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAg
ICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwot
ICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+
cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAg
ICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICAg
ICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKG1fc2Nyb2xsRXZlbnRMaXN0ZW5lckNv
dW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBiYmJmYTk1ODcyZTRhMzNlNzM0MjUy
ODFlNGFjY2I0ZjcwNTliMWM0Li4yOTg5NGJhMjNjYmMzMmJlZWUzZWE0ZWE4Y2M2OGM5MzFmNGQ2
MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTgyLDYgKzgyLDExIEBAIGNsYXNzIFZp
c3VhbFZpZXdwb3J0OwogY2xhc3MgV2ViS2l0TmFtZXNwYWNlOwogY2xhc3MgV2ViS2l0UG9pbnQ7
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorY2xhc3MgRGV2aWNlTW90aW9uQ29u
dHJvbGxlcjsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKKyNlbmRpZgorCiBz
dHJ1Y3QgSW1hZ2VCaXRtYXBPcHRpb25zOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0z
MTEsNiArMzE2LDE3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBzY3JvbGxFdmVudExpc3RlbmVy
Q291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudDsgfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgc3RhcnRMaXN0
ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgdm9pZCBzdG9wTGlz
dGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgc3RhcnRM
aXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgc3RvcExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgYm9vbCBpc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGNvbnN0IFN0cmluZyYgZXZlbnRUeXBlLCBTdHJpbmcm
IG1lc3NhZ2UpIGNvbnN0OworCisgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBkZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKKyAgICBEZXZpY2VNb3Rpb25Db250cm9s
bGVyKiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3Q7CisjZW5kaWYKKwogICAgIHZvaWQg
cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb24oKTsKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hf
RVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGV2aWNlQ29udHJvbGxlci5jcHAKaW5kZXggMzM2N2QzZGJmNTlmYzMzNTcyNDk3NThhYzYzZGQx
NzI1ZTA3NjM2Ni4uODQyYjg1NGVlMjUxMjU4YTQxMDYyYmZlMGQwNjU0NGVkYjNjNmZhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBAIC02OSw2ICs2OSwxMSBA
QCB2b2lkIERldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKERP
TVdpbmRvdyYgd2luZG93KQogICAgICAgICBtX2NsaWVudC5zdG9wVXBkYXRpbmcoKTsKIH0KIAor
Ym9vbCBEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYg
d2luZG93KSBjb25zdAoreworICAgIHJldHVybiBtX2xpc3RlbmVycy5jb250YWlucygmd2luZG93
KTsKK30KKwogdm9pZCBEZXZpY2VDb250cm9sbGVyOjpkaXNwYXRjaERldmljZUV2ZW50KEV2ZW50
JiBldmVudCkKIHsKICAgICBmb3IgKGF1dG8mIGxpc3RlbmVyIDogY29weVRvVmVjdG9yKG1fbGlz
dGVuZXJzLnZhbHVlcygpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZp
Y2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaApp
bmRleCBlMTYwMzg1YWZlMmY5NzM1M2MwZWEyMmYyOWU4NTZmMThlMjBiMWE4Li4zZDVmOTBjNTBl
ZTRhNTRmYzBhZDE3YzY0NzM1ZGQ2OTM4NzNmZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGREZXZp
Y2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYpOwogICAgIHZvaWQgcmVtb3ZlRGV2aWNlRXZlbnRM
aXN0ZW5lcihET01XaW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVu
ZXJzKERPTVdpbmRvdyYpOworICAgIGJvb2wgaGFzRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5k
b3cmKSBjb25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hEZXZpY2VFdmVudChFdmVudCYpOwogICAg
IGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMzAzZDdmODJkNGIzN2ZkYmExYjdmMmRkNGE4ZGEy
NTdlOGFiOTc3Yy4uZTgyNGRmNzZhODQyZjMyMDdmYWUwZWNlNjQ0NGU5ZTJmMjQ1ZWZlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNzY0LDYgKzc2NCwxMSBAQCBkZXZpY2VPcmll
bnRhdGlvbkV2ZW50RW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogICBjb25kaXRpb25hbDogREVW
SUNFX09SSUVOVEFUSU9OCiAKK2RldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgaW5pdGlhbDogZmFsc2UKKyAgY29uZGl0aW9uYWw6IERFVklDRV9P
UklFTlRBVElPTgorCiBzaG91bGRFbmFibGVUZXh0QXV0b3NpemluZ0Jvb3N0OgogICB0eXBlOiBi
b29sCiAgIGluaXRpYWw6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbAppbmRleCBmNTU4NDMyNTkwZmJkZWI2ODk3OTNlMGI0OWIyNjc3ODQxNjdkMmVhLi44NDkz
MWFkZjkyMjI2ZGEwNDI2ZDcxMmEzMTRkY2U4YzhhZjYzZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEyLDYgKzEyLDE1IEBAIERldmljZU9yaWVudGF0
aW9uRXZlbnRFbmFibGVkOgogICBjb25kaXRpb246IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CiAgIHdlYmNvcmVOYW1lOiBkZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZAogCitEZXZpY2VP
cmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRW
YWx1ZTogZmFsc2UKKyAgY29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICB3
ZWJjb3JlTmFtZTogZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZAorICBodW1h
blJlYWRhYmxlTmFtZTogIlBlcm1pc3Npb24gQVBJIGZvciBkZXZpY2Ugb3JpZW50YXRpb24gLyBt
b3Rpb24gYWNjZXNzLiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRGV2aWNlT3JpZW50
YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIC8gRGV2aWNlTW90aW9uRXZlbnQucmVxdWVz
dFBlcm1pc3Npb24oKSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorCiBKYXZhU2NyaXB0RW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggM2VjNmYwMGQyNGZjOTM5NDI2OTBhM2U3
MjlmZDA3ZWQ3YTNhYTZjNy4uZmE5OWRjNWE2OTM4YzZhZjFkN2M1NDM5YzBkYmRmMjQ1NGEzOWY0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE3Myw2
ICsxNzMsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2so
V2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0
aW9uSGFuZGxlcih0cnVlKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9u
QWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21w
bGV0aW9uSGFuZGxlcih0cnVlKTsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xp
Y2tBdXRvRmlsbEJ1dHRvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFy
YW5jZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYTQxNjc2NmUyYjM4M2UxYjUxNDQ4ZmM5Y2M0
MDJjMDFmMWJlYjNhYS4uMWZmNGNlYjQzMzViZjQ4YWE5MmU3MzJkODEwNjMwZGRmMzQzMTJlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xMTUsNyArMTE1
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJh
c2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVu
dEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdl
VUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlD
bGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGll
bnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRW
MTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMj4gVmVyc2lvbnM7CisgICAg
dHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdL
UGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFn
ZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJ
Q2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNs
aWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTIsIFdLUGFnZVVJQ2xpZW50VjEzPiBWZXJzaW9uczsK
IH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTE5MDMsNiArMTkwMywyNCBAQCB2
b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdl
VUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGllbnQucmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKHRvQVBJKCZwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShyZXF1ZXN0
aW5nRG9tYWluLmltcGwoKSksIHRvQVBJKGN1cnJlbnREb21haW4uaW1wbCgpKSwgdG9BUEkobGlz
dGVuZXIucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VP
cmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKG1fY2xpZW50LnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b24odG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3JpZ2luKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5h
bAorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnJlcXVlc3REZXZpY2VNb3Rp
b25BY2Nlc3NQZXJtaXNzaW9uKQorICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcih0cnVlKTsKKworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobV9jbGllbnQucmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24odG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3Jp
Z2luKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSk7CisgICAgICAgIH0KKyNlbmRpZgorCiAg
ICAgICAgIC8vIFByaW50aW5nLgogICAgICAgICBmbG9hdCBoZWFkZXJIZWlnaHQoV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSkgZmluYWwKICAgICAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggNWU1OTcz
ZjlhYjE4YjQ2YTY1ZWZlMDhlZGY1ZjM1MDdhNzc1ZGYwYi4uNzQ3NjhkNGExZGU0MWZjOGUwOTYy
NjRmZjhlZjY5ZjYzMTk1MGE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VVSUNsaWVudC5oCkBAIC0xMzQsNiArMTM0LDggQEAgdHlwZWRlZiB2b2lkICgqV0tE
aWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNs
aWVudEkKIHR5cGVkZWYgdm9pZCAoKldLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFu
Z2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1
cmUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tEaWRFeGNlZWRC
YWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS1Jlc291cmNlTGltaXQgbGltaXQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
dHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRB
cHBlYXJhbmNlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgqV0tQYWdlUmVxdWVzdERldmlj
ZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tT
ZWN1cml0eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
Cit0eXBlZGVmIGJvb2wgKCpXS1BhZ2VSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lv
bkNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBzZWN1cml0eU9y
aWdpbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQKIHR5cGVkZWYg
V0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRN
b2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMTE0MCw2ICsxMTQyLDExMSBAQCB0eXBlZGVmIHN0cnVj
dCBXS1BhZ2VVSUNsaWVudFYxMiB7CiAgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25m
aXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm07CiB9IFdLUGFnZVVJQ2xpZW50VjEyOwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VV
SUNsaWVudFYxMyB7CisgICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgor
ICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAg
ICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAg
IFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZTsKKyAgICBXS1BhZ2VU
YWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzOworICAgIFdLUGFnZVVuZm9jdXND
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5m
b2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9y
VXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNl
V2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7CisgICAgV0tQYWdl
TW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAg
ICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAg
IFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OworICAgIFdLUGFnZURp
ZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAgICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2li
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlz
aWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VH
ZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxl
OworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldFN0YXR1
c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7CisgICAgV0tQ
YWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFdpbmRvd0ZyYW1lOwor
ICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNiAgICBydW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWNjsKKyAgICBXS1BhZ2VVSUNs
aWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOworICAgIFdLUGFnZUV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBhbmVsOworICAg
IFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFj
ayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
KyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlckhlaWdo
dDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVy
OworICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOwor
ICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJh
bmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVy
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNG
b2xkZXI7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxh
YmxlOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFj
a19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9k
ZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxs
YmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFn
ZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOwor
ICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworCisgICAgLy8g
VmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7CisKKyAgICAv
LyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJl
Z2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNl
ZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKKwor
ICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRv
bjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0
aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVz
ZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZv
clVzZVdpdGhWNTsKKyAgICBXS1BhZ2VNZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdl
OworCisgICAgLy8gVmVyc2lvbiA2LgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKKyAg
ICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0
Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFT
Y3JpcHRDb25maXJtOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBX
S0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbjsKKworICAgIC8vIFZl
cnNpb24gNy4KKyAgICBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAg
ICBXS0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZTsKKworICAgIC8vIFZlcnNp
b24gOC4KKyAgICBXS1JlcXVlc3RQb2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RQb2ludGVyTG9jazsKKyAgICBXS0RpZExvc2VQ
b2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpZExvc2VQb2ludGVyTG9jazsKKworICAgIC8vIFZlcnNpb24gOS4KKyAgICBXS0hhbmRsZUF1
dG9wbGF5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhhbmRsZUF1dG9wbGF5RXZlbnQ7CisKKyAgICAvLyBWZXJzaW9uIDEwLgorICAgIFdLSGFzVmlk
ZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2U7CisgICAgV0tEaWRFeGNlZWRC
YWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2sgICAgICAgICBk
aWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOworCisgICAg
Ly8gVmVyc2lvbiAxMS4KKyAgICBXS1BhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNz
d29yZEFwcGVhcmFuY2VDYWxsYmFjayAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9u
Z1Bhc3N3b3JkQXBwZWFyYW5jZTsKKworICAgIC8vIFZlcnNpb24gMTIuCisgICAgV0tQYWdlUmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm07CisKKyAgICAvLyBWZXJzaW9uIDEzLgorICAg
IFdLUGFnZVJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjayAg
ICAgICAgICAgICAgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbjsKKyAg
ICBXS1BhZ2VSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbkNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uOworfSBXS1Bh
Z2VVSUNsaWVudFYxMzsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0
ZS5oCmluZGV4IGRiZDA1M2U3ZmJkMGEwOTVmMDg4OGE3ZWRhMGJjMmJiYTczZTI1MzIuLjFjMmQw
NjUyZDBlYmU5MzEyYTZjOGZlYTUyMmU1MTM1MmJlMmUxNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAt
MTE0LDYgKzExNCw5IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tO
YXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5k
b3dGZWF0dXJlcyAqKXdpbmRvd0ZlYXR1cmVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShX
S1dlYlZpZXcgKndlYlZpZXcpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyAq
KWZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhbGxvd2VkKSlkZWNpc2lvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdERldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICop
c2VjdXJpdHlPcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3REZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4g
KilzZWN1cml0eU9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRl
ZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wgcmVzdWx0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGVkaXRvclN0YXRlRGlkQ2hhbmdlOihOU0RpY3Rpb25hcnkgKillZGl0b3JTdGF0ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IGNjYjc4YTI5ZTJhNGMyZmYxNmQ0MjUy
NWFlNWU0NjBhNzg5YmI3YTMuLmVmNzE2OGEzYTUwMjRlZGUxODg2OWQ2ODNiODkzZTEyN2E0NDU4
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTEx
OSw2ICsxMTksMTAgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFn
ZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VM
aW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKFdlYlBhZ2VQcm94eSYsIFdLUmVzb3VyY2VMaW1pdCkgZmlu
YWw7CiAgICAgICAgIHZvaWQgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJQYWdl
UHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgVVJM
JiwgQVBJOjpEYXRhJikgZmluYWw7CisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgICAgIHZvaWQgcmVxdWVzdERldmlj
ZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAjZW5k
aWYKICAgICAgICAgYm9vbCBuZWVkc0ZvbnRBdHRyaWJ1dGVzKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0
cmlidXRlczsgfQogICAgICAgICB2b2lkIGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdl
YkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikgZmluYWw7CkBAIC0xODcsNiArMTkxLDEwIEBAIHByaXZh
dGU6CiAgICAgICAgIGJvb2wgd2ViVmlld1NhdmVEYXRhVG9GaWxlU3VnZ2VzdGVkRmlsZW5hbWVN
aW1lVHlwZU9yaWdpbmF0aW5nVVJMIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3UnVuT3BlblBh
bmVsV2l0aFBhcmFtZXRlcnNJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgOiAxOwog
ICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3Vy
aXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyIDogMTsKKyNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3REZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7Cisg
ICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRm9y
U2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOwogI2VuZGlmCiAgICAgICAgIGJvb2wg
d2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YUN1
cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9u
SGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9y
aWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVy
IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4
IGI1YTBhNTA4YmM5OTZkM2M5YTk3ZjkzYWYzZWEzZjkyNTA5N2Y2NjUuLmJmNTRkNTJjNmM2YjNk
NmM4YzVhYmJhY2ZmMTllZmQ1YmE0NWNjOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTMyLDYgKzEzMiwxMCBAQCB2b2lkIFVJRGVsZWdhdGU6
OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdTYXZlRGF0YVRvRmlsZVN1Z2dlc3RlZEZpbGVuYW1lTWltZVR5cGVPcmln
aW5hdGluZ1VSTCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OnNhdmVEYXRhVG9GaWxlOnN1Z2dlc3RlZEZpbGVuYW1lOm1pbWVUeXBlOm9yaWdpbmF0aW5n
VVJMOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFy
YW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuT3BlblBhbmVsV2l0aFBhcmFtZXRl
cnM6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9y
aWdpbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmln
aW46ZGVjaXNpb25IYW5kbGVyOildOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdERldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdERldmlj
ZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFu
ZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdERldmljZU1vdGlv
bkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3REZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOild
OwogI2VuZGlmCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVv
dGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnRE
YXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZURhdGFiYXNlUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbjpjdXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRh
YmFzZVVzYWdlOmV4cGVjdGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5EYXRh
YmFzZU5hbWVEaXNwbGF5TmFtZUN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnRE
YXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZURhdGFiYXNlUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbjpkYXRhYmFzZU5hbWU6ZGlzcGxheU5hbWU6Y3VycmVudFF1b3RhOmN1cnJl
bnRPcmlnaW5Vc2FnZTpjdXJyZW50RGF0YWJhc2VVc2FnZTpleHBlY3RlZFVzYWdlOmRlY2lzaW9u
SGFuZGxlcjopXTsKQEAgLTg0NCw2ICs4NDgsNDQgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6cnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHIK
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgVUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24o
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdERl
dmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25I
YW5kbGVyKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBh
dXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFk
ZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAg
YXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVn
YXRlLmdldCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICBb
KGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUu
bV93ZWJWaWV3IHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1
cml0eU9yaWdpbjp3cmFwcGVyKHNlY3VyaXR5T3JpZ2luKSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBj
aGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0gKEJPT0wgZ3JhbnRlZCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVy
KCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOworICAgIH0pLmdldCgpXTsK
K30KKwordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vz
c1Blcm1pc3Npb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBz
ZWN1cml0eU9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3UmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRl
Y2lzaW9uSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwor
CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAg
IGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsK
KworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0
ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOikpOworICAg
IFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0
ZS5tX3dlYlZpZXcgcmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0
eU9yaWdpbjp3cmFwcGVyKHNlY3VyaXR5T3JpZ2luKSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJsb2Nr
UHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVj
a2VyID0gV1RGTW92ZShjaGVja2VyKV0gKEJPT0wgZ3JhbnRlZCkgbXV0YWJsZSB7CisgICAgICAg
IGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOworICAgIH0pLmdldCgpXTsKK30K
KyNlbmRpZgorCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRDaGFuZ2VGb250QXR0cmli
dXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRlcyYgZm9udEF0dHJpYnV0ZXMpCiB7CiAg
ICAgaWYgKCFuZWVkc0ZvbnRBdHRyaWJ1dGVzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCAyNDU1MGU0OWQ4Y2YxZGU0ODhiOTc1MmUxMmFiMzAzZjFjZjM1
MzAwLi4xZDEyZTUxY2JjZGU0YzRkNTFiNGJhN2M2MjdjNjAyNzdmZGQwZDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTcxNjgsNiArNzE2OCwyOCBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVkaWFTdGF0ZSgpCiAjZW5kaWYKIH0KIAorI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdERl
dmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiBvcmlnaW5EYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8gb3JpZ2lu
ID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4o
KSk7CisgICAgbV91aUNsaWVudC0+cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlz
c2lvbigqdGhpcywgb3JpZ2luLmdldCgpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyksIGNhbGxiYWNrSURdKGJvb2wgZ3JhbnRlZCkgeworICAgICAgICBpZiAoIXdlYWtUaGlz
IHx8ICFpc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9u
QWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKGNhbGxiYWNrSUQsIGdyYW50ZWQpLCBtX3BhZ2VJRCk7
CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1
aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVu
dC0+cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oKnRoaXMsIG9yaWdpbi5nZXQo
KSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjYWxsYmFja0lEXShib29s
IGdyYW50ZWQpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhaXNWYWxpZCgpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbk1vdGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lv
bihjYWxsYmFja0lELCBncmFudGVkKSwgbV9wYWdlSUQpOworICAgIH0pOworfQorI2VuZGlmCisK
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNS
ZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCAyMTU1ZDE0MmU0NGZiYTU0NDU4YmM3MWY1MzkxYmU2ZTA5YjRlODAzLi4zMjc0
MzJkOWNmODU4YzViNWY1ZGNmNmZhNzZjNmRlOGQxNThhY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQwMSw2ICsxNDAxLDExIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHJl
cXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgorCiAgICAgc3RhdGljIFdlYlBh
Z2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CiAKICNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IGU4NjRkNGE5NmZiNjdmOWE1M2YxZDYwOWM2OWY3NzY1MjEzODRh
MDAuLmEwNTk3ZTljMDhiNjM2Mjk2M2JkYjU1ZDJkMzYxZjM5MjQ5ZmU3MjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTUzMiw2
ICs1MzIsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTdG9wVVJMU2NoZW1l
VGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIp
CiAgICAgTG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hl
bWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgSVBDOjpEYXRhUmVmZXJl
bmNlIGRhdGEpIERlbGF5ZWQKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAg
UmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgUmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworI2VuZGlmCisKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIFJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZp
ZXJGcm9tRGF0YShTdHJpbmcgaWRlbnRpZmllciwgU3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJpbmcg
cHJlZmVycmVkRmlsZU5hbWUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhKQog
ICAgIFJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXJGcm9tRmlsZVBhdGgoU3RyaW5nIGlkZW50
aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIGZpbGVQYXRoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAppbmRleCA2N2ZkN2E3MjBjZTJmMzM5NzcwMzUxNDhiZGJkMmNlZmE3YzdmZDM1Li43
ZjUwNTcwZGM0YTNkMGZlMWQwNTlmZmQ5NWU4MmNiMWM2Mzk1Yzk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtMTMyMCw0ICsxMzIwLDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyCiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBT
ZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNh
bGxiYWNrKQoreworICAgIG1fcGFnZS5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJt
aXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjYWxsYmFjaykpOworfQorCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykK
K3sKKyAgICBtX3BhZ2UucmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24ob3JpZ2lu
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjkyNmEyNThhZDg1YWIwNzc5MTZkMGNiMjM1Mjg0ZDhl
YjNiZGFhNy4uMzAzNDNkZWYxZWY1ZmYyOTU5YzQwMGUzZjQ4YTQ2NTdhZTdkYjk3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMzY2LDYgKzM2NiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFt
ZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkIChib29sKT4mJikgZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworI2VuZGlmCisKICAgICBTdHJpbmcgbV9jYWNo
ZWRUb29sVGlwOwogICAgIG11dGFibGUgUmVmUHRyPFdlYkZyYW1lPiBtX2NhY2hlZEZyYW1lU2V0
TGFyZ2VzdEZyYW1lOwogICAgIG11dGFibGUgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUhhc0hvcml6
b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCA4OTY4NzYwZjllNGU2NmZhMWY0ZDU5MTY2YTcyZTcwOTEy
ODQ5ZTBlLi5iNWJlNzAzMmRmMzM1ZTM3M2FhOWU1OGRkYjhjZTIxN2QwY2MxMjE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjM1NCw2ICs2
MzU0LDM5IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3Vi
RnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJl
cXVlc3RTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCgpLCBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVj
a2VkQ3JlYXRlRnJvbUhvc3Qoc3ViRnJhbWVIb3N0KSwgUmVnaXN0cmFibGVEb21haW46OnVuY2hl
Y2tlZENyZWF0ZUZyb21Ib3N0KHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIG1fcGFnZUlELCBwcm9t
cHRFbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogI2VuZGlmCisKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorc3RhdGljIHVpbnQ2NF90IG5leHREZXZpY2VP
cmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKCkKK3sKKyAgICBzdGF0aWMgdWlu
dDY0X3QgbmV4dENhbGxiYWNrSUQgPSAwOworICAgIHJldHVybiArK25leHRDYWxsYmFja0lEOwor
fQorCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvIGNhbGxiYWNrSUQgPSBuZXh0
RGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCgpOworICAgIEFTU0VS
VCghbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5jb250YWlu
cyhjYWxsYmFja0lEKSk7CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25D
YWxsYmFja01hcC5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKG9yaWdpbi5kYXRhKCksIGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdl
OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxi
YWNrKQoreworICAgIGF1dG8gY2FsbGJhY2tJRCA9IG5leHREZXZpY2VPcmllbnRhdGlvbk1vdGlv
blBlcm1pc3Npb25DYWxsYmFja0lEKCk7CisgICAgQVNTRVJUKCFtX2RldmljZU9yaWVudGF0aW9u
TW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLmNvbnRhaW5zKGNhbGxiYWNrSUQpKTsKKyAgICBt
X2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLmFkZChjYWxsYmFj
a0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKG9yaWdpbi5kYXRhKCksIGNh
bGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRp
b25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9v
bCBncmFudGVkKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX2RldmljZU9yaWVudGF0aW9uTW90
aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLnRha2UoY2FsbGJhY2tJRCk7CisgICAgQVNTRVJUKGNh
bGxiYWNrKTsKKyAgICBjYWxsYmFjayhncmFudGVkKTsKK30KKyNlbmRpZgogICAgIAogc3RhdGlj
IFNoYXJlU2hlZXRDYWxsYmFja0lEIG5leHRTaGFyZVNoZWV0Q2FsbGJhY2tJRCgpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZDIxZWFmYmM1MjM1
MmMyNTcyNzlmOGYzMmVhNjU2MzkwOGViNmE5Mi4uNDQ4N2IwMTYyODEwZWI0YmNmMjlmMGRhZWY0
ZTE1YTdlNTA2ZmQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtMTExMSw2ICsxMTExLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1
aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNr
KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lk
IHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisjZW5kaWYKKwog
ICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CiAgICAgdm9p
ZCBkaWRDb21wbGV0ZVNoYXJlU2hlZXQoYm9vbCB3YXNDb21wbGV0ZWQsIFNoYXJlU2hlZXRDYWxs
YmFja0lEIGNvbnRleHRJZCk7CiAgICAgCkBAIC0xMjA3LDYgKzEyMTIsMTAgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisgICAgdm9pZCBkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNz
aW9uRGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKTsKKyNlbmRpZgor
CiAjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7
CiAjZW5kaWYKQEAgLTE4MzcsNiArMTg0NiwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sIGdyYW50ZWQpPj4gbV9zdG9yYWdlQWNjZXNz
UmVzcG9uc2VDYWxsYmFja01hcDsKICAgICBIYXNoTWFwPFNoYXJlU2hlZXRDYWxsYmFja0lELCBX
VEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBjb21wbGV0ZWQpPj4gbV9zaGFyZVNoZWV0UmVzcG9uc2VD
YWxsYmFja01hcDsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgSGFzaE1h
cDx1aW50NjRfdCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZ3JhbnRlZCk+PiBt
X2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwOworI2VuZGlmCisK
ICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
dWludDY0X3Q+IG1fYXBwbGljYXRpb25NYW5pZmVzdEZldGNoQ2FsbGJhY2tNYXA7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCmluZGV4IGNiMGI1NzA5MzM2NGMwZTU1NDI0M2Y5MzA5YzM5MjVkNTQ4YWY0ZjAuLjZk
YzliZTQ5NzMxYWYyYmUyYTVkZDMwMGQyMDQ5MDdhYTE1MWMyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzY0
LDYgKzM2NCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICAj
IE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAorI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisgICAgRGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9u
QWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRl
ZCkKKyNlbmRpZgorCiAgICAgIyBQcmludGluZy4KICAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJp
bnRpbmcoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGUxZDA2MTBkMTE5ZjY1MzE3NTA1Y2ZhN2I3YzhkOTljYzY0MTM3NTMuLjcyNDA2MTI4OWRh
MmMwOWVkNGUyNjNjZWFmNzA4OTFjNmRkYThlMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0wMy0wNSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBE
ZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTMyOQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gaGVscCB0ZXN0IHRoZSBEZXZp
Y2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkuCisKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25B
Y2Nlc3MpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU1v
dGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXVFI6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b24pOgorICAgICAgICAoV1RSOjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZh
bHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpoYW5kbGVEZXZpY2VPcmllbnRh
dGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmhhbmRsZURldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNz
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKToKKwogMjAxOS0wMy0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIERvIG5vdCBzaGFyZSBXZWJQcm9jZXNzZXMgYmV0d2VlbiBwcml2YXRlIGFuZCByZWd1
bGFyIHNlc3Npb25zCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCAwZTc5ZDgwYjYwMWYz
Mjk1ZThiODE1YmExMDA4Yjk5N2QxYjgwYzZmLi5lZWUzOGQ2OWVmYjA0MTA1NjU5ZDFiZGVjMjE3
NWUyZTM5MWIxYjI2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTEwNCw2ICsxMDQs
MTAgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIGJvb2xlYW4gaXNDb21tYW5kRW5hYmxl
ZChET01TdHJpbmcgbmFtZSk7CiAgICAgdW5zaWduZWQgbG9uZyB3aW5kb3dDb3VudCgpOwogCisg
ICAgLy8gRGV2aWNlIE9yaWVudGF0aW9uIE1vdGlvbi4KKyAgICB2b2lkIHNldFNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MoYm9vbGVhbiB2YWx1ZSk7CisgICAgdm9pZCBzZXRTaG91
bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyhib29sZWFuIHZhbHVlKTsKKwogICAgIC8vIFNwZWNp
YWwgRE9NIHZhcmlhYmxlcy4KICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBnbG9iYWxGbGFnOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAppbmRleCBkNDYyMjQ2Y2RiOWMxOGY3N2NlNDVkNzMxMzcyODA0YTY1MWRkMzAyLi41YTAy
MjBlMzliMThiMTRkOGU3ODIzYTNjNjg0YzY2MzYzZWUwMGVjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEyOTQs
NiArMTI5NCwyMCBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5
YWJsZU1JTUVUeXBlcyhib29sIHZhbHVlKQogICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0
KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJTZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzIikpOworICAg
IFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFu
Q3JlYXRlKHZhbHVlKSk7CisgICAgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5k
bGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2Fn
ZUJvZHkuZ2V0KCkpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZEFsbG93RGV2aWNl
TW90aW9uQWNjZXNzKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRT
aG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xl
YW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOworICAg
IFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdl
KCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwog
dm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyIpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggNzEzYTk0
MzM2MzkwNWYwYzliNzYwZDU3NGFjOGYzMjRkOGQ1MTZmYy4uYTEwYWMwODk1NzkwOGExYTdlNzIz
MzMyNGEyNTc0ZmJhZTVkYTRjNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM0OCw2ICszNDgsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0
SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGREb3du
bG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCk7CisgICAgdm9pZCBzZXRTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dE
ZXZpY2VNb3Rpb25BY2Nlc3MoYm9vbCk7CiAKICAgICBib29sIGRpZENhbmNlbENsaWVudFJlZGly
ZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVjdDsgfQogICAgIHZv
aWQgc2V0RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoYm9vbCB2YWx1ZSkgeyBtX2RpZENhbmNlbENs
aWVudFJlZGlyZWN0ID0gdmFsdWU7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggODVhOWRjMzBhOWNiOGY2OTI0ZDA3MjViMGJjNGFkNDIzZTZkZGQ2Ni4u
MjBlZmNjNzVjNTQ4NjhlZjQyOTNjMWMwNDgwYzlkMjljMjI2YTg5MiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI2MSw2ICsyNjEsMTYgQEAgc3RhdGlj
IHZvaWQgcmVxdWVzdFBvaW50ZXJMb2NrKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKikKICAg
ICBXS1BhZ2VEaWRBbGxvd1BvaW50ZXJMb2NrKHBhZ2UpOwogfQogCitzdGF0aWMgYm9vbCByZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKFdLUGFnZVJlZiwgV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW4sIGNvbnN0IHZvaWQqKQoreworICAgIHJldHVybiBUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuaGFuZGxlRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9u
UmVxdWVzdChvcmlnaW4pOworfQorCitzdGF0aWMgYm9vbCByZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbihXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25z
dCB2b2lkKikKK3sKKyAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRs
ZURldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KG9yaWdpbik7Cit9CisKIFdLUGFn
ZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29u
ZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdh
dGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbykKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0
aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7
CkBAIC01NjksOCArNTc5LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dp
dGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIHJlc2V0UHJlZmVyZW5j
ZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZp
ZXcoY29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWOCBw
YWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsgOCwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAg
IFdLUGFnZVVJQ2xpZW50VjEzIHBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyAxMywgbV9tYWlu
V2ViVmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UK
QEAgLTYzNiw3ICs2NDYsMTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dp
dGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgICAgICAwLCAvLyBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwKICAgICAgICAgMCwgLy8gZnVsbHNjcmVlbk1heVJldHVy
blRvSW5saW5lCiAgICAgICAgIHJlcXVlc3RQb2ludGVyTG9jaywKLSAgICAgICAgMCwKKyAgICAg
ICAgMCwgLy8gZGlkTG9zZVBvaW50ZXJMb2NrCisgICAgICAgIDAsIC8vIGhhbmRsZUF1dG9wbGF5
RXZlbnQKKyAgICAgICAgMCwgLy8gaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UK
KyAgICAgICAgMCwgLy8gZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9y
ZWdyb3VuZAorICAgICAgICAwLCAvLyBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29y
ZEFwcGVhcmFuY2UKKyAgICAgICAgMCwgLy8gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtCisg
ICAgICAgIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24sCisgICAgICAg
IHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uCiAgICAgfTsKICAgICBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2Up
OwogCkBAIC05NDIsNiArOTU5LDkgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRv
Q29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKIAogICAgIG1f
c2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzID0gZmFsc2U7CiAKKyAgICBtX3No
b3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MgPSBmYWxzZTsKKyAgICBtX3Nob3VsZEFs
bG93RGV2aWNlTW90aW9uQWNjZXNzID0gZmFsc2U7CisKICAgICBtX3dvcmtRdWV1ZU1hbmFnZXIu
Y2xlYXJXb3JrUXVldWUoKTsKIAogICAgIG1fcmVqZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRp
bnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzID0gZmFsc2U7CkBAIC0yNTQ3LDYgKzI1Njcs
MTggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlQ2hlY2tPZlVzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4oV0tGcmFtZVJlZiBmcmFtZSwKICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1NldFVzZXJNZWRpYUFjY2Vzc0luZm8oY2hlY2tSZXF1ZXN0LCBzYWx0U3RyaW5nLmdldCgp
LCBzZXR0aW5nc0Zvck9yaWdpbihvcmlnaW5IYXNoKS5wZXJzaXN0ZW50UGVybWlzc2lvbigpKTsK
IH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uUmVxdWVzdChXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKK3sKKyAgICBtX2N1
cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1ha2VTdHJpbmcoIlJlY2VpdmVkIGRldmljZSBv
cmllbnRhdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4g
XCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUob3JpZ2luKSwgIlwiLlxuIikpOworICAgIHJldHVy
biBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3M7Cit9CisKK2Jvb2wgVGVzdENv
bnRyb2xsZXI6OmhhbmRsZURldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KFdLU2Vj
dXJpdHlPcmlnaW5SZWYgb3JpZ2luKQoreworICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1
dFRleHQobWFrZVN0cmluZygiUmVjZWl2ZWQgZGV2aWNlIG1vdGlvbiBhY2Nlc3MgcGVybWlzc2lv
biByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gXCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUo
b3JpZ2luKSwgIlwiLlxuIikpOworICAgIHJldHVybiBtX3Nob3VsZEFsbG93RGV2aWNlTW90aW9u
QWNjZXNzOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpoYW5kbGVVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdChXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCkKIHsKICAgICBhdXRv
IG9yaWdpbkhhc2ggPSB1c2VyTWVkaWFPcmlnaW5IYXNoKHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAppbmRleCBhMGMzYTcyZTc4MjAzMGM4NjJlZDNiMDQwNjg4ZjdlYTQ3ZmJhYzA3Li5k
OTZmZGQwZmZiZjVmMWQ2NDg4NDNiZGQ2YThhYjMxMzhiZDkwMTVlIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xNTAsNiArMTUwLDEwIEBAIHB1YmxpYzoKICAg
ICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9yT3JpZ2luKFdLU3Ry
aW5nUmVmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luU3RyaW5nLCBXS1N0cmluZ1JlZiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luU3RyaW5nKTsKICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDb3VudEZvck9yaWdpbihXS1N0cmluZ1JlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
blN0cmluZywgV0tTdHJpbmdSZWYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7CiAKKyAg
ICAvLyBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24uCisgICAgYm9vbCBoYW5kbGVEZXZpY2VP
cmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYpOwor
ICAgIGJvb2wgaGFuZGxlRGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1
cml0eU9yaWdpblJlZik7CisKICAgICAvLyBDb250ZW50IEV4dGVuc2lvbnMuCiAgICAgdm9pZCBj
b25maWd1cmVDb250ZW50RXh0ZW5zaW9uRm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwog
ICAgIHZvaWQgcmVzZXRDb250ZW50RXh0ZW5zaW9ucygpOwpAQCAtMTk5LDYgKzIwMyw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogCiAg
ICAgdm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1
ZSkgeyBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IHZhbHVlOyB9Cisg
ICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2wgdmFsdWUp
IHsgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzID0gdmFsdWU7IH0KKyAgICB2
b2lkIHNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91
bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyA9IHZhbHVlOyB9CiAKICAgICB2b2lkIHNldFN0YXRp
c3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoV0tTdHJpbmdSZWYgaG9zdE5hbWUpOwpAQCAtNTA4LDYg
KzUxNCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlRW5hYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlUGVybWlzc2l2ZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyB7IGZhbHNlIH07
CisgICAgYm9vbCBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9zaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyB7IGZhbHNlIH07CiAK
ICAgICBib29sIG1fcmVqZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFuZGxlc0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCmluZGV4IDY2NjBjZGM5MjFmODk3Y2NlMmY3NzFkOGQ1M2E1YzI2ZjIxMjQ4Zjku
LjI1ZmRlNTZmZDVlZmNjOGUyMTIxYzZlYTMzZGZlOWFlZDcwNTM3YTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC03NDcsNiArNzQ3LDIwIEBAIHZvaWQg
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3Ry
aW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVz
c2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVm
IHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAg
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKFdL
R2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAg
IFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJv
ZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkQWxsb3dE
ZXZpY2VNb3Rpb25BY2Nlc3MoV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiUnVuVUlQcm9jZXNzU2NyaXB0IikpIHsKICAgICAgICAgV0tEaWN0aW9uYXJ5UmVm
IG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVz
c2FnZUJvZHkpOwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc2NyaXB0S2V5KEFk
b3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTY3JpcHQiKSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YjUzZTkzZmQ2YmNiNTQ3NzdlZjQ5ODc5OGUwZDhlODczNGY3ODRiNS4uM2Q1OWQwNGIxZTcyNGI0
NjI2ZjBhOWFmM2RiM2M4Y2E1YTg1YWUwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTAz
LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1v
cmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMDMtMDMgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFByZXBhcmUgdG8gaW1wcm92ZSBoYW5kbGluZyBv
ZiBjb252ZXJzaW9uIG9mIGZsb2F0IHRvIHN0cmluZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDIy
OTdmNWFiMWIzZWI0OWU1Y2ZkMzBkODViMjY3ZDRkNjhiYTZjNDIuLjE2ZTI1NDY4MjNlYTMyNzNl
MGU4NWYwMTVmNGZjYTAxZWQ4MDY1NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzIsNiArMzIs
NyBAQCBmYXN0L3pvb21pbmcvaW9zIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL2lvcyBbIFNraXAgXQog
ZmFzdC92aWV3cG9ydC9pb3MgWyBTa2lwIF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBT
a2lwIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9pb3Mg
WyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3BvaW50
ZXIvaW9zIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzU4NTlj
NjNkMzc0MDliNDMyMjMyYjdhZDE2MmE5ODQyNDU4ZjJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZW1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRp
bCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRl
dmljZSBtb3Rpb24gYWNjZXNzIHBlcm1pc3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2lu
ICIiLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBObyBkZXZpY2Vtb3Rpb24gZXZlbnRzIHdp
bGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQu
CitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigp
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImRlbmll
ZCIKK1BBU1MgcmVzdWx0IGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmQyMzk4MTk1YTMxNGZk
ZjA1ZTNjZjZhOWUyMmJjMDQ0OGJmZmJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
ZGVuaWVkLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZl
bnQucmVxdWVzdFBlcm1pc3Npb24oKS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU1v
dGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgp
ID0+IHt9KTsKKworRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChf
cmVzdWx0KSA9PiB7CisgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKworICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmlj
ZW1vdGlvbiIsICgpID0+IHt9KTsKKworICAgIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0Owor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGVhMTdmNTNjZDUxZGEz
NmU1MGZhYWQ4ZmFiY2Q1ZWM3NmZhZjdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
Z3JhbnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDEyOiBObyBkZXZpY2Vtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlz
c2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2UgbW90
aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0Jh
c2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIK
K1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTQyMTQ3ZDgxODU4ZjFl
MDk0ZWJlMTBmZGYzZWFiYzIwNjFlZWIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
Z3JhbnRlZC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2
ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VN
b3Rpb25BY2Nlc3ModHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgp
ID0+IHt9KTsKKworRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChf
cmVzdWx0KSA9PiB7CisgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZp
Y2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVy
bWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEwMzBm
MTBkYmFmZmIzNjdiNzFiYWZiZDk5NGU3NDQzMjFjZjhmNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJl
IGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgor
UmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9y
IHNlY3VyaXR5IG9yaWdpbiAiIi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogTm8gZGV2aWNl
b3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVz
ZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5p
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xODZmMWI5NjE1NGI4MTdmYmRhMmRkYmM5MzFhOGQ2YWRhNWUy
MGJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApAQCAt
MCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQ
ZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFj
Y2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkg
PT4ge30pOworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhl
bigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJk
ZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworICAgIERldmljZU9yaWVudGF0aW9uRXZl
bnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3Vs
dCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRl
bmllZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNDJjOTBjNDJkNTI0NTVlNTZlNzJmODg4NGRjZmM2Mzk2YzhiZTQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZW9yaWVudGF0aW9u
IGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVk
IGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2VzcyBwZXJtaXNz
aW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERl
dmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQg
aXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjAwMWNjZTBlZjNiZTQ0ZWUz
NDg5MjA5MGEwZDE2MWU1ZDhlNGE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1ncmFudGVkLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50
YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3ModHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmlj
ZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVl
c3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAg
YWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICBE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkg
PT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2OWM4Mzg0ZTJjODE4NjUyZjA0
NWFjZjQ5NTU0Y2I2MmUyNzllZWFiLi4wYjhlODRkODA2OTc2NTlhNTQwOGVjYTA3YjgwYjg1NTMx
Mzc4MDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRp
b25zCkBAIC03LDYgKzcsNyBAQAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwog
CiBjb21wb3NpdGluZy9pb3MgWyBQYXNzIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFz
cyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNz
IF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgUGFzcyBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363663</attachid>
            <date>2019-03-05 11:54:48 -0800</date>
            <delta_ts>2019-03-05 12:40:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190305115447.patch</filename>
            <type>text/plain</type>
            <size>94249</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2NTk5ZTMzMzQxZjUz
NzBlNTAwNzRlNGM5MWZhZjUyOWNmNTJkOC4uNGE3MDJkZTIzY2IzY2MzZjVlMGFmM2JjOTc4ZTk3
OWFjZjY0M2ExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTAzLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9E
ZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVz
dFBlcm1pc3Npb24pOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmg6Cisg
ICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0
aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLnlhbWw6CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBJbXByb3ZlIG91ciBmaWxlIHBpY2tlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA4NzZlY2Q1ZDQxMGEzZTVhODRkOWIxMTRkYTY2ZWRkZjUxMTM3MDFmLi4wZmIzZjg4MzBjOTEz
MDMwNDBjODg5MTExMDZkYTEwOThiMmNhNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisy
MDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0
aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNv
bS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoK
KyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdl
YktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlTW90
aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om5leHREZXZpY2VP
cmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9u
TW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDE5LTAzLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgRG8gbm90IHNoYXJlIFdlYlByb2Nlc3NlcyBiZXR3ZWVuIHByaXZhdGUgYW5k
IHJlZ3VsYXIgc2Vzc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3Bw
CmluZGV4IDkwZDcwMmRjMzkwNTJkMGZjNzZkZTA4NDE1ZGE0N2I4MzczYjJkOTYuLjQ0Y2EzZTdi
NjMwYjY4ZDVjNDdlNWQ4ODFmNTY1M2YyMmVlNGE3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkV2ZW50LmNwcApAQCAtMjYsNyArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjIsNCArMTI2LDMyIEBAIEV2ZW50SW50ZXJmYWNl
IERldmljZU1vdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERldmljZU1vdGlvbkV2ZW50Ojpy
ZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYg
cHJvbWlzZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50LmlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAg
ICAgIGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsICJDYWxsIHRvIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNz
aW9uKCkgZmFpbGVkIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4i
X3MpOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVu
aWVkKTsKKyAgICB9CisKKyAgICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuQWNj
ZXNzKGRvY3VtZW50LnRvcE9yaWdpbigpKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQ2FsbCB0
byBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCBiZWNhdXNlIGl0
IHdhcyBtYWRlIGZyb20gYW4gaWZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9y
aWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29s
dmUoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0KKworICAgIGlmIChhdXRvIHBlcm1p
c3Npb25TdGF0ZSA9IGRvY3VtZW50LmRldmljZU1vdGlvbkFjY2Vzc1N0YXRlKCkpCisgICAgICAg
IHJldHVybiBwcm9taXNlLnJlc29sdmUoKnBlcm1pc3Npb25TdGF0ZSA/IFBlcm1pc3Npb25TdGF0
ZTo6R3JhbnRlZCA6IFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIGF1dG8qIHBhZ2Ug
PSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIHBhZ2UtPmNocm9tZSgp
LmNsaWVudCgpLnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKGRvY3VtZW50LnRv
cE9yaWdpbigpLCBbZG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShib29sIGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoZG9j
dW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUo
Z3JhbnRlZCk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShncmFudGVkID8gUGVybWlzc2lvblN0
YXRlOjpHcmFudGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0pOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlv
bkV2ZW50LmgKaW5kZXggM2VjYzViZDRjMGM3ZWVjMThlOWZiOGU0MTU2ZjE4YmYzZWY0NTMzZC4u
NjRhOTQ5ZDBmZmMyNDI0YmE5NDI3YmUzY2MxZGQ0NGNhMDY2MTIyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKQEAgLTI2LDEwICsyNiwxMiBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsKK2NsYXNz
IERvY3VtZW50OwogCiBjbGFzcyBEZXZpY2VNb3Rpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVu
dCB7CiBwdWJsaWM6CkBAIC02Niw2ICs2OCwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRE
ZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywg
Ym9vbCBjYW5jZWxhYmxlLCBPcHRpb25hbDxBY2NlbGVyYXRpb24+JiYsIE9wdGlvbmFsPEFjY2Vs
ZXJhdGlvbj4mJiwgT3B0aW9uYWw8Um90YXRpb25SYXRlPiYmLCBPcHRpb25hbDxkb3VibGU+KTsK
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZW51bSBjbGFzcyBQZXJtaXNz
aW9uU3RhdGUgeyBHcmFudGVkLCBEZW5pZWQgfTsKKyAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsK
KyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Q
cm9taXNlJiYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRGV2aWNlTW90aW9uRXZlbnQoKTsK
ICAgICBEZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRGV2
aWNlTW90aW9uRGF0YSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwK
aW5kZXggZjJmNWRmMjBmY2U1M2JjMTNiNWFiZTZkNDE4ZTIwYmQ1YTRmZDM4Ni4uMzJhZDZlNzVj
MGMzNGUxODQ2MjE4YWQ2OGE0ZWRlNjE3YTVkMjlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlTW90aW9uRXZlbnQuaWRsCkBAIC0zMSw2ICszMSw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFJvdGF0aW9uUmF0ZT8gcm90YXRpb25SYXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnJlc3RyaWN0ZWQgZG91YmxlPyBpbnRlcnZhbDsKIAorICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwg
RW5hYmxlZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUEldIHN0YXRpYyBQ
cm9taXNlPFBlcm1pc3Npb25TdGF0ZT4gcmVxdWVzdFBlcm1pc3Npb24oKTsKKwogICAgIHZvaWQg
aW5pdERldmljZU1vdGlvbkV2ZW50KG9wdGlvbmFsIERPTVN0cmluZyB0eXBlID0gIiIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFs
c2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBjYW5j
ZWxhYmxlID0gZmFsc2UsCkBAIC01NywzICs1OSw1IEBACiAgICAgZG91YmxlPyBiZXRhOwogICAg
IGRvdWJsZT8gZ2FtbWE7CiB9OworCitlbnVtIFBlcm1pc3Npb25TdGF0ZSB7ICJncmFudGVkIiwg
ImRlbmllZCIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmNwcAppbmRleCBlODIxYjY1NTMxMDhhMTIwYzBmYjI3MTI3YmE1NzU1MTkwZTcxZTFlLi44NTJj
ZWMxN2QxZDI0MjNlNTdkM2MxYmU2MGI3YjRiZDY0NTA5M2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCkBAIC0yNiw3ICsyNiwxMSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZlbnQuaCIKIAor
I2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMDksNCAr
MTEzLDMyIEBAIEV2ZW50SW50ZXJmYWNlIERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmV2ZW50SW50
ZXJmYWNlKCkgY29uc3QKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1l
bnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgaWYgKCFk
b2N1bWVudC5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQ2FsbCB0
byBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkIGJlY2F1
c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3MpOworICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAg
ICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuQWNjZXNzKGRvY3VtZW50LnRvcE9y
aWdpbigpKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQ2FsbCB0byBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkIGJlY2F1c2UgaXQgd2FzIG1hZGUgZnJv
bSBhbiBpZnJhbWUgdGhhdCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBt
YWluIHBhZ2UuIl9zKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9u
U3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAgaWYgKGF1dG8gcGVybWlzc2lvblN0YXRlID0g
ZG9jdW1lbnQuZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpKQorICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZXNvbHZlKCpwZXJtaXNzaW9uU3RhdGUgPyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50
ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1l
bnQucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2
ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGRvY3VtZW50LnRvcE9y
aWdpbigpLCBbZG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShib29sIGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoZG9jdW1l
bnQpCisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0
ZShncmFudGVkKTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGdyYW50ZWQgPyBQZXJtaXNzaW9u
U3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfSk7Cit9Cisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmgKaW5kZXggMDI1YjJlMzJhNzUxZTQyZjY1MGJiNTNiNTE1YTEw
YmRiNTI3ZjQ3OC4uMTZlMzNhZjkxOTg0NjFmNmVjMjYxNGY2YTNmNTgyMTlmZGY2ZDQyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCkBAIC0yNiwxMCAr
MjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJK
U0RPTVByb21pc2VEZWZlcnJlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERl
dmljZU9yaWVudGF0aW9uRGF0YTsKK2NsYXNzIERvY3VtZW50OwogCiBjbGFzcyBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKQEAgLTYwLDYgKzYy
LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXREZXZpY2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIE9wdGlv
bmFsPGRvdWJsZT4gYWxwaGEsIE9wdGlvbmFsPGRvdWJsZT4gYmV0YSwgT3B0aW9uYWw8ZG91Ymxl
PiBnYW1tYSwgT3B0aW9uYWw8Ym9vbD4gYWJzb2x1dGUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorICAgIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIHsgR3Jh
bnRlZCwgRGVuaWVkIH07CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBET01Qcm9taXNl
RGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47CisgICAgc3RhdGljIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlzZSYmKTsKKyNl
bmRpZgorCiBwcml2YXRlOgogICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQoKTsKICAgICBEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VP
cmllbnRhdGlvbkRhdGEqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmlkbAppbmRleCAxM2ZmN2JhZGMwZTU5MTE2NjM1OTVkMTVkMTFkYmQ2MGEzMzM5ZmRi
Li42OTI5OWZjNWU2MjgwZWMxMTNmYzMyYzY2MDE5YjNlY2JmNDdkYjJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCkBAIC0zMCw2ICszMCw4IEBA
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGJldGE7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGdhbW1hOwogCisgICAgW0Nh
bGxXaXRoPURvY3VtZW50LCBFbmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVudGF0aW9uUGVybWlz
c2lvbkFQSV0gc3RhdGljIFByb21pc2U8UGVybWlzc2lvblN0YXRlPiByZXF1ZXN0UGVybWlzc2lv
bigpOworCiAgICAgLy8gRklYTUU6IENvbnNpZGVyIGRlZmluaW5nIGFuIEVOQUJMRSBtYWNybyBm
b3IgaU9TIGRldmljZSBvcmllbnRhdGlvbiBjb2RlIGFuZC9vciBtb2RpZnlpbmcKICAgICAvLyB0
aGUgYmluZGluZ3Mgc2NyaXB0cyB0byBzdXBwb3J0IGdlbmVyYXRpbmcgbW9yZSBjb21wbGljYXRl
ZCBjb25kaXRpb25hbCBjb2RlLgogI2lmIGRlZmluZWQoV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkp
ICYmIFdURl9QTEFURk9STV9JT1NfRkFNSUxZCkBAIC01NSwzICs1Nyw0IEBACiAjZW5kaWYKIH07
CiAKK2VudW0gUGVybWlzc2lvblN0YXRlIHsgImdyYW50ZWQiLCAiZGVuaWVkIiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggMTQyOTI3ODZjYzhlZmVlZjViMWEyZmMxNWRjNzEwYmZlYzFj
MzExMC4uNGY4YmQ4MmVkNzA0Y2FhMGE4NzYzOTE3ZGZhMGE2OTE1YWNjZmM4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC04NjM4LDYgKzg2MzgsNTggQEAgdm9pZCBEb2N1bWVudDo6ZnJh
bWVXYXNEaXNjb25uZWN0ZWRGcm9tT3duZXIoKQogICAgIGRldGFjaEZyb21GcmFtZSgpOwogfQog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworY29uc3QgT3B0aW9uYWw8Ym9vbD4m
IERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlKCkgY29uc3QKK3sKKyAgICBp
ZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykKKyAgICAgICAgcmV0dXJuIHRvcERvY3VtZW50KCku
ZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpOworCisgICAgcmV0dXJuIG1fZGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NTdGF0ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlT3JpZW50
YXRpb25BY2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpCit7CisgICAgaWYgKCZ0b3BEb2N1bWVudCgp
ICE9IHRoaXMpIHsKKyAgICAgICAgdG9wRG9jdW1lbnQoKS5zZXREZXZpY2VPcmllbnRhdGlvbkFj
Y2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9kZXZp
Y2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlID0gZ3JhbnRlZDsKKworICAgIGlmICghZ3JhbnRlZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvKiBmcmFtZSA9IG1fZnJhbWU7IGZyYW1l
ICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCht
X2ZyYW1lKSkKKyAgICAgICAgZnJhbWUtPndpbmRvdygpLT5zdGFydExpc3RlbmluZ0ZvckRldmlj
ZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKK30KKworY29uc3QgT3B0aW9uYWw8Ym9vbD4mIERv
Y3VtZW50OjpkZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKCZ0b3BE
b2N1bWVudCgpICE9IHRoaXMpCisgICAgICAgIHJldHVybiB0b3BEb2N1bWVudCgpLmRldmljZU1v
dGlvbkFjY2Vzc1N0YXRlKCk7CisKKyAgICByZXR1cm4gbV9kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0
ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoYm9vbCBn
cmFudGVkKQoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAhPSB0aGlzKSB7CisgICAgICAgIHRv
cERvY3VtZW50KCkuc2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoZ3JhbnRlZCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX2RldmljZU1vdGlvbkFjY2Vzc1N0YXRlID0gZ3JhbnRl
ZDsKKworICAgIGlmICghZ3JhbnRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRv
KiBmcmFtZSA9IG1fZnJhbWU7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChtX2ZyYW1lKSkKKyAgICAgICAgZnJhbWUtPndpbmRvdygp
LT5zdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7Cit9CisKKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiBXb3JrbGV0JiBEb2N1bWVudDo6ZW5z
dXJlUGFpbnRXb3JrbGV0KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNzc4YzIxMzNjNTQz
NTdkZDY3NzE5OWRmNzE5NDE3YjNlZGU5MzExYS4uYjhiNDY5MWQxNTUyZDgxMGI3ZmVhMzgzOTAw
ZmQ5ODEwYjFmMWZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyMTQsMTIgKzEyMTQsMTkg
QEAgcHVibGljOgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudElPUy5oPgogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFN
SUxZKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyJiBkZXZpY2VNb3Rpb25Db250cm9sbGVy
KCkgY29uc3Q7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyJiBkZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNpbXVsYXRl
RGV2aWNlT3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91Ymxl
IGdhbW1hKTsKICNlbmRpZgogCisgICAgY29uc3QgT3B0aW9uYWw8Ym9vbD4mIGRldmljZU9yaWVu
dGF0aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9u
QWNjZXNzU3RhdGUoYm9vbCBncmFudGVkKTsKKyAgICBjb25zdCBPcHRpb25hbDxib29sPiYgZGV2
aWNlTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERldmljZU1vdGlvbkFj
Y2Vzc1N0YXRlKGJvb2wgZ3JhbnRlZCk7CisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKKwogICAgIGNvbnN0IERvY3VtZW50VGltaW5nJiB0aW1pbmcoKSBjb25zdCB7IHJldHVy
biBtX2RvY3VtZW50VGltaW5nOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgbW9ub3Rv
bmljVGltZXN0YW1wKCkgY29uc3Q7CkBAIC0xODMxLDYgKzE4MzgsMTEgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fYXJlRnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuIHsgZmFsc2UgfTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBPcHRpb25hbDxib29sPiBtX2Rl
dmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGU7CisgICAgT3B0aW9uYWw8Ym9vbD4gbV9kZXZpY2VN
b3Rpb25BY2Nlc3NTdGF0ZTsKKyNlbmRpZgorCiAgICAgSGFzaFNldDxIVE1MUGljdHVyZUVsZW1l
bnQqPiBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXM7CiAgICAgSGFzaFNldDxIVE1MUGljdHVy
ZUVsZW1lbnQqPiBtX2FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlczsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKaW5kZXggM2EwZGMzYmIwM2RjZDcwYmU5NGVmNGI5ODYyMWQ5Nzk1NjBl
N2ViYS4uZDAwOWE4NGQyY2I3OThkYWE5ZTRiOTM4ZGYzNmMxM2JlMmU0ZWI3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00ODIsNiArNDgyLDExIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcmJiAvKnN1YkZyYW1lSG9zdCovLCBT
dHJpbmcmJiAvKnRvcEZyYW1lSG9zdCovLCB1aW50NjRfdCAvKmZyYW1lSUQqLywgdWludDY0X3Qg
LypwYWdlSUQqLywgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFj
aykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VB
Y2Nlc3MoU3RyaW5nJiYgLypzdWJGcmFtZUhvc3QqLywgU3RyaW5nJiYgLyp0b3BGcmFtZUhvc3Qq
LywgdWludDY0X3QgLypmcmFtZUlEKi8sIHVpbnQ2NF90IC8qcGFnZUlEKi8sIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soZmFsc2UpOyB9
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxi
YWNrKHRydWUpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKHRydWUpOyB9CisjZW5kaWYKKwogICAg
IHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRNZW51RWxlbWVudChIVE1MTWVudUVsZW1lbnQmKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTWVudUVsZW1lbnQoSFRNTE1lbnVFbGVtZW50Jikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVJdGVtRWxlbWVudChIVE1MTWVudUl0
ZW1FbGVtZW50JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZGZhMTEyNDg0
YTNhNDc3ZTNkYzAyMmEzNGNhMzRkZjNmZmE5M2UzMi4uOTQ5MWJkN2RiY2QyNmRkYzYxYjUzNWY1
NTNmMWViYjhlOGRhZGViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTgyNiw1
MCArMTgyNiwxMjQgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmUKICAgICBlbHNlIGlmIChldmVu
dE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAgICAgIGluY3JlbWVu
dEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZp
Y2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAgICBzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVu
dGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRldmljZW1vdGlvbkV2ZW50KQorICAgICAgICBzdGFydExpc3RlbmluZ0ZvckRldmljZU1v
dGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworfQogCiAjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5z
ZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkgJiYgZG9jdW1lbnQoKSAm
JiBkb2N1bWVudCgpLT5sb2FkZXIoKSAmJiBkb2N1bWVudCgpLT5sb2FkZXIoKS0+ZGV2aWNlT3Jp
ZW50YXRpb25FdmVudEVuYWJsZWQoKSkgeworCitEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
IERPTVdpbmRvdzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29uc3QKK3sKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBpZiAoKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlbW90aW9uRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vv
cmllbnRhdGlvbkV2ZW50KSkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNlY3VyaXR5T3JpZ2lu
QXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICAgICAgICAgIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpCi0gICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigp
LmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLmFk
ZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChkb2N1
bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU2VjdXJlQ29udGV4dCgpKQotICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRl
dmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgZnJvbSBjaGlsZCBmcmFtZSB0aGF0
IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZS4iX3MpOwot
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywg
IkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxp
c3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3MpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyAmZG9jdW1l
bnQoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgOiBudWxscHRyOwogI2Vsc2UKLSAg
ICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpIHsK
LSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkgJiYgaXNT
ZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJv
bGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkK
LSAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigq
dGhpcyk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5n
LCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gbGlzdGVuZXIgZnJvbSBj
aGlsZCBmcmFtZSB0aGF0IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1h
aW4gcGFnZS4iX3MpOwotICAgICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNlY3Vy
aXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICAg
ICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgICAgICAg
ICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChpc1NlY3VyZUNvbnRleHQoKSkKLSAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBk
ZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIgZnJvbSBjaGlsZCBmcmFtZSB0aGF0IHdhc24ndCB0
aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZS4iX3MpOwotICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQg
YXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJl
Y2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3MpOwotICAgICAgICAg
ICAgfQorICAgIHJldHVybiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgp
KTsKKyNlbmRpZgorfQorCitEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBET01XaW5kb3c6OmRldmlj
ZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgcmV0dXJuIGRvY3VtZW50KCkgPyAmZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxl
cigpIDogbnVsbHB0cjsKKyNlbHNlCisgICAgcmV0dXJuIERldmljZU1vdGlvbkNvbnRyb2xsZXI6
OmZyb20ocGFnZSgpKTsKKyNlbmRpZgorfQorCitib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9V
c2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgU3RyaW5n
JiBtZXNzYWdlKSBjb25zdAoreworICAgIGlmICghZnJhbWUoKSB8fCAhZnJhbWUoKS0+c2V0dGlu
Z3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpIHx8ICFkb2N1bWVudCgpIHx8ICFk
b2N1bWVudCgpLT5sb2FkZXIoKSB8fCAhZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRldmljZU9yaWVu
dGF0aW9uRXZlbnRFbmFibGVkKCkpIHsKKyAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIkJs
b2NrZWQgYXR0ZW1wdCB0byBhZGQgYSAiLCBldmVudFR5cGUsICIgZXZlbnQgbGlzdGVuZXIgYmVj
YXVzZSB0aGUgQVBJIGlzIGRpc2FibGVkLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgaWYgKCFpc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBtZXNzYWdlID0gbWFr
ZVN0cmluZygiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhICIsIGV2ZW50VHlwZSwgIiBldmVudCBs
aXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWlzU2FtZVNlY3VyaXR5T3Jp
Z2luQXNNYWluRnJhbWUoKSkgeworICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiQmxvY2tl
ZCBhdHRlbXB0IHRvIGFkZCBhICIsIGV2ZW50VHlwZSwgIiBldmVudCBsaXN0ZW5lciBmcm9tIGNo
aWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFp
biBwYWdlLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGZyYW1l
KCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7
CisgICAgICAgIGF1dG8gcGVybWlzc2lvblN0YXRlID0gKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkgPyBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1N0YXRlKCkgOiBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpOwor
ICAgICAgICBpZiAocGVybWlzc2lvblN0YXRlICYmICEqcGVybWlzc2lvblN0YXRlKSB7CisgICAg
ICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiTm8gIiwgZXZlbnRUeXBlLCAiIGV2ZW50cyB3
aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVk
LiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0jZW5kaWYgLy8gUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlbW90aW9uRXZlbnQpCi0gICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rp
b25FdmVudExpc3RlbmVyKCk7Ci0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
KyAgICAgICAgaWYgKCFwZXJtaXNzaW9uU3RhdGUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBt
YWtlU3RyaW5nKCJObyAiLCBldmVudFR5cGUsICIgZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwg
cGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuIik7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERPTVdpbmRvdzo6c3RhcnRM
aXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIWhh
c0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcigpOworICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VD
b250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2
aWNlTW90aW9uT3JpZW50YXRpb24oZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQs
IGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBlcnJvck1lc3NhZ2UpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgZGV2aWNlQ29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRM
aXN0ZW5lcigqdGhpcyk7Cit9CisKK3ZvaWQgRE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2
aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKGhhc0V2ZW50TGlzdGVuZXJz
KGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGF1dG8qIGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIoKSkKKyAgICAgICAgZGV2aWNlQ29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0
ZW5lcigqdGhpcyk7Cit9CisKK3ZvaWQgRE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmlj
ZU1vdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50
TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8q
IGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCk7CisgICAgaWYgKCFk
ZXZpY2VDb250cm9sbGVyIHx8IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVu
ZXIoKnRoaXMpKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwor
ICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihldmVudE5hbWVz
KCkuZGV2aWNlbW90aW9uRXZlbnQsIGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgZmFpbGVkVG9S
ZWdpc3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKKyAgICAgICAgaWYgKGF1dG8qIGRv
Y3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBlcnJv
ck1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZGV2aWNlQ29udHJvbGxl
ci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9CisKK3ZvaWQgRE9NV2luZG93Ojpz
dG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKQoreworICAgIGlmIChoYXNF
dmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoYXV0byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU1vdGlvbkNv
bnRyb2xsZXIoKSkKKyAgICAgICAgZGV2aWNlQ29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRM
aXN0ZW5lcigqdGhpcyk7Cit9CiAKIHZvaWQgRE9NV2luZG93OjpmYWlsZWRUb1JlZ2lzdGVyRGV2
aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpCiB7CkBAIC0xOTQxLDIyICsyMDE1LDYgQEAgYm9vbCBE
T01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIEV2ZW50TGlzdGVuZXIKICAgICAgICAgcmVtb3ZlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlz
KTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmJlZm9yZXVubG9hZEV2
ZW50ICYmIGFsbG93c0JlZm9yZVVubG9hZExpc3RlbmVycyh0aGlzKSkKICAgICAgICAgcmVtb3Zl
QmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlzKTsKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgZWxzZSBpZiAoZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCAmJiBkb2N1bWVudCgpKQotICAgICAg
ICBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkucmVtb3ZlRGV2aWNlRXZlbnRM
aXN0ZW5lcigqdGhpcyk7Ci0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
ZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYmIGRvY3VtZW50KCkpCi0gICAgICAgIGRvY3VtZW50KCkt
PmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIo
KnRoaXMpOwotI2Vsc2UKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRl
dmljZW1vdGlvbkV2ZW50KSB7Ci0gICAgICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBj
b250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAg
ICAgICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZl
bnQpIHsKLSAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxl
ciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAg
ICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgfQot
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xsRXZlbnQpCiAgICAgICAgIGRlY3JlbWVudFNjcm9s
bEV2ZW50TGlzdGVuZXJzQ291bnQoKTsKQEAgLTE5NzcsNiArMjAzNSwxMiBAQCBib29sIERPTVdp
bmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
RXZlbnRMaXN0ZW5lcgogICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc0dhbWVwYWRFdmVudFR5
cGUoZXZlbnRUeXBlKSkKICAgICAgICAgZGVjcmVtZW50R2FtZXBhZEV2ZW50TGlzdGVuZXJDb3Vu
dCgpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBlbHNlIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpCisgICAg
ICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkKKyAg
ICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYK
IAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjA1OSwxOCArMjEyMyw5IEBAIHZvaWQgRE9NV2lu
ZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAgICAgRXZlbnRUYXJnZXQ6OnJlbW92ZUFs
bEV2ZW50TGlzdGVuZXJzKCk7CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMt
PmRvY3VtZW50KCkpIHsKLSAgICAgICAgZG9jdW1lbnQtPmRldmljZU1vdGlvbkNvbnRyb2xsZXIo
KS5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycygqdGhpcyk7Ci0gICAgICAgIGRvY3VtZW50
LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3Rl
bmVycygqdGhpcyk7Ci0gICAgfQotI2Vsc2UKLSAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxl
ciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAg
ICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwot
ICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+
cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAg
ICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICAg
ICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKG1fc2Nyb2xsRXZlbnRMaXN0ZW5lckNv
dW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBiYmJmYTk1ODcyZTRhMzNlNzM0MjUy
ODFlNGFjY2I0ZjcwNTliMWM0Li4yOTg5NGJhMjNjYmMzMmJlZWUzZWE0ZWE4Y2M2OGM5MzFmNGQ2
MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTgyLDYgKzgyLDExIEBAIGNsYXNzIFZp
c3VhbFZpZXdwb3J0OwogY2xhc3MgV2ViS2l0TmFtZXNwYWNlOwogY2xhc3MgV2ViS2l0UG9pbnQ7
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorY2xhc3MgRGV2aWNlTW90aW9uQ29u
dHJvbGxlcjsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKKyNlbmRpZgorCiBz
dHJ1Y3QgSW1hZ2VCaXRtYXBPcHRpb25zOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0z
MTEsNiArMzE2LDE3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBzY3JvbGxFdmVudExpc3RlbmVy
Q291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudDsgfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgc3RhcnRMaXN0
ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgdm9pZCBzdG9wTGlz
dGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgc3RhcnRM
aXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgc3RvcExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgYm9vbCBpc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGNvbnN0IFN0cmluZyYgZXZlbnRUeXBlLCBTdHJpbmcm
IG1lc3NhZ2UpIGNvbnN0OworCisgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBkZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKKyAgICBEZXZpY2VNb3Rpb25Db250cm9s
bGVyKiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3Q7CisjZW5kaWYKKwogICAgIHZvaWQg
cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb24oKTsKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hf
RVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGV2aWNlQ29udHJvbGxlci5jcHAKaW5kZXggMzM2N2QzZGJmNTlmYzMzNTcyNDk3NThhYzYzZGQx
NzI1ZTA3NjM2Ni4uODQyYjg1NGVlMjUxMjU4YTQxMDYyYmZlMGQwNjU0NGVkYjNjNmZhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBAIC02OSw2ICs2OSwxMSBA
QCB2b2lkIERldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKERP
TVdpbmRvdyYgd2luZG93KQogICAgICAgICBtX2NsaWVudC5zdG9wVXBkYXRpbmcoKTsKIH0KIAor
Ym9vbCBEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYg
d2luZG93KSBjb25zdAoreworICAgIHJldHVybiBtX2xpc3RlbmVycy5jb250YWlucygmd2luZG93
KTsKK30KKwogdm9pZCBEZXZpY2VDb250cm9sbGVyOjpkaXNwYXRjaERldmljZUV2ZW50KEV2ZW50
JiBldmVudCkKIHsKICAgICBmb3IgKGF1dG8mIGxpc3RlbmVyIDogY29weVRvVmVjdG9yKG1fbGlz
dGVuZXJzLnZhbHVlcygpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZp
Y2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaApp
bmRleCBlMTYwMzg1YWZlMmY5NzM1M2MwZWEyMmYyOWU4NTZmMThlMjBiMWE4Li4zZDVmOTBjNTBl
ZTRhNTRmYzBhZDE3YzY0NzM1ZGQ2OTM4NzNmZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGREZXZp
Y2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYpOwogICAgIHZvaWQgcmVtb3ZlRGV2aWNlRXZlbnRM
aXN0ZW5lcihET01XaW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVu
ZXJzKERPTVdpbmRvdyYpOworICAgIGJvb2wgaGFzRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5k
b3cmKSBjb25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hEZXZpY2VFdmVudChFdmVudCYpOwogICAg
IGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMzAzZDdmODJkNGIzN2ZkYmExYjdmMmRkNGE4ZGEy
NTdlOGFiOTc3Yy4uZTgyNGRmNzZhODQyZjMyMDdmYWUwZWNlNjQ0NGU5ZTJmMjQ1ZWZlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNzY0LDYgKzc2NCwxMSBAQCBkZXZpY2VPcmll
bnRhdGlvbkV2ZW50RW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogICBjb25kaXRpb25hbDogREVW
SUNFX09SSUVOVEFUSU9OCiAKK2RldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgaW5pdGlhbDogZmFsc2UKKyAgY29uZGl0aW9uYWw6IERFVklDRV9P
UklFTlRBVElPTgorCiBzaG91bGRFbmFibGVUZXh0QXV0b3NpemluZ0Jvb3N0OgogICB0eXBlOiBi
b29sCiAgIGluaXRpYWw6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbAppbmRleCBmNTU4NDMyNTkwZmJkZWI2ODk3OTNlMGI0OWIyNjc3ODQxNjdkMmVhLi44NDkz
MWFkZjkyMjI2ZGEwNDI2ZDcxMmEzMTRkY2U4YzhhZjYzZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEyLDYgKzEyLDE1IEBAIERldmljZU9yaWVudGF0
aW9uRXZlbnRFbmFibGVkOgogICBjb25kaXRpb246IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CiAgIHdlYmNvcmVOYW1lOiBkZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZAogCitEZXZpY2VP
cmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRW
YWx1ZTogZmFsc2UKKyAgY29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICB3
ZWJjb3JlTmFtZTogZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZAorICBodW1h
blJlYWRhYmxlTmFtZTogIlBlcm1pc3Npb24gQVBJIGZvciBkZXZpY2Ugb3JpZW50YXRpb24gLyBt
b3Rpb24gYWNjZXNzLiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRGV2aWNlT3JpZW50
YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIC8gRGV2aWNlTW90aW9uRXZlbnQucmVxdWVz
dFBlcm1pc3Npb24oKSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorCiBKYXZhU2NyaXB0RW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggM2VjNmYwMGQyNGZjOTM5NDI2OTBhM2U3
MjlmZDA3ZWQ3YTNhYTZjNy4uZmE5OWRjNWE2OTM4YzZhZjFkN2M1NDM5YzBkYmRmMjQ1NGEzOWY0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE3Myw2
ICsxNzMsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2so
V2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0
aW9uSGFuZGxlcih0cnVlKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9u
QWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21w
bGV0aW9uSGFuZGxlcih0cnVlKTsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xp
Y2tBdXRvRmlsbEJ1dHRvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFy
YW5jZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYTQxNjc2NmUyYjM4M2UxYjUxNDQ4ZmM5Y2M0
MDJjMDFmMWJlYjNhYS4uMWZmNGNlYjQzMzViZjQ4YWE5MmU3MzJkODEwNjMwZGRmMzQzMTJlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xMTUsNyArMTE1
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJh
c2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVu
dEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdl
VUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlD
bGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGll
bnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRW
MTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMj4gVmVyc2lvbnM7CisgICAg
dHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdL
UGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFn
ZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJ
Q2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNs
aWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTIsIFdLUGFnZVVJQ2xpZW50VjEzPiBWZXJzaW9uczsK
IH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTE5MDMsNiArMTkwMywyNCBAQCB2
b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdl
VUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGllbnQucmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKHRvQVBJKCZwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShyZXF1ZXN0
aW5nRG9tYWluLmltcGwoKSksIHRvQVBJKGN1cnJlbnREb21haW4uaW1wbCgpKSwgdG9BUEkobGlz
dGVuZXIucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VP
cmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKG1fY2xpZW50LnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b24odG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3JpZ2luKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5h
bAorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnJlcXVlc3REZXZpY2VNb3Rp
b25BY2Nlc3NQZXJtaXNzaW9uKQorICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcih0cnVlKTsKKworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobV9jbGllbnQucmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24odG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3Jp
Z2luKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSk7CisgICAgICAgIH0KKyNlbmRpZgorCiAg
ICAgICAgIC8vIFByaW50aW5nLgogICAgICAgICBmbG9hdCBoZWFkZXJIZWlnaHQoV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSkgZmluYWwKICAgICAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggNWU1OTcz
ZjlhYjE4YjQ2YTY1ZWZlMDhlZGY1ZjM1MDdhNzc1ZGYwYi4uNzQ3NjhkNGExZGU0MWZjOGUwOTYy
NjRmZjhlZjY5ZjYzMTk1MGE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VVSUNsaWVudC5oCkBAIC0xMzQsNiArMTM0LDggQEAgdHlwZWRlZiB2b2lkICgqV0tE
aWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNs
aWVudEkKIHR5cGVkZWYgdm9pZCAoKldLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFu
Z2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1
cmUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tEaWRFeGNlZWRC
YWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS1Jlc291cmNlTGltaXQgbGltaXQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
dHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRB
cHBlYXJhbmNlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgqV0tQYWdlUmVxdWVzdERldmlj
ZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tT
ZWN1cml0eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
Cit0eXBlZGVmIGJvb2wgKCpXS1BhZ2VSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lv
bkNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBzZWN1cml0eU9y
aWdpbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQKIHR5cGVkZWYg
V0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRN
b2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMTE0MCw2ICsxMTQyLDExMSBAQCB0eXBlZGVmIHN0cnVj
dCBXS1BhZ2VVSUNsaWVudFYxMiB7CiAgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25m
aXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm07CiB9IFdLUGFnZVVJQ2xpZW50VjEyOwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VV
SUNsaWVudFYxMyB7CisgICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgor
ICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAg
ICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAg
IFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZTsKKyAgICBXS1BhZ2VU
YWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzOworICAgIFdLUGFnZVVuZm9jdXND
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5m
b2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9y
VXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNl
V2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7CisgICAgV0tQYWdl
TW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAg
ICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAg
IFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OworICAgIFdLUGFnZURp
ZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAgICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2li
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlz
aWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VH
ZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxl
OworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldFN0YXR1
c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7CisgICAgV0tQ
YWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFdpbmRvd0ZyYW1lOwor
ICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNiAgICBydW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWNjsKKyAgICBXS1BhZ2VVSUNs
aWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOworICAgIFdLUGFnZUV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBhbmVsOworICAg
IFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFj
ayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
KyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlckhlaWdo
dDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVy
OworICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOwor
ICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJh
bmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVy
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNG
b2xkZXI7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxh
YmxlOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFj
a19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9k
ZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxs
YmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFn
ZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOwor
ICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworCisgICAgLy8g
VmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7CisKKyAgICAv
LyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJl
Z2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNl
ZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKKwor
ICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRv
bjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0
aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVz
ZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZv
clVzZVdpdGhWNTsKKyAgICBXS1BhZ2VNZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdl
OworCisgICAgLy8gVmVyc2lvbiA2LgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKKyAg
ICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0
Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFT
Y3JpcHRDb25maXJtOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBX
S0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbjsKKworICAgIC8vIFZl
cnNpb24gNy4KKyAgICBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAg
ICBXS0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZTsKKworICAgIC8vIFZlcnNp
b24gOC4KKyAgICBXS1JlcXVlc3RQb2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RQb2ludGVyTG9jazsKKyAgICBXS0RpZExvc2VQ
b2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpZExvc2VQb2ludGVyTG9jazsKKworICAgIC8vIFZlcnNpb24gOS4KKyAgICBXS0hhbmRsZUF1
dG9wbGF5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhhbmRsZUF1dG9wbGF5RXZlbnQ7CisKKyAgICAvLyBWZXJzaW9uIDEwLgorICAgIFdLSGFzVmlk
ZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2U7CisgICAgV0tEaWRFeGNlZWRC
YWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2sgICAgICAgICBk
aWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOworCisgICAg
Ly8gVmVyc2lvbiAxMS4KKyAgICBXS1BhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNz
d29yZEFwcGVhcmFuY2VDYWxsYmFjayAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9u
Z1Bhc3N3b3JkQXBwZWFyYW5jZTsKKworICAgIC8vIFZlcnNpb24gMTIuCisgICAgV0tQYWdlUmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm07CisKKyAgICAvLyBWZXJzaW9uIDEzLgorICAg
IFdLUGFnZVJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjayAg
ICAgICAgICAgICAgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbjsKKyAg
ICBXS1BhZ2VSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbkNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uOworfSBXS1Bh
Z2VVSUNsaWVudFYxMzsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0
ZS5oCmluZGV4IGRiZDA1M2U3ZmJkMGEwOTVmMDg4OGE3ZWRhMGJjMmJiYTczZTI1MzIuLjFjMmQw
NjUyZDBlYmU5MzEyYTZjOGZlYTUyMmU1MTM1MmJlMmUxNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAt
MTE0LDYgKzExNCw5IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tO
YXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5k
b3dGZWF0dXJlcyAqKXdpbmRvd0ZlYXR1cmVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShX
S1dlYlZpZXcgKndlYlZpZXcpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyAq
KWZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhbGxvd2VkKSlkZWNpc2lvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdERldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICop
c2VjdXJpdHlPcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3REZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4g
KilzZWN1cml0eU9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRl
ZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wgcmVzdWx0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGVkaXRvclN0YXRlRGlkQ2hhbmdlOihOU0RpY3Rpb25hcnkgKillZGl0b3JTdGF0ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IGNjYjc4YTI5ZTJhNGMyZmYxNmQ0MjUy
NWFlNWU0NjBhNzg5YmI3YTMuLmVmNzE2OGEzYTUwMjRlZGUxODg2OWQ2ODNiODkzZTEyN2E0NDU4
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTEx
OSw2ICsxMTksMTAgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFn
ZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VM
aW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKFdlYlBhZ2VQcm94eSYsIFdLUmVzb3VyY2VMaW1pdCkgZmlu
YWw7CiAgICAgICAgIHZvaWQgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJQYWdl
UHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgVVJM
JiwgQVBJOjpEYXRhJikgZmluYWw7CisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgICAgIHZvaWQgcmVxdWVzdERldmlj
ZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAjZW5k
aWYKICAgICAgICAgYm9vbCBuZWVkc0ZvbnRBdHRyaWJ1dGVzKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0
cmlidXRlczsgfQogICAgICAgICB2b2lkIGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdl
YkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikgZmluYWw7CkBAIC0xODcsNiArMTkxLDEwIEBAIHByaXZh
dGU6CiAgICAgICAgIGJvb2wgd2ViVmlld1NhdmVEYXRhVG9GaWxlU3VnZ2VzdGVkRmlsZW5hbWVN
aW1lVHlwZU9yaWdpbmF0aW5nVVJMIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3UnVuT3BlblBh
bmVsV2l0aFBhcmFtZXRlcnNJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgOiAxOwog
ICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3Vy
aXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyIDogMTsKKyNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3REZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7Cisg
ICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRm9y
U2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOwogI2VuZGlmCiAgICAgICAgIGJvb2wg
d2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YUN1
cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9u
SGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9y
aWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVy
IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4
IGI1YTBhNTA4YmM5OTZkM2M5YTk3ZjkzYWYzZWEzZjkyNTA5N2Y2NjUuLmJmNTRkNTJjNmM2YjNk
NmM4YzVhYmJhY2ZmMTllZmQ1YmE0NWNjOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTMyLDYgKzEzMiwxMCBAQCB2b2lkIFVJRGVsZWdhdGU6
OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdTYXZlRGF0YVRvRmlsZVN1Z2dlc3RlZEZpbGVuYW1lTWltZVR5cGVPcmln
aW5hdGluZ1VSTCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OnNhdmVEYXRhVG9GaWxlOnN1Z2dlc3RlZEZpbGVuYW1lOm1pbWVUeXBlOm9yaWdpbmF0aW5n
VVJMOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFy
YW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuT3BlblBhbmVsV2l0aFBhcmFtZXRl
cnM6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9y
aWdpbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmln
aW46ZGVjaXNpb25IYW5kbGVyOildOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdERldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdERldmlj
ZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFu
ZGxlcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdERldmljZU1vdGlv
bkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3REZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOild
OwogI2VuZGlmCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVv
dGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnRE
YXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZURhdGFiYXNlUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbjpjdXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRh
YmFzZVVzYWdlOmV4cGVjdGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5EYXRh
YmFzZU5hbWVEaXNwbGF5TmFtZUN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnRE
YXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZURhdGFiYXNlUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbjpkYXRhYmFzZU5hbWU6ZGlzcGxheU5hbWU6Y3VycmVudFF1b3RhOmN1cnJl
bnRPcmlnaW5Vc2FnZTpjdXJyZW50RGF0YWJhc2VVc2FnZTpleHBlY3RlZFVzYWdlOmRlY2lzaW9u
SGFuZGxlcjopXTsKQEAgLTg0NCw2ICs4NDgsNDQgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6cnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHIK
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgVUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24o
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdERl
dmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25I
YW5kbGVyKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBh
dXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFk
ZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAg
YXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVn
YXRlLmdldCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICBb
KGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUu
bV93ZWJWaWV3IHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1
cml0eU9yaWdpbjp3cmFwcGVyKHNlY3VyaXR5T3JpZ2luKSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBj
aGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0gKEJPT0wgZ3JhbnRlZCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVy
KCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOworICAgIH0pLmdldCgpXTsK
K30KKwordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vz
c1Blcm1pc3Npb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBz
ZWN1cml0eU9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3UmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRl
Y2lzaW9uSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwor
CisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAg
IGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsK
KworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0
ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOikpOworICAg
IFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0
ZS5tX3dlYlZpZXcgcmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0
eU9yaWdpbjp3cmFwcGVyKHNlY3VyaXR5T3JpZ2luKSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJsb2Nr
UHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVj
a2VyID0gV1RGTW92ZShjaGVja2VyKV0gKEJPT0wgZ3JhbnRlZCkgbXV0YWJsZSB7CisgICAgICAg
IGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOworICAgIH0pLmdldCgpXTsKK30K
KyNlbmRpZgorCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWRDaGFuZ2VGb250QXR0cmli
dXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRlcyYgZm9udEF0dHJpYnV0ZXMpCiB7CiAg
ICAgaWYgKCFuZWVkc0ZvbnRBdHRyaWJ1dGVzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCAyNDU1MGU0OWQ4Y2YxZGU0ODhiOTc1MmUxMmFiMzAzZjFjZjM1
MzAwLi4xZDEyZTUxY2JjZGU0YzRkNTFiNGJhN2M2MjdjNjAyNzdmZGQwZDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTcxNjgsNiArNzE2OCwyOCBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVkaWFTdGF0ZSgpCiAjZW5kaWYKIH0KIAorI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdERl
dmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiBvcmlnaW5EYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8gb3JpZ2lu
ID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4o
KSk7CisgICAgbV91aUNsaWVudC0+cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlz
c2lvbigqdGhpcywgb3JpZ2luLmdldCgpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyksIGNhbGxiYWNrSURdKGJvb2wgZ3JhbnRlZCkgeworICAgICAgICBpZiAoIXdlYWtUaGlz
IHx8ICFpc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9u
QWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKGNhbGxiYWNrSUQsIGdyYW50ZWQpLCBtX3BhZ2VJRCk7
CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1
aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVu
dC0+cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oKnRoaXMsIG9yaWdpbi5nZXQo
KSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjYWxsYmFja0lEXShib29s
IGdyYW50ZWQpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhaXNWYWxpZCgpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbk1vdGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lv
bihjYWxsYmFja0lELCBncmFudGVkKSwgbV9wYWdlSUQpOworICAgIH0pOworfQorI2VuZGlmCisK
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNS
ZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCAyMTU1ZDE0MmU0NGZiYTU0NDU4YmM3MWY1MzkxYmU2ZTA5YjRlODAzLi4zMjc0
MzJkOWNmODU4YzViNWY1ZGNmNmZhNzZjNmRlOGQxNThhY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQwMSw2ICsxNDAxLDExIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHJl
cXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgorCiAgICAgc3RhdGljIFdlYlBh
Z2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CiAKICNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IGU4NjRkNGE5NmZiNjdmOWE1M2YxZDYwOWM2OWY3NzY1MjEzODRh
MDAuLmEwNTk3ZTljMDhiNjM2Mjk2M2JkYjU1ZDJkMzYxZjM5MjQ5ZmU3MjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTUzMiw2
ICs1MzIsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTdG9wVVJMU2NoZW1l
VGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIp
CiAgICAgTG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hl
bWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgSVBDOjpEYXRhUmVmZXJl
bmNlIGRhdGEpIERlbGF5ZWQKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAg
UmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgUmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworI2VuZGlmCisKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIFJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZp
ZXJGcm9tRGF0YShTdHJpbmcgaWRlbnRpZmllciwgU3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJpbmcg
cHJlZmVycmVkRmlsZU5hbWUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhKQog
ICAgIFJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXJGcm9tRmlsZVBhdGgoU3RyaW5nIGlkZW50
aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIGZpbGVQYXRoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAppbmRleCA2N2ZkN2E3MjBjZTJmMzM5NzcwMzUxNDhiZGJkMmNlZmE3YzdmZDM1Li43
ZjUwNTcwZGM0YTNkMGZlMWQwNTlmZmQ5NWU4MmNiMWM2Mzk1Yzk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtMTMyMCw0ICsxMzIwLDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyCiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBT
ZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNh
bGxiYWNrKQoreworICAgIG1fcGFnZS5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJt
aXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjYWxsYmFjaykpOworfQorCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykK
K3sKKyAgICBtX3BhZ2UucmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24ob3JpZ2lu
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjkyNmEyNThhZDg1YWIwNzc5MTZkMGNiMjM1Mjg0ZDhl
YjNiZGFhNy4uMzAzNDNkZWYxZWY1ZmYyOTU5YzQwMGUzZjQ4YTQ2NTdhZTdkYjk3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMzY2LDYgKzM2NiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFt
ZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkIChib29sKT4mJikgZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworI2VuZGlmCisKICAgICBTdHJpbmcgbV9jYWNo
ZWRUb29sVGlwOwogICAgIG11dGFibGUgUmVmUHRyPFdlYkZyYW1lPiBtX2NhY2hlZEZyYW1lU2V0
TGFyZ2VzdEZyYW1lOwogICAgIG11dGFibGUgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUhhc0hvcml6
b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCA4OTY4NzYwZjllNGU2NmZhMWY0ZDU5MTY2YTcyZTcwOTEy
ODQ5ZTBlLi5iNWJlNzAzMmRmMzM1ZTM3M2FhOWU1OGRkYjhjZTIxN2QwY2MxMjE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjM1NCw2ICs2
MzU0LDM5IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3Vi
RnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJl
cXVlc3RTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCgpLCBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVj
a2VkQ3JlYXRlRnJvbUhvc3Qoc3ViRnJhbWVIb3N0KSwgUmVnaXN0cmFibGVEb21haW46OnVuY2hl
Y2tlZENyZWF0ZUZyb21Ib3N0KHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIG1fcGFnZUlELCBwcm9t
cHRFbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogI2VuZGlmCisKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorc3RhdGljIHVpbnQ2NF90IG5leHREZXZpY2VP
cmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKCkKK3sKKyAgICBzdGF0aWMgdWlu
dDY0X3QgbmV4dENhbGxiYWNrSUQgPSAwOworICAgIHJldHVybiArK25leHRDYWxsYmFja0lEOwor
fQorCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvIGNhbGxiYWNrSUQgPSBuZXh0
RGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCgpOworICAgIEFTU0VS
VCghbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5jb250YWlu
cyhjYWxsYmFja0lEKSk7CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25D
YWxsYmFja01hcC5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKG9yaWdpbi5kYXRhKCksIGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdl
OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxi
YWNrKQoreworICAgIGF1dG8gY2FsbGJhY2tJRCA9IG5leHREZXZpY2VPcmllbnRhdGlvbk1vdGlv
blBlcm1pc3Npb25DYWxsYmFja0lEKCk7CisgICAgQVNTRVJUKCFtX2RldmljZU9yaWVudGF0aW9u
TW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLmNvbnRhaW5zKGNhbGxiYWNrSUQpKTsKKyAgICBt
X2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLmFkZChjYWxsYmFj
a0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKG9yaWdpbi5kYXRhKCksIGNh
bGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRp
b25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9v
bCBncmFudGVkKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX2RldmljZU9yaWVudGF0aW9uTW90
aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLnRha2UoY2FsbGJhY2tJRCk7CisgICAgQVNTRVJUKGNh
bGxiYWNrKTsKKyAgICBjYWxsYmFjayhncmFudGVkKTsKK30KKyNlbmRpZgogICAgIAogc3RhdGlj
IFNoYXJlU2hlZXRDYWxsYmFja0lEIG5leHRTaGFyZVNoZWV0Q2FsbGJhY2tJRCgpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZDIxZWFmYmM1MjM1
MmMyNTcyNzlmOGYzMmVhNjU2MzkwOGViNmE5Mi4uNDQ4N2IwMTYyODEwZWI0YmNmMjlmMGRhZWY0
ZTE1YTdlNTA2ZmQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtMTExMSw2ICsxMTExLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1
aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNr
KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lk
IHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisjZW5kaWYKKwog
ICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CiAgICAgdm9p
ZCBkaWRDb21wbGV0ZVNoYXJlU2hlZXQoYm9vbCB3YXNDb21wbGV0ZWQsIFNoYXJlU2hlZXRDYWxs
YmFja0lEIGNvbnRleHRJZCk7CiAgICAgCkBAIC0xMjA3LDYgKzEyMTIsMTAgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisgICAgdm9pZCBkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNz
aW9uRGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKTsKKyNlbmRpZgor
CiAjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7
CiAjZW5kaWYKQEAgLTE4MzcsNiArMTg0NiwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sIGdyYW50ZWQpPj4gbV9zdG9yYWdlQWNjZXNz
UmVzcG9uc2VDYWxsYmFja01hcDsKICAgICBIYXNoTWFwPFNoYXJlU2hlZXRDYWxsYmFja0lELCBX
VEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBjb21wbGV0ZWQpPj4gbV9zaGFyZVNoZWV0UmVzcG9uc2VD
YWxsYmFja01hcDsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgSGFzaE1h
cDx1aW50NjRfdCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZ3JhbnRlZCk+PiBt
X2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwOworI2VuZGlmCisK
ICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
dWludDY0X3Q+IG1fYXBwbGljYXRpb25NYW5pZmVzdEZldGNoQ2FsbGJhY2tNYXA7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCmluZGV4IGNiMGI1NzA5MzM2NGMwZTU1NDI0M2Y5MzA5YzM5MjVkNTQ4YWY0ZjAuLjZk
YzliZTQ5NzMxYWYyYmUyYTVkZDMwMGQyMDQ5MDdhYTE1MWMyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzY0
LDYgKzM2NCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICAj
IE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAorI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisgICAgRGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9u
QWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRl
ZCkKKyNlbmRpZgorCiAgICAgIyBQcmludGluZy4KICAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJp
bnRpbmcoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGUxZDA2MTBkMTE5ZjY1MzE3NTA1Y2ZhN2I3YzhkOTljYzY0MTM3NTMuLjcyNDA2MTI4OWRh
MmMwOWVkNGUyNjNjZWFmNzA4OTFjNmRkYThlMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0wMy0wNSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBE
ZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTMyOQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gaGVscCB0ZXN0IHRoZSBEZXZp
Y2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkuCisKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25B
Y2Nlc3MpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU1v
dGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXVFI6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b24pOgorICAgICAgICAoV1RSOjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZh
bHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpoYW5kbGVEZXZpY2VPcmllbnRh
dGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmhhbmRsZURldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNz
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKToKKwogMjAxOS0wMy0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIERvIG5vdCBzaGFyZSBXZWJQcm9jZXNzZXMgYmV0d2VlbiBwcml2YXRlIGFuZCByZWd1
bGFyIHNlc3Npb25zCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCAwZTc5ZDgwYjYwMWYz
Mjk1ZThiODE1YmExMDA4Yjk5N2QxYjgwYzZmLi5lZWUzOGQ2OWVmYjA0MTA1NjU5ZDFiZGVjMjE3
NWUyZTM5MWIxYjI2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTEwNCw2ICsxMDQs
MTAgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIGJvb2xlYW4gaXNDb21tYW5kRW5hYmxl
ZChET01TdHJpbmcgbmFtZSk7CiAgICAgdW5zaWduZWQgbG9uZyB3aW5kb3dDb3VudCgpOwogCisg
ICAgLy8gRGV2aWNlIE9yaWVudGF0aW9uIE1vdGlvbi4KKyAgICB2b2lkIHNldFNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MoYm9vbGVhbiB2YWx1ZSk7CisgICAgdm9pZCBzZXRTaG91
bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyhib29sZWFuIHZhbHVlKTsKKwogICAgIC8vIFNwZWNp
YWwgRE9NIHZhcmlhYmxlcy4KICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBnbG9iYWxGbGFnOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAppbmRleCBkNDYyMjQ2Y2RiOWMxOGY3N2NlNDVkNzMxMzcyODA0YTY1MWRkMzAyLi41YTAy
MjBlMzliMThiMTRkOGU3ODIzYTNjNjg0YzY2MzYzZWUwMGVjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEyOTQs
NiArMTI5NCwyMCBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5
YWJsZU1JTUVUeXBlcyhib29sIHZhbHVlKQogICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0
KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJTZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzIikpOworICAg
IFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFu
Q3JlYXRlKHZhbHVlKSk7CisgICAgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5k
bGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2Fn
ZUJvZHkuZ2V0KCkpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZEFsbG93RGV2aWNl
TW90aW9uQWNjZXNzKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRT
aG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xl
YW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOworICAg
IFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdl
KCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwog
dm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyIpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggNzEzYTk0
MzM2MzkwNWYwYzliNzYwZDU3NGFjOGYzMjRkOGQ1MTZmYy4uYTEwYWMwODk1NzkwOGExYTdlNzIz
MzMyNGEyNTc0ZmJhZTVkYTRjNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM0OCw2ICszNDgsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0
SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGREb3du
bG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCk7CisgICAgdm9pZCBzZXRTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dE
ZXZpY2VNb3Rpb25BY2Nlc3MoYm9vbCk7CiAKICAgICBib29sIGRpZENhbmNlbENsaWVudFJlZGly
ZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVjdDsgfQogICAgIHZv
aWQgc2V0RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoYm9vbCB2YWx1ZSkgeyBtX2RpZENhbmNlbENs
aWVudFJlZGlyZWN0ID0gdmFsdWU7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggODVhOWRjMzBhOWNiOGY2OTI0ZDA3MjViMGJjNGFkNDIzZTZkZGQ2Ni4u
MjBlZmNjNzVjNTQ4NjhlZjQyOTNjMWMwNDgwYzlkMjljMjI2YTg5MiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI2MSw2ICsyNjEsMTYgQEAgc3RhdGlj
IHZvaWQgcmVxdWVzdFBvaW50ZXJMb2NrKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKikKICAg
ICBXS1BhZ2VEaWRBbGxvd1BvaW50ZXJMb2NrKHBhZ2UpOwogfQogCitzdGF0aWMgYm9vbCByZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKFdLUGFnZVJlZiwgV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW4sIGNvbnN0IHZvaWQqKQoreworICAgIHJldHVybiBUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuaGFuZGxlRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9u
UmVxdWVzdChvcmlnaW4pOworfQorCitzdGF0aWMgYm9vbCByZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbihXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25z
dCB2b2lkKikKK3sKKyAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRs
ZURldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KG9yaWdpbik7Cit9CisKIFdLUGFn
ZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29u
ZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdh
dGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbykKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0
aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7
CkBAIC01NjksOCArNTc5LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dp
dGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIHJlc2V0UHJlZmVyZW5j
ZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZp
ZXcoY29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWOCBw
YWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsgOCwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAg
IFdLUGFnZVVJQ2xpZW50VjEzIHBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyAxMywgbV9tYWlu
V2ViVmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UK
QEAgLTYzNiw3ICs2NDYsMTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dp
dGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgICAgICAwLCAvLyBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwKICAgICAgICAgMCwgLy8gZnVsbHNjcmVlbk1heVJldHVy
blRvSW5saW5lCiAgICAgICAgIHJlcXVlc3RQb2ludGVyTG9jaywKLSAgICAgICAgMCwKKyAgICAg
ICAgMCwgLy8gZGlkTG9zZVBvaW50ZXJMb2NrCisgICAgICAgIDAsIC8vIGhhbmRsZUF1dG9wbGF5
RXZlbnQKKyAgICAgICAgMCwgLy8gaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UK
KyAgICAgICAgMCwgLy8gZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9y
ZWdyb3VuZAorICAgICAgICAwLCAvLyBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29y
ZEFwcGVhcmFuY2UKKyAgICAgICAgMCwgLy8gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtCisg
ICAgICAgIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24sCisgICAgICAg
IHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uCiAgICAgfTsKICAgICBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2Up
OwogCkBAIC05NDIsNiArOTU5LDkgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRv
Q29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKIAogICAgIG1f
c2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzID0gZmFsc2U7CiAKKyAgICBtX3No
b3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MgPSBmYWxzZTsKKyAgICBtX3Nob3VsZEFs
bG93RGV2aWNlTW90aW9uQWNjZXNzID0gZmFsc2U7CisKICAgICBtX3dvcmtRdWV1ZU1hbmFnZXIu
Y2xlYXJXb3JrUXVldWUoKTsKIAogICAgIG1fcmVqZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRp
bnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzID0gZmFsc2U7CkBAIC0yNTQ3LDYgKzI1Njcs
MTggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlQ2hlY2tPZlVzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4oV0tGcmFtZVJlZiBmcmFtZSwKICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1NldFVzZXJNZWRpYUFjY2Vzc0luZm8oY2hlY2tSZXF1ZXN0LCBzYWx0U3RyaW5nLmdldCgp
LCBzZXR0aW5nc0Zvck9yaWdpbihvcmlnaW5IYXNoKS5wZXJzaXN0ZW50UGVybWlzc2lvbigpKTsK
IH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uUmVxdWVzdChXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKK3sKKyAgICBtX2N1
cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1ha2VTdHJpbmcoIlJlY2VpdmVkIGRldmljZSBv
cmllbnRhdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4g
XCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUob3JpZ2luKSwgIlwiLlxuIikpOworICAgIHJldHVy
biBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3M7Cit9CisKK2Jvb2wgVGVzdENv
bnRyb2xsZXI6OmhhbmRsZURldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KFdLU2Vj
dXJpdHlPcmlnaW5SZWYgb3JpZ2luKQoreworICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1
dFRleHQobWFrZVN0cmluZygiUmVjZWl2ZWQgZGV2aWNlIG1vdGlvbiBhY2Nlc3MgcGVybWlzc2lv
biByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gXCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUo
b3JpZ2luKSwgIlwiLlxuIikpOworICAgIHJldHVybiBtX3Nob3VsZEFsbG93RGV2aWNlTW90aW9u
QWNjZXNzOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpoYW5kbGVVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdChXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCkKIHsKICAgICBhdXRv
IG9yaWdpbkhhc2ggPSB1c2VyTWVkaWFPcmlnaW5IYXNoKHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAppbmRleCBhMGMzYTcyZTc4MjAzMGM4NjJlZDNiMDQwNjg4ZjdlYTQ3ZmJhYzA3Li5k
OTZmZGQwZmZiZjVmMWQ2NDg4NDNiZGQ2YThhYjMxMzhiZDkwMTVlIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xNTAsNiArMTUwLDEwIEBAIHB1YmxpYzoKICAg
ICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9yT3JpZ2luKFdLU3Ry
aW5nUmVmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luU3RyaW5nLCBXS1N0cmluZ1JlZiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luU3RyaW5nKTsKICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDb3VudEZvck9yaWdpbihXS1N0cmluZ1JlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
blN0cmluZywgV0tTdHJpbmdSZWYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7CiAKKyAg
ICAvLyBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24uCisgICAgYm9vbCBoYW5kbGVEZXZpY2VP
cmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYpOwor
ICAgIGJvb2wgaGFuZGxlRGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1
cml0eU9yaWdpblJlZik7CisKICAgICAvLyBDb250ZW50IEV4dGVuc2lvbnMuCiAgICAgdm9pZCBj
b25maWd1cmVDb250ZW50RXh0ZW5zaW9uRm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwog
ICAgIHZvaWQgcmVzZXRDb250ZW50RXh0ZW5zaW9ucygpOwpAQCAtMTk5LDYgKzIwMyw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogCiAg
ICAgdm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1
ZSkgeyBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IHZhbHVlOyB9Cisg
ICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2wgdmFsdWUp
IHsgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzID0gdmFsdWU7IH0KKyAgICB2
b2lkIHNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91
bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyA9IHZhbHVlOyB9CiAKICAgICB2b2lkIHNldFN0YXRp
c3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoV0tTdHJpbmdSZWYgaG9zdE5hbWUpOwpAQCAtNTA4LDYg
KzUxNCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlRW5hYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlUGVybWlzc2l2ZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyB7IGZhbHNlIH07
CisgICAgYm9vbCBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9zaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyB7IGZhbHNlIH07CiAK
ICAgICBib29sIG1fcmVqZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFuZGxlc0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCmluZGV4IDY2NjBjZGM5MjFmODk3Y2NlMmY3NzFkOGQ1M2E1YzI2ZjIxMjQ4Zjku
LjI1ZmRlNTZmZDVlZmNjOGUyMTIxYzZlYTMzZGZlOWFlZDcwNTM3YTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC03NDcsNiArNzQ3LDIwIEBAIHZvaWQg
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3Ry
aW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVz
c2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVm
IHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAg
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKFdL
R2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAg
IFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJv
ZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkQWxsb3dE
ZXZpY2VNb3Rpb25BY2Nlc3MoV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiUnVuVUlQcm9jZXNzU2NyaXB0IikpIHsKICAgICAgICAgV0tEaWN0aW9uYXJ5UmVm
IG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVz
c2FnZUJvZHkpOwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc2NyaXB0S2V5KEFk
b3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTY3JpcHQiKSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YjUzZTkzZmQ2YmNiNTQ3NzdlZjQ5ODc5OGUwZDhlODczNGY3ODRiNS4uM2Q1OWQwNGIxZTcyNGI0
NjI2ZjBhOWFmM2RiM2M4Y2E1YTg1YWUwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTAz
LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1v
cmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMDMtMDMgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFByZXBhcmUgdG8gaW1wcm92ZSBoYW5kbGluZyBv
ZiBjb252ZXJzaW9uIG9mIGZsb2F0IHRvIHN0cmluZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDIy
OTdmNWFiMWIzZWI0OWU1Y2ZkMzBkODViMjY3ZDRkNjhiYTZjNDIuLjE2ZTI1NDY4MjNlYTMyNzNl
MGU4NWYwMTVmNGZjYTAxZWQ4MDY1NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzIsNiArMzIs
NyBAQCBmYXN0L3pvb21pbmcvaW9zIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL2lvcyBbIFNraXAgXQog
ZmFzdC92aWV3cG9ydC9pb3MgWyBTa2lwIF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBT
a2lwIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9pb3Mg
WyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3BvaW50
ZXIvaW9zIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzU4NTlj
NjNkMzc0MDliNDMyMjMyYjdhZDE2MmE5ODQyNDU4ZjJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZW1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRp
bCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRl
dmljZSBtb3Rpb24gYWNjZXNzIHBlcm1pc3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2lu
ICIiLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBObyBkZXZpY2Vtb3Rpb24gZXZlbnRzIHdp
bGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQu
CitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigp
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImRlbmll
ZCIKK1BBU1MgcmVzdWx0IGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmQyMzk4MTk1YTMxNGZk
ZjA1ZTNjZjZhOWUyMmJjMDQ0OGJmZmJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
ZGVuaWVkLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZl
bnQucmVxdWVzdFBlcm1pc3Npb24oKS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU1v
dGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgp
ID0+IHt9KTsKKworRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChf
cmVzdWx0KSA9PiB7CisgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKworICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmlj
ZW1vdGlvbiIsICgpID0+IHt9KTsKKworICAgIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0Owor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGVhMTdmNTNjZDUxZGEz
NmU1MGZhYWQ4ZmFiY2Q1ZWM3NmZhZjdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
Z3JhbnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDEyOiBObyBkZXZpY2Vtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlz
c2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2UgbW90
aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0Jh
c2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIK
K1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTQyMTQ3ZDgxODU4ZjFl
MDk0ZWJlMTBmZGYzZWFiYzIwNjFlZWIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
Z3JhbnRlZC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2
ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VN
b3Rpb25BY2Nlc3ModHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgp
ID0+IHt9KTsKKworRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChf
cmVzdWx0KSA9PiB7CisgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZp
Y2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVy
bWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEwMzBm
MTBkYmFmZmIzNjdiNzFiYWZiZDk5NGU3NDQzMjFjZjhmNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJl
IGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgor
UmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9y
IHNlY3VyaXR5IG9yaWdpbiAiIi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogTm8gZGV2aWNl
b3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVz
ZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5p
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xODZmMWI5NjE1NGI4MTdmYmRhMmRkYmM5MzFhOGQ2YWRhNWUy
MGJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApAQCAt
MCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQ
ZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFj
Y2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkg
PT4ge30pOworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhl
bigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJk
ZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworICAgIERldmljZU9yaWVudGF0aW9uRXZl
bnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3Vs
dCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRl
bmllZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNDJjOTBjNDJkNTI0NTVlNTZlNzJmODg4NGRjZmM2Mzk2YzhiZTQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZW9yaWVudGF0aW9u
IGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVk
IGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2VzcyBwZXJtaXNz
aW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERl
dmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQg
aXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjAwMWNjZTBlZjNiZTQ0ZWUz
NDg5MjA5MGEwZDE2MWU1ZDhlNGE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1ncmFudGVkLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50
YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3ModHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmlj
ZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVl
c3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAg
YWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICBE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkg
PT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNl
Y3VyZS1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Ut
b3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IGVkMmRkMjAz
NzdjNTczNjVlMWE1ZjdmZmM1MjU0ZjcyN2Q3MWI1ZGMuLmI3ZmUxODBhN2E1YTZkNDU4YjAyYThl
NzkzYzQ0ZGZjZGM3ZDU5YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZl
bnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlv
bi1ub24tc2VjdXJlLWNvbnRleHQuaHRtbApAQCAtMjcsNyArMjcsNyBAQCBmdW5jdGlvbiBydW5E
ZXZpY2VNb3Rpb25UZXN0KCkKICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9u
IGxpc3RlbmVyIik7CiAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rp
b24oKSB7IH0pOwogICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0
byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhl
IGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBh
IGRldmljZW1vdGlvbiBldmVudCBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0
IGlzIG5vdCBzZWN1cmUuIik7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogfQpA
QCAtNDQsNyArNDQsNyBAQCBmdW5jdGlvbiBydW5EZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAg
IGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lciIpOwogICAg
IGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwog
ICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZp
Y2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNv
bnRleHQgaXMgbm90IHNlY3VyZS4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJs
YXN0Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZW9yaWVu
dGF0aW9uIGV2ZW50IGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90
IHNlY3VyZS4iKTsKICAgICAgICAgcnVuRGV2aWNlTW90aW9uVGVzdCgpOwogICAgIH0pOwogfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0
aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9l
dmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4
IDRlNTRkMTFkOTk0MWU3NThlMDI3NTBiODZkNDNlMzJiYzk0MzNlZWUuLjVmODBmNDExODI2YmI3
NjQ4MmNjZjc0MmU1ZjI2YTQ4YTcwMzhlZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24t
bW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKQEAgLTYsNiArNiwxMSBAQAogZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3Jp
ZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBz
ZWN1cmUgY29udGV4dHMuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQWNjZXNzKHRydWUpOworICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rp
b25BY2Nlc3ModHJ1ZSk7Cit9CisKIC8vIGxvY2FsaG9zdCBpcyBzZWN1cmUgYnkgZGVmYXVsdC4K
IAogbGV0IGxhc3RDb25zb2xlTWVzc2FnZSA9IG51bGw7CkBAIC0xNSwxOSArMjAsMjUgQEAgaW50
ZXJuYWxzLnNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoKG1lc3NhZ2UpID0+IHsKIAogZnVuY3Rp
b24gcnVuRGV2aWNlTW90aW9uVGVzdCgpCiB7CisgICAgZGVidWcoIiIpOwogICAgIGlmICghd2lu
ZG93LkRldmljZU1vdGlvbkV2ZW50KSB7CiAgICAgICAgIGNvbnNvbGUubG9nKCJEZXZpY2UgTW90
aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkIik7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAg
ICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0
ZW5lciIpOwotICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkg
eyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZU51
bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBk
ZWJ1ZygiKiBSZXF1ZXN0aW5nIGRldmljZSBtb3Rpb24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNl
TW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAg
ICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVz
dWx0IiwgImdyYW50ZWQiKTsKKworICAgICAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOwor
ICAgICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7Cisg
ICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsK
KyAgICAgICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJl
TnVsbCgibGFzdENvbnNvbGVNZXNzYWdlIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5LDEyICs1MCwxOSBAQCBmdW5jdGlvbiBy
dW5EZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZp
Y2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vv
cmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkg
PT4gewotICAgICAgICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAg
ICBydW5EZXZpY2VNb3Rpb25UZXN0KCk7CisgICAgZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2Ug
b3JpZW50YXRpb24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1
ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jl
c3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIp
OworCisgICAgICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24KKyAg
ICAgICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKKyAgICAgICAgZGVidWcoIiogUmVnaXN0
ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFkZEV2ZW50TGlz
dGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOworICAgICAgICBpbnRl
cm5hbHMucG9zdFRhc2soKCkgPT4geworICAgICAgICAgICAgc2hvdWxkQmVOdWxsKCJsYXN0Q29u
c29sZU1lc3NhZ2UiKTsKKyAgICAgICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3QoKTsKKyAgICAg
ICAgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA2OWM4Mzg0ZTJjODE4NjUyZjA0NWFjZjQ5NTU0Y2I2MmUyNzll
ZWFiLi4wYjhlODRkODA2OTc2NTlhNTQwOGVjYTA3YjgwYjg1NTMxMzc4MDgyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC03LDYgKzcsNyBA
QAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBjb21wb3NpdGluZy9pb3Mg
WyBQYXNzIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0L2hpc3Rvcnkv
aW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KIGZhc3Qvdmlld3BvcnQv
aW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90
ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRz
L2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4
dAppbmRleCA4Njc3OWFmNDY1MTExMWIxODcxNWE1M2U3YjExZTNiMTFiOTczYTExLi5mZGYxZWZm
ODcyMTY3ZmRmMTI4NzQ1ODFmYzgwMTdiZTE2NGUyYzVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlv
bi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1z
ZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTUgKzEsMTUgQEAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA0NTogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Ig
b3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qg
c2VjdXJlLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRk
IGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93
c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDU6IEJs
b2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2VvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciBi
ZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMjg6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZlbnQg
bGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgogVGVz
dHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRh
dGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gbG9ncyBhbiBlcnJvciBpbiBub24tc2VjdXJlIGNv
bnRleHRzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAogKiBSZWdpc3RlcmluZyBk
ZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJC
bG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0
ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBs
YXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vvcmll
bnRhdGlvbiBldmVudCBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5v
dCBzZWN1cmUuIgogCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVuZXIKLVBBU1Mg
bGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1v
dGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0
IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0
ZW1wdCB0byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJv
d3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNv
bnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMv
ZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQu
dHh0CmluZGV4IDMxYjg1ZjVkN2Q0NWYzN2Y5ZDZiMTY1ZjY3MzdkZmU1OTIyZWRmNWMuLmFiMmI0
MzNlZjk0M2M0MmFlMmE4MzU5ODM4ODk1MTIwM2M5OTFiOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90
aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUt
Y29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTcgQEAKK1JlY2VpdmVkIGRldmljZSBv
cmllbnRhdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIuCitSZWNlaXZlZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBw
ZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIi4KIFRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2
aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJv
ciBpbiBzZWN1cmUgY29udGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCisq
IFJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2Vzcy4uLgorUEFTUyByZXN1bHQgaXMg
ImdyYW50ZWQiCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lcgogUEFT
UyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgbnVsbAogCisqIFJlcXVlc3RpbmcgZGV2aWNlIG1vdGlv
biBhY2Nlc3MuLi4KK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgogKiBSZWdpc3RlcmluZyBkZXZp
Y2UgbW90aW9uIGxpc3RlbmVyCiBQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyBudWxsCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363670</attachid>
            <date>2019-03-05 12:40:30 -0800</date>
            <delta_ts>2019-03-05 13:07:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190305124030.patch</filename>
            <type>text/plain</type>
            <size>96271</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2NTk5ZTMzMzQxZjUz
NzBlNTAwNzRlNGM5MWZhZjUyOWNmNTJkOC4uNGE3MDJkZTIzY2IzY2MzZjVlMGFmM2JjOTc4ZTk3
OWFjZjY0M2ExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTAzLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9E
ZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVz
dFBlcm1pc3Npb24pOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmg6Cisg
ICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0
aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLnlhbWw6CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBJbXByb3ZlIG91ciBmaWxlIHBpY2tlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA4NzZlY2Q1ZDQxMGEzZTVhODRkOWIxMTRkYTY2ZWRkZjUxMTM3MDFmLi4wZmIzZjg4MzBjOTEz
MDMwNDBjODg5MTExMDZkYTEwOThiMmNhNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisy
MDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0
aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNv
bS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoK
KyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdl
YktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlTW90
aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om5leHREZXZpY2VP
cmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9u
TW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDE5LTAzLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgRG8gbm90IHNoYXJlIFdlYlByb2Nlc3NlcyBiZXR3ZWVuIHByaXZhdGUgYW5k
IHJlZ3VsYXIgc2Vzc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3Bw
CmluZGV4IDkwZDcwMmRjMzkwNTJkMGZjNzZkZTA4NDE1ZGE0N2I4MzczYjJkOTYuLjQ0Y2EzZTdi
NjMwYjY4ZDVjNDdlNWQ4ODFmNTY1M2YyMmVlNGE3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkV2ZW50LmNwcApAQCAtMjYsNyArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjIsNCArMTI2LDMyIEBAIEV2ZW50SW50ZXJmYWNl
IERldmljZU1vdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERldmljZU1vdGlvbkV2ZW50Ojpy
ZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYg
cHJvbWlzZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50LmlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAg
ICAgIGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsICJDYWxsIHRvIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNz
aW9uKCkgZmFpbGVkIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4i
X3MpOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVu
aWVkKTsKKyAgICB9CisKKyAgICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuQWNj
ZXNzKGRvY3VtZW50LnRvcE9yaWdpbigpKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQ2FsbCB0
byBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCBiZWNhdXNlIGl0
IHdhcyBtYWRlIGZyb20gYW4gaWZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9y
aWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29s
dmUoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0KKworICAgIGlmIChhdXRvIHBlcm1p
c3Npb25TdGF0ZSA9IGRvY3VtZW50LmRldmljZU1vdGlvbkFjY2Vzc1N0YXRlKCkpCisgICAgICAg
IHJldHVybiBwcm9taXNlLnJlc29sdmUoKnBlcm1pc3Npb25TdGF0ZSA/IFBlcm1pc3Npb25TdGF0
ZTo6R3JhbnRlZCA6IFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIGF1dG8qIHBhZ2Ug
PSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIHBhZ2UtPmNocm9tZSgp
LmNsaWVudCgpLnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKGRvY3VtZW50LnRv
cE9yaWdpbigpLCBbZG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShib29sIGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoZG9j
dW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUo
Z3JhbnRlZCk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShncmFudGVkID8gUGVybWlzc2lvblN0
YXRlOjpHcmFudGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0pOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlv
bkV2ZW50LmgKaW5kZXggM2VjYzViZDRjMGM3ZWVjMThlOWZiOGU0MTU2ZjE4YmYzZWY0NTMzZC4u
NjRhOTQ5ZDBmZmMyNDI0YmE5NDI3YmUzY2MxZGQ0NGNhMDY2MTIyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKQEAgLTI2LDEwICsyNiwxMiBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsKK2NsYXNz
IERvY3VtZW50OwogCiBjbGFzcyBEZXZpY2VNb3Rpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVu
dCB7CiBwdWJsaWM6CkBAIC02Niw2ICs2OCwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRE
ZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywg
Ym9vbCBjYW5jZWxhYmxlLCBPcHRpb25hbDxBY2NlbGVyYXRpb24+JiYsIE9wdGlvbmFsPEFjY2Vs
ZXJhdGlvbj4mJiwgT3B0aW9uYWw8Um90YXRpb25SYXRlPiYmLCBPcHRpb25hbDxkb3VibGU+KTsK
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZW51bSBjbGFzcyBQZXJtaXNz
aW9uU3RhdGUgeyBHcmFudGVkLCBEZW5pZWQgfTsKKyAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsK
KyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Q
cm9taXNlJiYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRGV2aWNlTW90aW9uRXZlbnQoKTsK
ICAgICBEZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRGV2
aWNlTW90aW9uRGF0YSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwK
aW5kZXggZjJmNWRmMjBmY2U1M2JjMTNiNWFiZTZkNDE4ZTIwYmQ1YTRmZDM4Ni4uMzJhZDZlNzVj
MGMzNGUxODQ2MjE4YWQ2OGE0ZWRlNjE3YTVkMjlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlTW90aW9uRXZlbnQuaWRsCkBAIC0zMSw2ICszMSw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFJvdGF0aW9uUmF0ZT8gcm90YXRpb25SYXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnJlc3RyaWN0ZWQgZG91YmxlPyBpbnRlcnZhbDsKIAorICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwg
RW5hYmxlZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUEldIHN0YXRpYyBQ
cm9taXNlPFBlcm1pc3Npb25TdGF0ZT4gcmVxdWVzdFBlcm1pc3Npb24oKTsKKwogICAgIHZvaWQg
aW5pdERldmljZU1vdGlvbkV2ZW50KG9wdGlvbmFsIERPTVN0cmluZyB0eXBlID0gIiIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFs
c2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBjYW5j
ZWxhYmxlID0gZmFsc2UsCkBAIC01NywzICs1OSw1IEBACiAgICAgZG91YmxlPyBiZXRhOwogICAg
IGRvdWJsZT8gZ2FtbWE7CiB9OworCitlbnVtIFBlcm1pc3Npb25TdGF0ZSB7ICJncmFudGVkIiwg
ImRlbmllZCIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmNwcAppbmRleCBlODIxYjY1NTMxMDhhMTIwYzBmYjI3MTI3YmE1NzU1MTkwZTcxZTFlLi44NTJj
ZWMxN2QxZDI0MjNlNTdkM2MxYmU2MGI3YjRiZDY0NTA5M2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCkBAIC0yNiw3ICsyNiwxMSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZlbnQuaCIKIAor
I2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMDksNCAr
MTEzLDMyIEBAIEV2ZW50SW50ZXJmYWNlIERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmV2ZW50SW50
ZXJmYWNlKCkgY29uc3QKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1l
bnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgaWYgKCFk
b2N1bWVudC5pc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQ2FsbCB0
byBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkIGJlY2F1
c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3MpOworICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAg
ICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuQWNjZXNzKGRvY3VtZW50LnRvcE9y
aWdpbigpKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQ2FsbCB0byBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkIGJlY2F1c2UgaXQgd2FzIG1hZGUgZnJv
bSBhbiBpZnJhbWUgdGhhdCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBt
YWluIHBhZ2UuIl9zKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9u
U3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAgaWYgKGF1dG8gcGVybWlzc2lvblN0YXRlID0g
ZG9jdW1lbnQuZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpKQorICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZXNvbHZlKCpwZXJtaXNzaW9uU3RhdGUgPyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50
ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1l
bnQucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2
ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGRvY3VtZW50LnRvcE9y
aWdpbigpLCBbZG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShib29sIGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoZG9jdW1l
bnQpCisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0
ZShncmFudGVkKTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGdyYW50ZWQgPyBQZXJtaXNzaW9u
U3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfSk7Cit9Cisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmgKaW5kZXggMDI1YjJlMzJhNzUxZTQyZjY1MGJiNTNiNTE1YTEw
YmRiNTI3ZjQ3OC4uMTZlMzNhZjkxOTg0NjFmNmVjMjYxNGY2YTNmNTgyMTlmZGY2ZDQyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCkBAIC0yNiwxMCAr
MjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJK
U0RPTVByb21pc2VEZWZlcnJlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERl
dmljZU9yaWVudGF0aW9uRGF0YTsKK2NsYXNzIERvY3VtZW50OwogCiBjbGFzcyBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKQEAgLTYwLDYgKzYy
LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXREZXZpY2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIE9wdGlv
bmFsPGRvdWJsZT4gYWxwaGEsIE9wdGlvbmFsPGRvdWJsZT4gYmV0YSwgT3B0aW9uYWw8ZG91Ymxl
PiBnYW1tYSwgT3B0aW9uYWw8Ym9vbD4gYWJzb2x1dGUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorICAgIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIHsgR3Jh
bnRlZCwgRGVuaWVkIH07CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBET01Qcm9taXNl
RGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47CisgICAgc3RhdGljIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlzZSYmKTsKKyNl
bmRpZgorCiBwcml2YXRlOgogICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQoKTsKICAgICBEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VP
cmllbnRhdGlvbkRhdGEqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmlkbAppbmRleCAxM2ZmN2JhZGMwZTU5MTE2NjM1OTVkMTVkMTFkYmQ2MGEzMzM5ZmRi
Li42OTI5OWZjNWU2MjgwZWMxMTNmYzMyYzY2MDE5YjNlY2JmNDdkYjJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCkBAIC0zMCw2ICszMCw4IEBA
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGJldGE7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGdhbW1hOwogCisgICAgW0Nh
bGxXaXRoPURvY3VtZW50LCBFbmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVudGF0aW9uUGVybWlz
c2lvbkFQSV0gc3RhdGljIFByb21pc2U8UGVybWlzc2lvblN0YXRlPiByZXF1ZXN0UGVybWlzc2lv
bigpOworCiAgICAgLy8gRklYTUU6IENvbnNpZGVyIGRlZmluaW5nIGFuIEVOQUJMRSBtYWNybyBm
b3IgaU9TIGRldmljZSBvcmllbnRhdGlvbiBjb2RlIGFuZC9vciBtb2RpZnlpbmcKICAgICAvLyB0
aGUgYmluZGluZ3Mgc2NyaXB0cyB0byBzdXBwb3J0IGdlbmVyYXRpbmcgbW9yZSBjb21wbGljYXRl
ZCBjb25kaXRpb25hbCBjb2RlLgogI2lmIGRlZmluZWQoV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkp
ICYmIFdURl9QTEFURk9STV9JT1NfRkFNSUxZCkBAIC01NSwzICs1Nyw0IEBACiAjZW5kaWYKIH07
CiAKK2VudW0gUGVybWlzc2lvblN0YXRlIHsgImdyYW50ZWQiLCAiZGVuaWVkIiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggMTQyOTI3ODZjYzhlZmVlZjViMWEyZmMxNWRjNzEwYmZlYzFj
MzExMC4uNGY4YmQ4MmVkNzA0Y2FhMGE4NzYzOTE3ZGZhMGE2OTE1YWNjZmM4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC04NjM4LDYgKzg2MzgsNTggQEAgdm9pZCBEb2N1bWVudDo6ZnJh
bWVXYXNEaXNjb25uZWN0ZWRGcm9tT3duZXIoKQogICAgIGRldGFjaEZyb21GcmFtZSgpOwogfQog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworY29uc3QgT3B0aW9uYWw8Ym9vbD4m
IERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlKCkgY29uc3QKK3sKKyAgICBp
ZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykKKyAgICAgICAgcmV0dXJuIHRvcERvY3VtZW50KCku
ZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpOworCisgICAgcmV0dXJuIG1fZGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NTdGF0ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlT3JpZW50
YXRpb25BY2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpCit7CisgICAgaWYgKCZ0b3BEb2N1bWVudCgp
ICE9IHRoaXMpIHsKKyAgICAgICAgdG9wRG9jdW1lbnQoKS5zZXREZXZpY2VPcmllbnRhdGlvbkFj
Y2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9kZXZp
Y2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlID0gZ3JhbnRlZDsKKworICAgIGlmICghZ3JhbnRlZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvKiBmcmFtZSA9IG1fZnJhbWU7IGZyYW1l
ICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCht
X2ZyYW1lKSkKKyAgICAgICAgZnJhbWUtPndpbmRvdygpLT5zdGFydExpc3RlbmluZ0ZvckRldmlj
ZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKK30KKworY29uc3QgT3B0aW9uYWw8Ym9vbD4mIERv
Y3VtZW50OjpkZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKCZ0b3BE
b2N1bWVudCgpICE9IHRoaXMpCisgICAgICAgIHJldHVybiB0b3BEb2N1bWVudCgpLmRldmljZU1v
dGlvbkFjY2Vzc1N0YXRlKCk7CisKKyAgICByZXR1cm4gbV9kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0
ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoYm9vbCBn
cmFudGVkKQoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAhPSB0aGlzKSB7CisgICAgICAgIHRv
cERvY3VtZW50KCkuc2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoZ3JhbnRlZCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX2RldmljZU1vdGlvbkFjY2Vzc1N0YXRlID0gZ3JhbnRl
ZDsKKworICAgIGlmICghZ3JhbnRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRv
KiBmcmFtZSA9IG1fZnJhbWU7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChtX2ZyYW1lKSkKKyAgICAgICAgZnJhbWUtPndpbmRvdygp
LT5zdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7Cit9CisKKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiBXb3JrbGV0JiBEb2N1bWVudDo6ZW5z
dXJlUGFpbnRXb3JrbGV0KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNzc4YzIxMzNjNTQz
NTdkZDY3NzE5OWRmNzE5NDE3YjNlZGU5MzExYS4uYjhiNDY5MWQxNTUyZDgxMGI3ZmVhMzgzOTAw
ZmQ5ODEwYjFmMWZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyMTQsMTIgKzEyMTQsMTkg
QEAgcHVibGljOgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudElPUy5oPgogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFN
SUxZKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyJiBkZXZpY2VNb3Rpb25Db250cm9sbGVy
KCkgY29uc3Q7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyJiBkZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNpbXVsYXRl
RGV2aWNlT3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91Ymxl
IGdhbW1hKTsKICNlbmRpZgogCisgICAgY29uc3QgT3B0aW9uYWw8Ym9vbD4mIGRldmljZU9yaWVu
dGF0aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9u
QWNjZXNzU3RhdGUoYm9vbCBncmFudGVkKTsKKyAgICBjb25zdCBPcHRpb25hbDxib29sPiYgZGV2
aWNlTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERldmljZU1vdGlvbkFj
Y2Vzc1N0YXRlKGJvb2wgZ3JhbnRlZCk7CisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKKwogICAgIGNvbnN0IERvY3VtZW50VGltaW5nJiB0aW1pbmcoKSBjb25zdCB7IHJldHVy
biBtX2RvY3VtZW50VGltaW5nOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgbW9ub3Rv
bmljVGltZXN0YW1wKCkgY29uc3Q7CkBAIC0xODMxLDYgKzE4MzgsMTEgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fYXJlRnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuIHsgZmFsc2UgfTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBPcHRpb25hbDxib29sPiBtX2Rl
dmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGU7CisgICAgT3B0aW9uYWw8Ym9vbD4gbV9kZXZpY2VN
b3Rpb25BY2Nlc3NTdGF0ZTsKKyNlbmRpZgorCiAgICAgSGFzaFNldDxIVE1MUGljdHVyZUVsZW1l
bnQqPiBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXM7CiAgICAgSGFzaFNldDxIVE1MUGljdHVy
ZUVsZW1lbnQqPiBtX2FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlczsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKaW5kZXggM2EwZGMzYmIwM2RjZDcwYmU5NGVmNGI5ODYyMWQ5Nzk1NjBl
N2ViYS4uZDAwOWE4NGQyY2I3OThkYWE5ZTRiOTM4ZGYzNmMxM2JlMmU0ZWI3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00ODIsNiArNDgyLDExIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcmJiAvKnN1YkZyYW1lSG9zdCovLCBT
dHJpbmcmJiAvKnRvcEZyYW1lSG9zdCovLCB1aW50NjRfdCAvKmZyYW1lSUQqLywgdWludDY0X3Qg
LypwYWdlSUQqLywgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFj
aykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VB
Y2Nlc3MoU3RyaW5nJiYgLypzdWJGcmFtZUhvc3QqLywgU3RyaW5nJiYgLyp0b3BGcmFtZUhvc3Qq
LywgdWludDY0X3QgLypmcmFtZUlEKi8sIHVpbnQ2NF90IC8qcGFnZUlEKi8sIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soZmFsc2UpOyB9
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxi
YWNrKHRydWUpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKHRydWUpOyB9CisjZW5kaWYKKwogICAg
IHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRNZW51RWxlbWVudChIVE1MTWVudUVsZW1lbnQmKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTWVudUVsZW1lbnQoSFRNTE1lbnVFbGVtZW50Jikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVJdGVtRWxlbWVudChIVE1MTWVudUl0
ZW1FbGVtZW50JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZGZhMTEyNDg0
YTNhNDc3ZTNkYzAyMmEzNGNhMzRkZjNmZmE5M2UzMi4uZTA4ZGQwZjBmZGFjNmZmNGMxMTAzZGVm
MGYxYzNmZjNiNDYzMGNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTgyNiw1
MCArMTgyNiwxMjQgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmUKICAgICBlbHNlIGlmIChldmVu
dE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAgICAgIGluY3JlbWVu
dEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZp
Y2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAgICBzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVu
dGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRldmljZW1vdGlvbkV2ZW50KQorICAgICAgICBzdGFydExpc3RlbmluZ0ZvckRldmljZU1v
dGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworfQogCiAjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5z
ZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkgJiYgZG9jdW1lbnQoKSAm
JiBkb2N1bWVudCgpLT5sb2FkZXIoKSAmJiBkb2N1bWVudCgpLT5sb2FkZXIoKS0+ZGV2aWNlT3Jp
ZW50YXRpb25FdmVudEVuYWJsZWQoKSkgeworCitEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
IERPTVdpbmRvdzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29uc3QKK3sKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBpZiAoKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlbW90aW9uRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vv
cmllbnRhdGlvbkV2ZW50KSkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNlY3VyaXR5T3JpZ2lu
QXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICAgICAgICAgIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpCi0gICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigp
LmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLmFk
ZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChkb2N1
bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU2VjdXJlQ29udGV4dCgpKQotICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRl
dmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgZnJvbSBjaGlsZCBmcmFtZSB0aGF0
IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZS4iX3MpOwot
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywg
IkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxp
c3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3MpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyAmZG9jdW1l
bnQoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgOiBudWxscHRyOwogI2Vsc2UKLSAg
ICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpIHsK
LSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkgJiYgaXNT
ZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJv
bGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkK
LSAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigq
dGhpcyk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5n
LCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gbGlzdGVuZXIgZnJvbSBj
aGlsZCBmcmFtZSB0aGF0IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1h
aW4gcGFnZS4iX3MpOwotICAgICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNlY3Vy
aXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICAg
ICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgICAgICAg
ICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChpc1NlY3VyZUNvbnRleHQoKSkKLSAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBk
ZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIgZnJvbSBjaGlsZCBmcmFtZSB0aGF0IHdhc24ndCB0
aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZS4iX3MpOwotICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQg
YXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJl
Y2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3MpOwotICAgICAgICAg
ICAgfQorICAgIHJldHVybiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgp
KTsKKyNlbmRpZgorfQorCitEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBET01XaW5kb3c6OmRldmlj
ZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgcmV0dXJuIGRvY3VtZW50KCkgPyAmZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxl
cigpIDogbnVsbHB0cjsKKyNlbHNlCisgICAgcmV0dXJuIERldmljZU1vdGlvbkNvbnRyb2xsZXI6
OmZyb20ocGFnZSgpKTsKKyNlbmRpZgorfQorCitib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9V
c2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgU3RyaW5n
JiBtZXNzYWdlKSBjb25zdAoreworICAgIGlmICghZnJhbWUoKSB8fCAhZnJhbWUoKS0+c2V0dGlu
Z3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpIHx8ICFkb2N1bWVudCgpIHx8ICFk
b2N1bWVudCgpLT5sb2FkZXIoKSB8fCAhZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRldmljZU9yaWVu
dGF0aW9uRXZlbnRFbmFibGVkKCkpIHsKKyAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIkJs
b2NrZWQgYXR0ZW1wdCB0byBhZGQgYSAiLCBldmVudFR5cGUsICIgZXZlbnQgbGlzdGVuZXIgYmVj
YXVzZSB0aGUgQVBJIGlzIGRpc2FibGVkLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgaWYgKCFpc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBtZXNzYWdlID0gbWFr
ZVN0cmluZygiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhICIsIGV2ZW50VHlwZSwgIiBldmVudCBs
aXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWlzU2FtZVNlY3VyaXR5T3Jp
Z2luQXNNYWluRnJhbWUoKSkgeworICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiQmxvY2tl
ZCBhdHRlbXB0IHRvIGFkZCBhICIsIGV2ZW50VHlwZSwgIiBldmVudCBsaXN0ZW5lciBmcm9tIGNo
aWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFp
biBwYWdlLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGZyYW1l
KCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7
CisgICAgICAgIGF1dG8gcGVybWlzc2lvblN0YXRlID0gKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkgPyBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1N0YXRlKCkgOiBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpOwor
ICAgICAgICBpZiAocGVybWlzc2lvblN0YXRlICYmICEqcGVybWlzc2lvblN0YXRlKSB7CisgICAg
ICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiTm8gIiwgZXZlbnRUeXBlLCAiIGV2ZW50cyB3
aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVk
LiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0jZW5kaWYgLy8gUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlbW90aW9uRXZlbnQpCi0gICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rp
b25FdmVudExpc3RlbmVyKCk7Ci0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
KyAgICAgICAgaWYgKCFwZXJtaXNzaW9uU3RhdGUgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZp
Y2VPcmllbnRhdGlvblBlcm1pc3Npb25IYW5kbGVkQnlDbGllbnQoKSkgeworICAgICAgICAgICAg
bWVzc2FnZSA9IG1ha2VTdHJpbmcoIk5vICIsIGV2ZW50VHlwZSwgIiBldmVudHMgd2lsbCBiZSBm
aXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4iKTsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHJldHVy
biB0cnVlOwogfQogCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgRE9NV2lu
ZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQorewor
ICAgIGlmICghaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9u
RXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkZXZpY2VDb250cm9sbGVyID0g
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCk7CisgICAgaWYgKCFkZXZpY2VDb250cm9sbGVy
IHx8IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghaXNBbGxv
d2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50
YXRpb25FdmVudCwgZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQg
PSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIGVycm9yTWVzc2Fn
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZXZpY2VDb250cm9sbGVyLT5hZGRE
ZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKK30KKwordm9pZCBET01XaW5kb3c6OnN0b3BMaXN0
ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoaGFzRXZl
bnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoYXV0byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcigpKQorICAgICAgICBkZXZpY2VDb250cm9sbGVyLT5yZW1vdmVEZXZp
Y2VFdmVudExpc3RlbmVyKCp0aGlzKTsKK30KKwordm9pZCBET01XaW5kb3c6OnN0YXJ0TGlzdGVu
aW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKQoreworICAgIGlmICghaGFzRXZlbnRMaXN0
ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKTsK
KyAgICBpZiAoIWRldmljZUNvbnRyb2xsZXIgfHwgZGV2aWNlQ29udHJvbGxlci0+aGFzRGV2aWNl
RXZlbnRMaXN0ZW5lcigqdGhpcykpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBlcnJv
ck1lc3NhZ2U7CisgICAgaWYgKCFpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9u
KGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCwgZXJyb3JNZXNzYWdlKSkgeworICAgICAg
ICBmYWlsZWRUb1JlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpOworICAgICAgICBp
ZiAoYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1l
bnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldh
cm5pbmcsIGVycm9yTWVzc2FnZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkZXZp
Y2VDb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKK30KKwordm9pZCBE
T01XaW5kb3c6OnN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpCit7Cisg
ICAgaWYgKGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2
aWNlTW90aW9uQ29udHJvbGxlcigpKQorICAgICAgICBkZXZpY2VDb250cm9sbGVyLT5yZW1vdmVE
ZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKK30KIAogdm9pZCBET01XaW5kb3c6OmZhaWxlZFRv
UmVnaXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCkKIHsKQEAgLTE5NDEsMjIgKzIwMTUs
NiBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogICAgICAgICByZW1vdmVVbmxvYWRFdmVudExp
c3RlbmVyKHRoaXMpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYmVm
b3JldW5sb2FkRXZlbnQgJiYgYWxsb3dzQmVmb3JlVW5sb2FkTGlzdGVuZXJzKHRoaXMpKQogICAg
ICAgICByZW1vdmVCZWZvcmVVbmxvYWRFdmVudExpc3RlbmVyKHRoaXMpOwotI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBlbHNlIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50ICYmIGRvY3VtZW50
KCkpCi0gICAgICAgIGRvY3VtZW50KCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVE
ZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZl
bnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQgJiYgZG9jdW1lbnQoKSkKLSAgICAgICAg
ZG9jdW1lbnQoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkucmVtb3ZlRGV2aWNlRXZl
bnRMaXN0ZW5lcigqdGhpcyk7Ci0jZWxzZQotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpIHsKLSAgICAgICAgaWYgKERldmljZU1vdGlvbkNv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2Uo
KSkpCi0gICAgICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0
aGlzKTsKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3Jp
ZW50YXRpb25FdmVudCkgewotICAgICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
KiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkp
Ci0gICAgICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlz
KTsKLSAgICB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNlbmRpZiAvLyBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgZWxz
ZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5zY3JvbGxFdmVudCkKICAgICAgICAgZGVj
cmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCgpOwpAQCAtMTk3Nyw2ICsyMDM1LDEyIEBA
IGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAgICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzR2Ft
ZXBhZEV2ZW50VHlwZShldmVudFR5cGUpKQogICAgICAgICBkZWNyZW1lbnRHYW1lcGFkRXZlbnRM
aXN0ZW5lckNvdW50KCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
ICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25F
dmVudCkKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3Nh
cnkoKTsKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlv
bkV2ZW50KQorICAgICAgICBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3Nhcnko
KTsKKyNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yMDU5LDE4ICsyMTIzLDkgQEAg
dm9pZCBET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkKICAgICBFdmVudFRhcmdl
dDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkgewotICAgICAgICBkb2N1bWVudC0+ZGV2aWNlTW90aW9u
Q29udHJvbGxlcigpLnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSAgICAg
ICAgZG9jdW1lbnQtPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLnJlbW92ZUFsbERldmlj
ZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSAgICB9Ci0jZWxzZQotICAgIGlmIChEZXZpY2VNb3Rp
b25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShw
YWdlKCkpKQotICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVy
cygqdGhpcyk7Ci0gICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxl
ciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICBj
b250cm9sbGVyLT5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycygqdGhpcyk7Ci0jZW5kaWYg
Ly8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgICAgICBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2Fy
eSgpOworICAgICAgICBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsK
KyNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAobV9zY3JvbGxFdmVu
dExpc3RlbmVyQ291bnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IGJiYmZhOTU4NzJl
NGEzM2U3MzQyNTI4MWU0YWNjYjRmNzA1OWIxYzQuLjI5ODk0YmEyM2NiYzMyYmVlZTNlYTRlYThj
YzY4YzkzMWY0ZDYzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtODIsNiArODIsMTEg
QEAgY2xhc3MgVmlzdWFsVmlld3BvcnQ7CiBjbGFzcyBXZWJLaXROYW1lc3BhY2U7CiBjbGFzcyBX
ZWJLaXRQb2ludDsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCitjbGFzcyBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyOworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwor
I2VuZGlmCisKIHN0cnVjdCBJbWFnZUJpdG1hcE9wdGlvbnM7CiBzdHJ1Y3QgV2luZG93RmVhdHVy
ZXM7CiAKQEAgLTMxMSw2ICszMTYsMTcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHNjcm9sbEV2
ZW50TGlzdGVuZXJDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsRXZlbnRMaXN0ZW5lckNv
dW50OyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9p
ZCBzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2
b2lkIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAg
dm9pZCBzdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgdm9p
ZCBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKKyAgICBib29sIGlz
QWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oY29uc3QgU3RyaW5nJiBldmVudFR5
cGUsIFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0OworICAgIERldmljZU1v
dGlvbkNvbnRyb2xsZXIqIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKKyNlbmRpZgor
CiAgICAgdm9pZCByZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbigpOwogCiAjaWYgRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpIHx8IEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcAppbmRleCAzMzY3ZDNkYmY1OWZjMzM1NzI0
OTc1OGFjNjNkZDE3MjVlMDc2MzY2Li44NDJiODU0ZWUyNTEyNThhNDEwNjJiZmUwZDA2NTQ0ZWRi
M2M2ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKQEAgLTY5
LDYgKzY5LDExIEBAIHZvaWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsRGV2aWNlRXZlbnRM
aXN0ZW5lcnMoRE9NV2luZG93JiB3aW5kb3cpCiAgICAgICAgIG1fY2xpZW50LnN0b3BVcGRhdGlu
ZygpOwogfQogCitib29sIERldmljZUNvbnRyb2xsZXI6Omhhc0RldmljZUV2ZW50TGlzdGVuZXIo
RE9NV2luZG93JiB3aW5kb3cpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbGlzdGVuZXJzLmNvbnRh
aW5zKCZ3aW5kb3cpOworfQorCiB2b2lkIERldmljZUNvbnRyb2xsZXI6OmRpc3BhdGNoRGV2aWNl
RXZlbnQoRXZlbnQmIGV2ZW50KQogewogICAgIGZvciAoYXV0byYgbGlzdGVuZXIgOiBjb3B5VG9W
ZWN0b3IobV9saXN0ZW5lcnMudmFsdWVzKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29u
dHJvbGxlci5oCmluZGV4IGUxNjAzODVhZmUyZjk3MzUzYzBlYTIyZjI5ZTg1NmYxOGUyMGIxYTgu
LjNkNWY5MGM1MGVlNGE1NGZjMGFkMTdjNjQ3MzVkZDY5Mzg3M2ZmZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jik7CiAgICAgdm9pZCByZW1vdmVE
ZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYpOwogICAgIHZvaWQgcmVtb3ZlQWxsRGV2aWNl
RXZlbnRMaXN0ZW5lcnMoRE9NV2luZG93Jik7CisgICAgYm9vbCBoYXNEZXZpY2VFdmVudExpc3Rl
bmVyKERPTVdpbmRvdyYpIGNvbnN0OwogCiAgICAgdm9pZCBkaXNwYXRjaERldmljZUV2ZW50KEV2
ZW50Jik7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0dXJuICFtX2xpc3RlbmVycy5pc0VtcHR5
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAzMDNkN2Y4MmQ0YjM3ZmRiYTFi
N2YyZGQ0YThkYTI1N2U4YWI5NzdjLi40NmM0ZWZhZThlNzFiNmE0OGExOTU2Y2I4Zjc2NDU5NTBh
MmM4NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC03NjQsNiArNzY0LDE2IEBA
IGRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkOgogICBpbml0aWFsOiB0cnVlCiAgIGNvbmRp
dGlvbmFsOiBERVZJQ0VfT1JJRU5UQVRJT04KIAorZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9u
QVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBpbml0aWFsOiBmYWxzZQorICBjb25kaXRpb25h
bDogREVWSUNFX09SSUVOVEFUSU9OCisKK2RldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkhhbmRs
ZWRCeUNsaWVudDoKKyAgdHlwZTogYm9vbAorICBpbml0aWFsOiBmYWxzZQorICBjb25kaXRpb25h
bDogREVWSUNFX09SSUVOVEFUSU9OCisKIHNob3VsZEVuYWJsZVRleHRBdXRvc2l6aW5nQm9vc3Q6
CiAgIHR5cGU6IGJvb2wKICAgaW5pdGlhbDogZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCmluZGV4IGY1NTg0MzI1OTBmYmRlYjY4OTc5M2UwYjQ5YjI2Nzc4NDE2
N2QyZWEuLmVlMDgwM2Q4ODE3NzcyZDUwMjU1NDhiMjEzY2NmZjM4ZmQ5YzJiNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTIsNiArMTIsMjEgQEAgRGV2
aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6CiAgIGNvbmRpdGlvbjogRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKICAgd2ViY29yZU5hbWU6IGRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVk
CiAKK0RldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQ6CisgIHR5cGU6IGJvb2wK
KyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBjb25kaXRpb246IEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisgIHdlYmNvcmVOYW1lOiBkZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFi
bGVkCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUGVybWlzc2lvbiBBUEkgZm9yIGRldmljZSBvcmll
bnRhdGlvbiAvIG1vdGlvbiBhY2Nlc3MuIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisKK0Rl
dmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkhhbmRsZWRCeUNsaWVudDoKKyAgdHlwZTogYm9vbAor
ICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGNvbmRpdGlvbjogRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKKyAgd2ViY29yZU5hbWU6IGRldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkhhbmRsZWRC
eUNsaWVudAorCiBKYXZhU2NyaXB0RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFs
dWU6IHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXgg
M2VjNmYwMGQyNGZjOTM5NDI2OTBhM2U3MjlmZDA3ZWQ3YTNhYTZjNy4uOGFhMDRjNjc0N2ZjZGM1
YmFjNjkxZTVkYjJlMGQ1YzQzMzA4NjRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKQEAgLTE3Myw2ICsxNzMsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBkaWRMb3NlUG9pbnRlckxvY2soV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFsIGJvb2wgaGFu
ZGxlc0RldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3RzKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmljZU9yaWVudGF0aW9u
QWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21w
bGV0aW9uSGFuZGxlcih0cnVlKTsgfQorCisgICAgdmlydHVhbCBib29sIGhhbmRsZXNEZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJL
aXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsg
fQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihXZWJL
aXQ6OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
c2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZShXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIE9iamVjdCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAKaW5kZXggYTQxNjc2NmUyYjM4M2UxYjUxNDQ4ZmM5Y2M0MDJjMDFmMWJlYjNhYS4uZmIzNjFi
YWViZDc3YzNjNzNlZTIxZGVhNmM2YjI0NGZlOWQxOTEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRl
PD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVm
IHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlD
bGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGll
bnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRW
OCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjEx
LCBXS1BhZ2VVSUNsaWVudFYxMj4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdL
UGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFn
ZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJ
Q2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xp
ZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGll
bnRWMTIsIFdLUGFnZVVJQ2xpZW50VjEzPiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKQEAgLTE5MDMsNiArMTkwMywzNCBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNs
aWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVu
dAogICAgICAgICAgICAgbV9jbGllbnQucmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKHRvQVBJ
KCZwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShyZXF1ZXN0aW5nRG9tYWluLmltcGwoKSksIHRv
QVBJKGN1cnJlbnREb21haW4uaW1wbCgpKSwgdG9BUEkobGlzdGVuZXIucHRyKCkpLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorICAgICAgICBib29sIGhhbmRsZXNEZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1p
c3Npb25SZXF1ZXN0cygpIGNvbnN0IGZpbmFsCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biAhIW1fY2xpZW50LnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb247Cisg
ICAgICAgIH0KKworICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Bl
cm1pc3Npb24oV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFs
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghaGFuZGxlc0RldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvblJlcXVlc3RzKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKHRydWUpOworCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtX2NsaWVu
dC5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKHRvQVBJKCZwYWdlKSwg
dG9BUEkoJm9yaWdpbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOworICAgICAgICB9CisK
KyAgICAgICAgYm9vbCBoYW5kbGVzRGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3Rz
KCkgY29uc3QgZmluYWwKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICEhbV9jbGllbnQu
cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb247CisgICAgICAgIH0KKworICAgICAg
ICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYlBhZ2VQcm94eSYg
cGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIWhhbmRsZXNEZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fY2xpZW50LnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbykpOworICAgICAgICB9CisjZW5kaWYKKwogICAgICAgICAvLyBQcmludGluZy4KICAg
ICAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94
eSYgZnJhbWUpIGZpbmFsCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDVlNTk3M2Y5YWIxOGI0NmE2NWVmZTA4ZWRmNWYz
NTA3YTc3NWRmMGIuLjc0NzY4ZDRhMWRlNDFmYzhlMDk2MjY0ZmY4ZWY2OWY2MzE5NTBhNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAt
MTM0LDYgKzEzNCw4IEBAIHR5cGVkZWYgdm9pZCAoKldLRGlkTG9zZVBvaW50ZXJMb2NrQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJCiB0eXBlZGVmIHZvaWQgKCpX
S0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFnZVJlZiBw
YWdlLCBib29sIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRX
aGlsZUluRm9yZWdyb3VuZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tSZXNvdXJjZUxpbWl0
IGxpbWl0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURp
ZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
K3R5cGVkZWYgYm9vbCAoKldLUGFnZVJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1p
c3Npb25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJp
dHlPcmlnaW4sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgqV0tQYWdl
UmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjaykoV0tQYWdlUmVmIHBh
Z2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogCiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0
ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwg
V0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tF
dmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAg
LTExNDAsNiArMTE0MiwxMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTIgewog
ICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOwogfSBXS1BhZ2VVSUNs
aWVudFYxMjsKIAordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTMgeworICAgIFdLUGFn
ZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdl
Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0ZU5l
d1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOwor
ICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAgV0tQ
YWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVuSmF2
YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICBy
dW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5K
YXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAg
IHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdl
UnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAg
ICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQ
YWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0
dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQbHVn
aW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlkTm90
SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
aWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZl
bnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0VG9v
bGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxlOwor
ICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0dXNC
YXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1
c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsKKyAg
ICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFibGU7
CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dGcmFt
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRv
d0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjYgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjY7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREcmF3OworICAgIFdLUGFnZVVJ
Q2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0YWJhc2VRdW90YTsK
KyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lkZVBvbGlj
eUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlSGVhZGVySGVpZ2h0
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJI
ZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJIZWlnaHQ7CisgICAgV0tQYWdlRHJhd0hlYWRl
ckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3
SGVhZGVyOworICAgIFdLUGFnZURyYXdGb290ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zvb3RlcjsKKyAgICBXS1BhZ2VQcmludEZyYW1l
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
RnJhbWU7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKKyAgICB2b2lkKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7
IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCisgICAgV0tQ
YWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyOworICAgIHZvaWQqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZTsKKworICAgIC8vIFZlcnNpb24g
MS4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MSAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsK
KyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURlY2lk
ZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAg
ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdl
VW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsK
KyAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICBXS1BhZ2VQ
aW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAgIHZvaWQq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW51c2VkMjsgLy8gVXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9u
Z01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJlIGRpZFJl
Y29nbml6ZUxvbmdNb3VzZVByZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkNDsgLy8gVXNlZCB0
byBiZSBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgorICAgIFdLUGFn
ZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAg
V0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAg
ICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKKyAg
ICBXS1BhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZENsaWNrQXV0b0ZpbGxCdXR0b247CisgICAgV0tQYWdlUnVuSmF2YVNj
cmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgICBydW5K
YXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZh
U2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgIHJ1
bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdl
TWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNi4K
KyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFs
ZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2Ny
aXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS1Bh
Z2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1VzZXJNZWRp
YVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9uIDcuCisgICAgV0tQYWdlUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tGdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsc2NyZWVu
TWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDguCisgICAgV0tSZXF1ZXN0UG9p
bnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMb3NlUG9pbnRlckxvY2s7CisK
KyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxheUV2ZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2ZW50Owor
CisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5Q
aWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRX
aGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291
cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZlcnNpb24gMTEuCisgICAgV0tQ
YWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlQ2FsbGJhY2sg
ICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2U7CisK
KyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmly
bUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VSZXF1ZXN0RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uQ2FsbGJhY2sgICAgICAgICAgICAgIHJlcXVlc3REZXZp
Y2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb247CisgICAgV0tQYWdlUmVxdWVzdERldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICByZXF1ZXN0RGV2
aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbjsKK30gV0tQYWdlVUlDbGllbnRWMTM7CisKICNpZmRl
ZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBkYmQwNTNlN2ZiZDBh
MDk1ZjA4ODhhN2VkYTBiYzJiYmE3M2UyNTMyLi4xYzJkMDY1MmQwZWJlOTMxMmE2YzhmZWE1MjJl
NTEzNTJiZTJlMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTExNCw2ICsxMTQsOSBAQCBzdHJ1Y3Qg
VUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjcmVh
dGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25m
aWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmln
YXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVyZXMgKil3aW5kb3dGZWF0
dXJlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tXZWJWaWV3ICp3ZWJWaWV3KSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKEJPT0wgYWxsb3dlZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JT
ZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbkZv
clNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1l
c3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAq
KWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBlZGl0b3JTdGF0ZURpZENoYW5nZToo
TlNEaWN0aW9uYXJ5ICopZWRpdG9yU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMu
NCksIGlvcygxMS4zKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaAppbmRleCBjY2I3OGEyOWUyYTRjMmZmMTZkNDI1MjVhZTVlNDYwYTc4OWJiN2EzLi45MDJj
MzI2NjQ5NjgzNGMyNjgxOTM5ZTc5OWJkMzFjY2EwMDQ5ZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMTksNiArMTE5LDEyIEBAIHByaXZhdGU6
CiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkq
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFt
ZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgZmluYWw7CiAgICAgICAg
IHZvaWQgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZChX
ZWJQYWdlUHJveHkmLCBXS1Jlc291cmNlTGltaXQpIGZpbmFsOwogICAgICAgICB2b2lkIHNhdmVE
YXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJp
bmcmLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFVSTCYsIEFQSTo6RGF0YSYpIGZpbmFsOwor
I2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgYm9vbCBoYW5k
bGVzRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdCBmaW5h
bDsKKyAgICAgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9u
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgICAgICBib29sIGhhbmRsZXNEZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9p
ZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSBmaW5hbDsKICNlbmRpZgogICAgICAgICBib29sIG5lZWRzRm9udEF0dHJpYnV0ZXMoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rp
ZENoYW5nZUZvbnRBdHRyaWJ1dGVzOyB9CiAgICAgICAgIHZvaWQgZGlkQ2hhbmdlRm9udEF0dHJp
YnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmKSBmaW5hbDsKQEAgLTE4Nyw2ICsx
OTMsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3U2F2ZURhdGFUb0ZpbGVTdWdn
ZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgOiAxOwogICAgICAgICBib29sIHdl
YlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9u
SGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3ROb3RpZmljYXRpb25QZXJt
aXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOworI2VuZGlmCisjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdERl
dmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25I
YW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdERldmljZU1vdGlvbkFjY2Vz
c1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7CiAjZW5kaWYK
ICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2lu
Q3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3Rl
ZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0
YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVDdXJyZW50
UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VE
ZWNpc2lvbkhhbmRsZXIgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUubW0KaW5kZXggYjVhMGE1MDhiYzk5NmQzYzlhOTdmOTNhZjNlYTNmOTI1MDk3ZjY2NS4u
ZmQzZTgzMmU3NjkxODVjODRjZmY3MzM4ODYxZjEwZTQwNzY4ZGRkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMzIsNiArMTMyLDEwIEBAIHZv
aWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAg
ICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1NhdmVEYXRhVG9GaWxlU3VnZ2VzdGVkRmlsZW5h
bWVNaW1lVHlwZU9yaWdpbmF0aW5nVVJMID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6c2F2ZURhdGFUb0ZpbGU6c3VnZ2VzdGVkRmlsZW5hbWU6bWltZVR5
cGU6b3JpZ2luYXRpbmdVUkw6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1J1bk9w
ZW5QYW5lbFdpdGhQYXJhbWV0ZXJzSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5PcGVuUGFu
ZWxXaXRoUGFyYW1ldGVyczppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOildOwog
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lv
bkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25G
b3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CisjZW5kaWYKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lv
bkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmln
aW46ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1
ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25I
YW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjpkZWNp
c2lvbkhhbmRsZXI6KV07CiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVj
aWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdp
blVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlRGF0
YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmN1cnJlbnRRdW90YTpjdXJyZW50T3JpZ2luVXNh
Z2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6ZXhwZWN0ZWRVc2FnZTpkZWNpc2lvbkhhbmRsZXI6KV07
CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1
cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9yaWdp
blVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlRGF0
YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlTmFtZTpkaXNwbGF5TmFtZTpjdXJy
ZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4cGVjdGVk
VXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwpAQCAtODQ0LDYgKzg0OCw1NSBAQCBib29sIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94
eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQorCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpoYW5kbGVzRGV2aWNlT3JpZW50YXRpb25B
Y2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdAoreworICAgIHJldHVybiBtX3VpRGVsZWdh
dGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vz
c1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcjsKK30KKwordm9pZCBV
SURlbGVnYXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlz
c2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5
T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGlmICghaGFuZGxlc0RldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvblJl
cXVlc3RzKCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKworICAg
IGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAo
IWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAg
ICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVs
ZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25B
Y2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOikpOworICAg
IFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0
ZS5tX3dlYlZpZXcgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkZvclNl
Y3VyaXR5T3JpZ2luOndyYXBwZXIoc2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSAoQk9PTCBncmFudGVkKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRs
ZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7CisgICAgfSkuZ2V0KCld
OworfQorCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpoYW5kbGVzRGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvblJlcXVlc3RzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91aURlbGVnYXRl
Lm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlz
c2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyOworfQorCit2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlm
ICghaGFuZGxlc0RldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0cygpKQorICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRvIGRlbGVnYXRlID0g
bV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgYXV0byBjaGVja2VyID0g
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBAc2Vs
ZWN0b3IoX3dlYlZpZXc6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1
cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyByZXF1ZXN0RGV2
aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIoc2VjdXJp
dHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIp
XSAoQk9PTCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRp
b25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBj
aGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZ3JhbnRlZCk7CisgICAgfSkuZ2V0KCldOworfQorI2VuZGlmCisKIHZvaWQgVUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZv
bnRBdHRyaWJ1dGVzJiBmb250QXR0cmlidXRlcykKIHsKICAgICBpZiAoIW5lZWRzRm9udEF0dHJp
YnV0ZXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI0
NTUwZTQ5ZDhjZjFkZTQ4OGI5NzUyZTEyYWIzMDNmMWNmMzUzMDAuLjA0NTczODUzYWM3N2IzY2Yw
MWQyZjEzNTFlODI0MjM1NTAwYzAyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNjQ2LDYgKzY0Niw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRVSUNs
aWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpVSUNsaWVudD4mJiB1aUNsaWVudCkKICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldENhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbChtX3VpQ2xpZW50LT5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSksIG1f
cGFnZUlEKTsKICAgICBzZXRDYW5SdW5Nb2RhbChtX3VpQ2xpZW50LT5jYW5SdW5Nb2RhbCgpKTsK
ICAgICBzZXROZWVkc0ZvbnRBdHRyaWJ1dGVzKG1fdWlDbGllbnQtPm5lZWRzRm9udEF0dHJpYnV0
ZXMoKSk7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBwcmVmZXJlbmNlcygp
LnNldERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkhhbmRsZWRCeUNsaWVudChtX3VpQ2xpZW50
LT5oYW5kbGVzRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSAmJiBt
X3VpQ2xpZW50LT5oYW5kbGVzRGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3RzKCkp
OworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRJY29uTG9hZGluZ0NsaWVudChz
dGQ6OnVuaXF1ZV9wdHI8QVBJOjpJY29uTG9hZGluZ0NsaWVudD4mJiBpY29uTG9hZGluZ0NsaWVu
dCkKQEAgLTcxNjgsNiArNzE3MSwyOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVk
aWFTdGF0ZSgpCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2
b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lv
bihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1aW50NjRfdCBjYWxs
YmFja0lEKQoreworICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
KG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVudC0+cmVxdWVzdERl
dmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbigqdGhpcywgb3JpZ2luLmdldCgpLCBbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrSURdKGJvb2wgZ3JhbnRl
ZCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFpc1ZhbGlkKCkpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVj
ZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKGNhbGxi
YWNrSUQsIGdyYW50ZWQpLCBtX3BhZ2VJRCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGF1
dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEuc2VjdXJp
dHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVudC0+cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Bl
cm1pc3Npb24oKnRoaXMsIG9yaWdpbi5nZXQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCBjYWxsYmFja0lEXShib29sIGdyYW50ZWQpIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcyB8fCAhaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbk1v
dGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lvbihjYWxsYmFja0lELCBncmFudGVkKSwgbV9wYWdl
SUQpOworICAgIH0pOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90
aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luU3RyaW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyMTU1ZDE0MmU0NGZiYTU0NDU4
YmM3MWY1MzkxYmU2ZTA5YjRlODAzLi4zMjc0MzJkOWNmODU4YzViNWY1ZGNmNmZhNzZjNmRlOGQx
NThhY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQwMSw2
ICsxNDAxLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmly
bShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRf
dCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNz
aW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsK
KyNlbmRpZgorCiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVBy
b3h5KCk7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGU4NjRkNGE5NmZi
NjdmOWE1M2YxZDYwOWM2OWY3NzY1MjEzODRhMDAuLmEwNTk3ZTljMDhiNjM2Mjk2M2JkYjU1ZDJk
MzYxZjM5MjQ5ZmU3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTUzMiw2ICs1MzIsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBTdG9wVVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmll
ciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpCiAgICAgTG9hZFN5bmNocm9ub3VzVVJMU2NoZW1l
VGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAt
PiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBlcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpIERlbGF5ZWQKIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgUmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNz
UGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CisgICAgUmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Np
b24oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOworI2VuZGlmCisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAg
IFJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXJGcm9tRGF0YShTdHJpbmcgaWRlbnRpZmllciwg
U3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJpbmcgcHJlZmVycmVkRmlsZU5hbWUsIElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIFJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZp
ZXJGcm9tRmlsZVBhdGgoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwgU3Ry
aW5nIGZpbGVQYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA2N2ZkN2E3MjBjZTJmMzM5
NzcwMzUxNDhiZGJkMmNlZmE3YzdmZDM1Li43ZjUwNTcwZGM0YTNkMGZlMWQwNTlmZmQ5NWU4MmNi
MWM2Mzk1Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTMyMCw0ICsxMzIwLDE2IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJG
cmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIG1fcGFnZS5yZXF1ZXN0
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjYWxsYmFj
aykpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vz
c1Blcm1pc3Npb24oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3BhZ2UucmVxdWVzdERldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjkyNmEy
NThhZDg1YWIwNzc5MTZkMGNiMjM1Mjg0ZDhlYjNiZGFhNy4uMzAzNDNkZWYxZWY1ZmYyOTU5YzQw
MGUzZjQ4YTQ2NTdhZTdkYjk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzY2LDYgKzM2Niwx
MSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3Vi
RnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJikgZmluYWw7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCByZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwor
I2VuZGlmCisKICAgICBTdHJpbmcgbV9jYWNoZWRUb29sVGlwOwogICAgIG11dGFibGUgUmVmUHRy
PFdlYkZyYW1lPiBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lOwogICAgIG11dGFibGUgYm9v
bCBtX2NhY2hlZE1haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4OTY4NzYw
ZjllNGU2NmZhMWY0ZDU5MTY2YTcyZTcwOTEyODQ5ZTBlLi5iNWJlNzAzMmRmMzM1ZTM3M2FhOWU1
OGRkYjhjZTIxN2QwY2MxMjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNjM1NCw2ICs2MzU0LDM5IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhv
c3QsCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCgp
LCBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3Qoc3ViRnJhbWVIb3N0
KSwgUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHRvcEZyYW1lSG9z
dCksIGZyYW1lSUQsIG1fcGFnZUlELCBwcm9tcHRFbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogI2VuZGlmCisKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
c3RhdGljIHVpbnQ2NF90IG5leHREZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxs
YmFja0lEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgbmV4dENhbGxiYWNrSUQgPSAwOworICAg
IHJldHVybiArK25leHRDYWxsYmFja0lEOworfQorCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3REZXZp
Y2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKK3sK
KyAgICBhdXRvIGNhbGxiYWNrSUQgPSBuZXh0RGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJtaXNz
aW9uQ2FsbGJhY2tJRCgpOworICAgIEFTU0VSVCghbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBl
cm1pc3Npb25DYWxsYmFja01hcC5jb250YWlucyhjYWxsYmFja0lEKSk7CisgICAgbV9kZXZpY2VP
cmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5hZGQoY2FsbGJhY2tJRCwgV1RG
TW92ZShjYWxsYmFjaykpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKG9yaWdpbi5kYXRhKCksIGNhbGxi
YWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdlOjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVy
bWlzc2lvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gY2FsbGJhY2tJRCA9
IG5leHREZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKCk7CisgICAg
QVNTRVJUKCFtX2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLmNv
bnRhaW5zKGNhbGxiYWNrSUQpKTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlz
c2lvbkNhbGxiYWNrTWFwLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uKG9yaWdpbi5kYXRhKCksIGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdl
OjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKQoreworICAgIGF1dG8gY2FsbGJh
Y2sgPSBtX2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLnRha2Uo
Y2FsbGJhY2tJRCk7CisgICAgQVNTRVJUKGNhbGxiYWNrKTsKKyAgICBjYWxsYmFjayhncmFudGVk
KTsKK30KKyNlbmRpZgogICAgIAogc3RhdGljIFNoYXJlU2hlZXRDYWxsYmFja0lEIG5leHRTaGFy
ZVNoZWV0Q2FsbGJhY2tJRCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggZDIxZWFmYmM1MjM1MmMyNTcyNzlmOGYzMmVhNjU2MzkwOGViNmE5Mi4u
NDQ4N2IwMTYyODEwZWI0YmNmMjlmMGRhZWY0ZTE1YTdlNTA2ZmQzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTExMSw2ICsxMTExLDExIEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9z
dCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Bl
cm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJt
aXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CisjZW5kaWYKKwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29y
ZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjYWxsYmFjayk7CiAgICAgdm9pZCBkaWRDb21wbGV0ZVNoYXJlU2hlZXQoYm9vbCB3
YXNDb21wbGV0ZWQsIFNoYXJlU2hlZXRDYWxsYmFja0lEIGNvbnRleHRJZCk7CiAgICAgCkBAIC0x
MjA3LDYgKzEyMTIsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RBZGRpdGlvbmFsSXRl
bXNGb3JEcmFnU2Vzc2lvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbik7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCBkaWRSZWNlaXZlRGV2aWNlT3Jp
ZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJ
RCwgYm9vbCBncmFudGVkKTsKKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExB
VEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25z
dCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYKQEAgLTE4MzcsNiArMTg0NiwxMCBA
QCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZChib29s
IGdyYW50ZWQpPj4gbV9zdG9yYWdlQWNjZXNzUmVzcG9uc2VDYWxsYmFja01hcDsKICAgICBIYXNo
TWFwPFNoYXJlU2hlZXRDYWxsYmFja0lELCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBjb21wbGV0
ZWQpPj4gbV9zaGFyZVNoZWV0UmVzcG9uc2VDYWxsYmFja01hcDsKIAorI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCisgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wgZ3JhbnRlZCk+PiBtX2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlz
c2lvbkNhbGxiYWNrTWFwOworI2VuZGlmCisKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZF
U1QpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgdWludDY0X3Q+IG1fYXBwbGljYXRpb25NYW5pZmVz
dEZldGNoQ2FsbGJhY2tNYXA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGNiMGI1NzA5MzM2NGMwZTU1
NDI0M2Y5MzA5YzM5MjVkNTQ4YWY0ZjAuLjZkYzliZTQ5NzMxYWYyYmUyYTVkZDMwMGQyMDQ5MDdh
YTE1MWMyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzY0LDYgKzM2NCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVO
b3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJv
b2wgYWxsb3dlZCkKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgRGlkUmVj
ZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2
NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCkKKyNlbmRpZgorCiAgICAgIyBQcmludGluZy4K
ICAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50
SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUxZDA2MTBkMTE5ZjY1MzE3NTA1Y2ZhN2I3
YzhkOTljYzY0MTM3NTMuLjcyNDA2MTI4OWRhMmMwOWVkNGUyNjNjZWFmNzA4OTFjNmRkYThlMGEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOS0wMy0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVy
bWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTMyOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgaW5mcmFzdHJ1
Y3R1cmUgdG8gaGVscCB0ZXN0IHRoZSBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlz
c2lvbiBBUEkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFNo
b3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MpOgorICAgICAgICAoV1RSOjpUZXN0UnVu
bmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OnJlcXVlc3REZXZp
Y2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAoV1RSOjpyZXF1ZXN0RGV2
aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU1vdGlvbkFjY2Vzc1Bl
cm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmg6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQWNjZXNzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFNo
b3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJl
Y2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0wMy0wNCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCBzaGFyZSBXZWJQcm9jZXNz
ZXMgYmV0d2VlbiBwcml2YXRlIGFuZCByZWd1bGFyIHNlc3Npb25zCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVu
bmVyLmlkbAppbmRleCAwZTc5ZDgwYjYwMWYzMjk1ZThiODE1YmExMDA4Yjk5N2QxYjgwYzZmLi5l
ZWUzOGQ2OWVmYjA0MTA1NjU5ZDFiZGVjMjE3NWUyZTM5MWIxYjI2IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKQEAgLTEwNCw2ICsxMDQsMTAgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewog
ICAgIGJvb2xlYW4gaXNDb21tYW5kRW5hYmxlZChET01TdHJpbmcgbmFtZSk7CiAgICAgdW5zaWdu
ZWQgbG9uZyB3aW5kb3dDb3VudCgpOwogCisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9uIE1vdGlv
bi4KKyAgICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MoYm9vbGVh
biB2YWx1ZSk7CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyhib29s
ZWFuIHZhbHVlKTsKKwogICAgIC8vIFNwZWNpYWwgRE9NIHZhcmlhYmxlcy4KICAgICBhdHRyaWJ1
dGUgYm9vbGVhbiBnbG9iYWxGbGFnOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBkNDYyMjQ2Y2RiOWMxOGY3N2Nl
NDVkNzMxMzcyODA0YTY1MWRkMzAyLi41YTAyMjBlMzliMThiMTRkOGU3ODIzYTNjNjg0YzY2MzYz
ZWUwMGVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEyOTQsNiArMTI5NCwyMCBAQCB2b2lkIFRlc3RSdW5uZXI6
OnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyhib29sIHZhbHVlKQogICAg
IFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdl
KCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAor
dm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKGJv
b2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFk
b3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQWNjZXNzIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVz
c2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKHZhbHVlKSk7CisgICAgV0tCdW5kbGVQ
YWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgp
LCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOworfQorCit2b2lkIFRlc3RS
dW5uZXI6OnNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKGJvb2wgdmFsdWUpCit7Cisg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyIp
KTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdL
Qm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCks
IG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVOZXR3
b3JrUHJvY2VzcygpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1l
KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVOZXR3b3Jr
UHJvY2VzcyIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKaW5kZXggNzEzYTk0MzM2MzkwNWYwYzliNzYwZDU3NGFjOGYzMjRkOGQ1
MTZmYy4uYTEwYWMwODk1NzkwOGExYTdlNzIzMzMyNGEyNTc0ZmJhZTVkYTRjNCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAg
LTM0OCw2ICszNDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uR2VzdHVyZXNF
bmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoYm9v
bCk7CiAgICAgdm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9v
bCk7CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2wp
OworICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MoYm9vbCk7CiAKICAg
ICBib29sIGRpZENhbmNlbENsaWVudFJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdDsgfQogICAgIHZvaWQgc2V0RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Qo
Ym9vbCB2YWx1ZSkgeyBtX2RpZENhbmNlbENsaWVudFJlZGlyZWN0ID0gdmFsdWU7IH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggODVhOWRjMzBhOWNiOGY2
OTI0ZDA3MjViMGJjNGFkNDIzZTZkZGQ2Ni4uMjBlZmNjNzVjNTQ4NjhlZjQyOTNjMWMwNDgwYzlk
MjljMjI2YTg5MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
QEAgLTI2MSw2ICsyNjEsMTYgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFBvaW50ZXJMb2NrKFdLUGFn
ZVJlZiBwYWdlLCBjb25zdCB2b2lkKikKICAgICBXS1BhZ2VEaWRBbGxvd1BvaW50ZXJMb2NrKHBh
Z2UpOwogfQogCitzdGF0aWMgYm9vbCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJt
aXNzaW9uKFdLUGFnZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGNvbnN0IHZvaWQq
KQoreworICAgIHJldHVybiBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuaGFuZGxlRGV2aWNl
T3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChvcmlnaW4pOworfQorCitzdGF0aWMg
Ym9vbCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXS1BhZ2VSZWYsIFdLU2Vj
dXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2b2lkKikKK3sKKyAgICByZXR1cm4gVGVzdENv
bnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRsZURldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25S
ZXF1ZXN0KG9yaWdpbik7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3Ro
ZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBX
S05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0dXJlc1Jl
ZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQbGF0Zm9y
bVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CkBAIC01NjksOCArNTc5LDggQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBv
cHRpb25zKQogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7
CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9u
cyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWOCBwYWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsgOCwg
bV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjEzIHBhZ2VVSUNsaWVu
dCA9IHsKKyAgICAgICAgeyAxMywgbV9tYWluV2ViVmlldy5nZXQoKSB9LAogICAgICAgICAwLCAv
LyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hv
d1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UKQEAgLTYzNiw3ICs2NDYsMTQgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBv
cHRpb25zKQogICAgICAgICAwLCAvLyBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwKICAgICAg
ICAgMCwgLy8gZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lCiAgICAgICAgIHJlcXVlc3RQb2lu
dGVyTG9jaywKLSAgICAgICAgMCwKKyAgICAgICAgMCwgLy8gZGlkTG9zZVBvaW50ZXJMb2NrCisg
ICAgICAgIDAsIC8vIGhhbmRsZUF1dG9wbGF5RXZlbnQKKyAgICAgICAgMCwgLy8gaGFzVmlkZW9J
blBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UKKyAgICAgICAgMCwgLy8gZGlkRXhjZWVkQmFja2dy
b3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZAorICAgICAgICAwLCAvLyBkaWRSZXNp
Z25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2UKKyAgICAgICAgMCwgLy8gcmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtCisgICAgICAgIHJlcXVlc3REZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1Blcm1pc3Npb24sCisgICAgICAgIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJt
aXNzaW9uCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+
cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2UpOwogCkBAIC05NDIsNiArOTU5LDkgQEAgYm9vbCBU
ZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0
aW9ucyYgb3B0aW9ucywgUmUKIAogICAgIG1fc2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlN
RVR5cGVzID0gZmFsc2U7CiAKKyAgICBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nl
c3MgPSBmYWxzZTsKKyAgICBtX3Nob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzID0gZmFsc2U7
CisKICAgICBtX3dvcmtRdWV1ZU1hbmFnZXIuY2xlYXJXb3JrUXVldWUoKTsKIAogICAgIG1fcmVq
ZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2Vz
ID0gZmFsc2U7CkBAIC0yNTQ3LDYgKzI1NjcsMTggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFu
ZGxlQ2hlY2tPZlVzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV0tGcmFtZVJlZiBmcmFtZSwK
ICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1NldFVzZXJNZWRpYUFjY2Vzc0luZm8oY2hl
Y2tSZXF1ZXN0LCBzYWx0U3RyaW5nLmdldCgpLCBzZXR0aW5nc0Zvck9yaWdpbihvcmlnaW5IYXNo
KS5wZXJzaXN0ZW50UGVybWlzc2lvbigpKTsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6aGFu
ZGxlRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChXS1NlY3VyaXR5T3Jp
Z2luUmVmIG9yaWdpbikKK3sKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1h
a2VTdHJpbmcoIlJlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiBy
ZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gXCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUob3Jp
Z2luKSwgIlwiLlxuIikpOworICAgIHJldHVybiBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BY2Nlc3M7Cit9CisKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU1vdGlvbkFj
Y2Vzc1Blcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKQoreworICAg
IG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQobWFrZVN0cmluZygiUmVjZWl2ZWQgZGV2
aWNlIG1vdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4g
XCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUob3JpZ2luKSwgIlwiLlxuIikpOworICAgIHJldHVy
biBtX3Nob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzOworfQorCiB2b2lkIFRlc3RDb250cm9s
bGVyOjpoYW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS0ZyYW1lUmVmIGZyYW1lLCBX
S1NlY3VyaXR5T3JpZ2luUmVmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBXS1NlY3VyaXR5T3Jp
Z2luUmVmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RSZWYgcmVxdWVzdCkKIHsKICAgICBhdXRvIG9yaWdpbkhhc2ggPSB1c2VyTWVkaWFPcmlnaW5I
YXNoKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBhMGMzYTcyZTc4MjAzMGM4
NjJlZDNiMDQwNjg4ZjdlYTQ3ZmJhYzA3Li5kOTZmZGQwZmZiZjVmMWQ2NDg4NDNiZGQ2YThhYjMx
MzhiZDkwMTVlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0x
NTAsNiArMTUwLDEwIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdENvdW50Rm9yT3JpZ2luKFdLU3RyaW5nUmVmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
U3RyaW5nLCBXS1N0cmluZ1JlZiB0b3BMZXZlbERvY3VtZW50T3JpZ2luU3RyaW5nKTsKICAgICB2
b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihXS1N0cmlu
Z1JlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpblN0cmluZyk7CiAKKyAgICAvLyBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rp
b24uCisgICAgYm9vbCBoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1
ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYpOworICAgIGJvb2wgaGFuZGxlRGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJlZik7CisKICAgICAvLyBDb250
ZW50IEV4dGVuc2lvbnMuCiAgICAgdm9pZCBjb25maWd1cmVDb250ZW50RXh0ZW5zaW9uRm9yVGVz
dChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwogICAgIHZvaWQgcmVzZXRDb250ZW50RXh0ZW5zaW9u
cygpOwpAQCAtMTk5LDYgKzIwMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElnbm9yZXNWaWV3
cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogCiAgICAgdm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlz
cGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5
YWJsZU1JTUVUeXBlcyA9IHZhbHVlOyB9CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQWNjZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQWNjZXNzID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNlTW90aW9u
QWNjZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyA9IHZh
bHVlOyB9CiAKICAgICB2b2lkIHNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSk7CiAg
ICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoV0tTdHJp
bmdSZWYgaG9zdE5hbWUpOwpAQCAtNTA4LDYgKzUxNCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X3BvbGljeURlbGVnYXRlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BvbGljeURlbGVn
YXRlUGVybWlzc2l2ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZERvd25sb2FkVW5kaXNw
bGF5YWJsZU1JTUVUeXBlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BY2Nlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRBbGxvd0Rldmlj
ZU1vdGlvbkFjY2VzcyB7IGZhbHNlIH07CiAKICAgICBib29sIG1fcmVqZWN0c1Byb3RlY3Rpb25T
cGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7IGZhbHNlIH07CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDY2NjBjZGM5MjFmODk3
Y2NlMmY3NzFkOGQ1M2E1YzI2ZjIxMjQ4ZjkuLjI1ZmRlNTZmZDVlZmNjOGUyMTIxYzZlYTMzZGZl
OWFlZDcwNTM3YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CkBAIC03NDcsNiArNzQ3LDIwIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MiKSkgeworICAg
ICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJ
RCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFu
UmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5z
ZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZhbHVlKHZh
bHVlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNj
ZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jv
b2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19j
YXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MoV0tCb29sZWFuR2V0
VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiUnVuVUlQcm9jZXNzU2NyaXB0Iikp
IHsKICAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRp
Y19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwogICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gc2NyaXB0S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJTY3JpcHQiKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjUzZTkzZmQ2YmNiNTQ3NzdlZjQ5ODc5OGUwZDhl
ODczNGY3ODRiNS4uM2Q1OWQwNGIxZTcyNGI0NjI2ZjBhOWFmM2RiM2M4Y2E1YTg1YWUwNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1v
dGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0
IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9u
LWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3Jh
bnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlv
bi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
Z3JhbnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisK
IDIwMTktMDMtMDMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFBy
ZXBhcmUgdG8gaW1wcm92ZSBoYW5kbGluZyBvZiBjb252ZXJzaW9uIG9mIGZsb2F0IHRvIHN0cmlu
Z3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDIyOTdmNWFiMWIzZWI0OWU1Y2ZkMzBkODViMjY3ZDRk
NjhiYTZjNDIuLjE2ZTI1NDY4MjNlYTMyNzNlMGU4NWYwMTVmNGZjYTAxZWQ4MDY1NDAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMzIsNiArMzIsNyBAQCBmYXN0L3pvb21pbmcvaW9zIFsgU2tpcCBd
CiBmYXN0L2Zvcm1zL2lvcyBbIFNraXAgXQogZmFzdC92aWV3cG9ydC9pb3MgWyBTa2lwIF0KIGZh
c3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBTa2lwIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
IFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3Mg
WyBTa2lwIF0KIGZhc3QvZXZlbnRzL3BvaW50ZXIvaW9zIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MzU4NTljNjNkMzc0MDliNDMyMjMyYjdhZDE2MmE5ODQyNDU4
ZjJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZW1vdGlv
biBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3Rl
ZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBtb3Rpb24gYWNjZXNzIHBlcm1pc3Npb24g
cmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4
OiBObyBkZXZpY2Vtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9u
IHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rp
b25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1MgcmVzdWx0IGlzICJkZW5pZWQiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45ZmQyMzk4MTk1YTMxNGZkZjA1ZTNjZjZhOWUyMmJjMDQ0OGJmZmJjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKQEAgLTAsMCArMSwyOCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMg
dGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4iKTsKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50
TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworRGV2aWNlTW90aW9uRXZlbnQu
cmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgcmVzdWx0ID0gX3Jl
c3VsdDsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKwor
ICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworICAgIERl
dmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4gewor
ICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlc3VsdCIsICJkZW5pZWQiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
Z3JhbnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40OGVhMTdmNTNjZDUxZGEzNmU1MGZhYWQ4ZmFiY2Q1ZWM3NmZhZjdiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2Vtb3Rpb24gZXZlbnRz
IHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdy
YW50ZWQuCitSZWNlaXZlZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3Qg
Zm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2
ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNTQyMTQ3ZDgxODU4ZjFlMDk0ZWJlMTBmZGYzZWFiYzIwNjFlZWIzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sCkBAIC0wLDAgKzEsMjggQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2lj
IHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RS
dW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK2FkZEV2ZW50
TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworRGV2aWNlTW90aW9uRXZlbnQu
cmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgcmVzdWx0ID0gX3Jl
c3VsdDsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisK
KyAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKKyAgICBE
ZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsK
KyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsK
K30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEwMzBmMTBkYmFmZmIzNjdiNzFiYWZiZDk5NGU3NDQzMjFj
ZjhmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmlj
ZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJl
ZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uIGFj
Y2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxODogTm8gZGV2aWNlb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmly
ZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitCYXNpYyB0
ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgor
UEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0
aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODZmMWI5NjE1
NGI4MTdmYmRhMmRkYmM5MzFhOGQ2YWRhNWUyMGJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlzdGVu
ZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitEZXZpY2VPcmllbnRhdGlvbkV2
ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9
IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7
CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsK
KworICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChf
cmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDJjOTBjNDJkNTI0NTVlNTZlNzJm
ODg4NGRjZmM2Mzk2YzhiZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1n
cmFudGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTI6IE5vIGRldmljZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBl
cm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNl
IG9yaWVudGF0aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdp
biAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBl
cm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0
IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNjAwMWNjZTBlZjNiZTQ0ZWUzNDg5MjA5MGEwZDE2MWU1ZDhlNGE4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKQEAgLTAsMCArMSwyOCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFz
aWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigp
LiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3ModHJ1ZSk7
CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkg
PT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50
YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQ
ZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2Rldmlj
ZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUt
Y29udGV4dC5odG1sCmluZGV4IGVkMmRkMjAzNzdjNTczNjVlMWE1ZjdmZmM1MjU0ZjcyN2Q3MWI1
ZGMuLmI3ZmUxODBhN2E1YTZkNDU4YjAyYThlNzkzYzQ0ZGZjZGM3ZDU5YjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24t
bm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVu
dHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRtbApAQCAt
MjcsNyArMjcsNyBAQCBmdW5jdGlvbiBydW5EZXZpY2VNb3Rpb25UZXN0KCkKICAgICBkZWJ1Zygi
KiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7CiAgICAgYWRkRXZlbnRMaXN0
ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGludGVybmFscy5wb3N0
VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVN
ZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVu
dGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3Vy
ZS4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2Ui
LCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZW1vdGlvbiBldmVudCBsaXN0ZW5lciBi
ZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CiAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwogICAgIH0pOwogfQpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlvbiBydW5E
ZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmljZSBv
cmllbnRhdGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVu
dGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9PiB7
Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJs
b2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3Rl
bmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKKyAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBh
dHRlbXB0IHRvIGFkZCBhIGRldmljZW9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyIGJlY2F1c2Ug
dGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKICAgICAgICAgcnVuRGV2aWNl
TW90aW9uVGVzdCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlv
bi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IDRlNTRkMTFkOTk0MWU3NThlMDI3NTBiODZkNDNl
MzJiYzk0MzNlZWUuLjVmODBmNDExODI2YmI3NjQ4MmNjZjc0MmU1ZjI2YTQ4YTcwMzhlZjggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlv
bi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKQEAg
LTYsNiArNiwxMSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBl
dmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9u
IGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuIik7CiBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5z
ZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKHRydWUpOworICAgIHRlc3RSdW5u
ZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3ModHJ1ZSk7Cit9CisKIC8vIGxvY2Fs
aG9zdCBpcyBzZWN1cmUgYnkgZGVmYXVsdC4KIAogbGV0IGxhc3RDb25zb2xlTWVzc2FnZSA9IG51
bGw7CkBAIC0xNSwxOSArMjAsMjUgQEAgaW50ZXJuYWxzLnNldENvbnNvbGVNZXNzYWdlTGlzdGVu
ZXIoKG1lc3NhZ2UpID0+IHsKIAogZnVuY3Rpb24gcnVuRGV2aWNlTW90aW9uVGVzdCgpCiB7Cisg
ICAgZGVidWcoIiIpOwogICAgIGlmICghd2luZG93LkRldmljZU1vdGlvbkV2ZW50KSB7CiAgICAg
ICAgIGNvbnNvbGUubG9nKCJEZXZpY2UgTW90aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkIik7CiAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFz
dENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIiogUmVn
aXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciIpOwotICAgIGFkZEV2ZW50TGlzdGVuZXIo
ImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2so
KCkgPT4gewotICAgICAgICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBkZWJ1ZygiKiBSZXF1ZXN0aW5nIGRldmljZSBtb3Rp
b24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24o
KS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKworICAgICAgICBs
YXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOworICAgICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBk
ZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmlj
ZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKKyAgICAgICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgp
ID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNzYWdlIik7Cisg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAg
LTM5LDEyICs1MCwxOSBAQCBmdW5jdGlvbiBydW5EZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAg
ICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsKLSAg
ICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsK
LSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZU51bGwoImxh
c3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBydW5EZXZpY2VNb3Rpb25UZXN0KCk7CisgICAg
ZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzLi4uIik7CisgICAg
RGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQp
ID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgICAgIERldmljZU9yaWVudGF0aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24KKyAgICAgICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVs
bDsKKyAgICAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3Rl
bmVyIik7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgZnVu
Y3Rpb24oKSB7IH0pOworICAgICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4geworICAgICAg
ICAgICAgc2hvdWxkQmVOdWxsKCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKKyAgICAgICAgICAgIHJ1
bkRldmljZU1vdGlvblRlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2OWM4Mzg0ZTJj
ODE4NjUyZjA0NWFjZjQ5NTU0Y2I2MmUyNzllZWFiLi4wYjhlODRkODA2OTc2NTlhNTQwOGVjYTA3
YjgwYjg1NTMxMzc4MDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0
RXhwZWN0YXRpb25zCkBAIC03LDYgKzcsNyBAQAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwogCiBjb21wb3NpdGluZy9pb3MgWyBQYXNzIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0
aW9uIFsgUGFzcyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9p
b3MgWyBQYXNzIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9u
LW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9u
LXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA4Njc3OWFmNDY1MTExMWIxODcxNWE1
M2U3YjExZTNiMTFiOTczYTExLi5mZGYxZWZmODcyMTY3ZmRmMTI4NzQ1ODFmYzgwMTdiZTE2NGUy
YzVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVu
dHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZp
Y2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAg
LTEsMTUgKzEsMTUgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NTogQmxvY2tlZCBhdHRlbXB0
IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0
aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDI4OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlv
biBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNDU6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vv
cmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlz
IG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjg6IEJsb2NrZWQgYXR0ZW1wdCB0
byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3Npbmcg
Y29udGV4dCBpcyBub3Qgc2VjdXJlLgogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50
IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gbG9n
cyBhbiBlcnJvciBpbiBub24tc2VjdXJlIGNvbnRleHRzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKIAogKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIKLVBB
U1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250
ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQg
YXR0ZW1wdCB0byBhZGQgYSBkZXZpY2VvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciBiZWNhdXNl
IHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgogCiAqIFJlZ2lzdGVyaW5nIGRl
dmljZSBtb3Rpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2Vk
IGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBi
ZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29u
c29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZl
bnQgbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1v
cmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rp
b24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDMxYjg1ZjVkN2Q0NWYzN2Y5ZDZi
MTY1ZjY3MzdkZmU1OTIyZWRmNWMuLmFiMmI0MzNlZjk0M2M0MmFlMmE4MzU5ODM4ODk1MTIwM2M5
OTFiOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2
ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNl
LW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTEg
KzEsMTcgQEAKK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiBy
ZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIuCitSZWNl
aXZlZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5
IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIi4KIFRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNl
dCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVu
dGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuCiAKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCisqIFJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9u
IGFjY2Vzcy4uLgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCiAqIFJlZ2lzdGVyaW5nIGRldmlj
ZSBvcmllbnRhdGlvbiBsaXN0ZW5lcgogUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgbnVsbAog
CisqIFJlcXVlc3RpbmcgZGV2aWNlIG1vdGlvbiBhY2Nlc3MuLi4KK1BBU1MgcmVzdWx0IGlzICJn
cmFudGVkIgogKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyCiBQQVNTIGxhc3RD
b25zb2xlTWVzc2FnZSBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363673</attachid>
            <date>2019-03-05 13:07:56 -0800</date>
            <delta_ts>2019-03-05 13:18:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190305130755.patch</filename>
            <type>text/plain</type>
            <size>96211</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2NTk5ZTMzMzQxZjUz
NzBlNTAwNzRlNGM5MWZhZjUyOWNmNTJkOC4uNGE3MDJkZTIzY2IzY2MzZjVlMGFmM2JjOTc4ZTk3
OWFjZjY0M2ExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTAzLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9E
ZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVz
dFBlcm1pc3Npb24pOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmg6Cisg
ICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0
aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLnlhbWw6CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBJbXByb3ZlIG91ciBmaWxlIHBpY2tlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA4NzZlY2Q1ZDQxMGEzZTVhODRkOWIxMTRkYTY2ZWRkZjUxMTM3MDFmLi4wZmIzZjg4MzBjOTEz
MDMwNDBjODg5MTExMDZkYTEwOThiMmNhNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisy
MDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0
aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNv
bS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoK
KyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdl
YktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlTW90
aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om5leHREZXZpY2VP
cmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9u
TW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDE5LTAzLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgRG8gbm90IHNoYXJlIFdlYlByb2Nlc3NlcyBiZXR3ZWVuIHByaXZhdGUgYW5k
IHJlZ3VsYXIgc2Vzc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3Bw
CmluZGV4IDkwZDcwMmRjMzkwNTJkMGZjNzZkZTA4NDE1ZGE0N2I4MzczYjJkOTYuLjU4MDhjMzVi
ZTY3NDc4ZjA4Yjc5NjZlOWExMDFjNTNkZjVkZmEyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkV2ZW50LmNwcApAQCAtMjYsNyArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjIsNCArMTI2LDMyIEBAIEV2ZW50SW50ZXJmYWNl
IERldmljZU1vdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERldmljZU1vdGlvbkV2ZW50Ojpy
ZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYg
cHJvbWlzZSkKK3sKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5kb3coKTsKKyAg
ICBpZiAoIXdpbmRvdykKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9u
U3RhdGU6OkRlbmllZCk7CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghd2lu
ZG93LT5pc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2FnZSkp
IHsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byBEZXZpY2VNb3Rpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwgcmVhc29uOiAiLCBlcnJvck1lc3NhZ2Us
ICIuIikpOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6
RGVuaWVkKTsKKyAgICB9CisKKyAgICBpZiAoYXV0byBwZXJtaXNzaW9uU3RhdGUgPSBkb2N1bWVu
dC5kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNv
bHZlKCpwZXJtaXNzaW9uU3RhdGUgPyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNz
aW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwor
ICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9u
U3RhdGU6OkRlbmllZCk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0RGV2
aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihkb2N1bWVudC50b3BPcmlnaW4oKSwgW2RvY3VtZW50
ID0gbWFrZVdlYWtQdHIoZG9jdW1lbnQpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYm9v
bCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGRvY3VtZW50KQorICAgICAgICAgICAg
ZG9jdW1lbnQtPnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAgICBw
cm9taXNlLnJlc29sdmUoZ3JhbnRlZCA/IFBlcm1pc3Npb25TdGF0ZTo6R3JhbnRlZCA6IFBlcm1p
c3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCmluZGV4IDNlY2M1
YmQ0YzBjN2VlYzE4ZTlmYjhlNDE1NmYxOGJmM2VmNDUzM2QuLjY0YTk0OWQwZmZjMjQyNGJhOTQy
N2JlM2NjMWRkNDRjYTA2NjEyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VNb3Rpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVu
dC5oCkBAIC0yNiwxMCArMjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERldmljZU1vdGlvbkRhdGE7CitjbGFzcyBEb2N1bWVudDsKIAogY2xhc3Mg
RGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgpAQCAtNjYs
NiArNjgsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0RGV2aWNlTW90aW9uRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGJ1YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSwgT3B0
aW9uYWw8QWNjZWxlcmF0aW9uPiYmLCBPcHRpb25hbDxBY2NlbGVyYXRpb24+JiYsIE9wdGlvbmFs
PFJvdGF0aW9uUmF0ZT4mJiwgT3B0aW9uYWw8ZG91YmxlPik7CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIHsgR3JhbnRlZCwg
RGVuaWVkIH07CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47CisgICAgc3RhdGljIHZvaWQgcmVx
dWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlzZSYmKTsKKyNlbmRpZgor
CiBwcml2YXRlOgogICAgIERldmljZU1vdGlvbkV2ZW50KCk7CiAgICAgRGV2aWNlTW90aW9uRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERldmljZU1vdGlvbkRhdGEqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCmluZGV4IGYyZjVkZjIwZmNlNTNi
YzEzYjVhYmU2ZDQxOGUyMGJkNWE0ZmQzODYuLjMyYWQ2ZTc1YzBjMzRlMTg0NjIxOGFkNjhhNGVk
ZTYxN2E1ZDI5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbApA
QCAtMzEsNiArMzEsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSb3RhdGlvblJhdGU/IHJv
dGF0aW9uUmF0ZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8g
aW50ZXJ2YWw7CiAKKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnQsIEVuYWJsZWRCeVNldHRpbmc9RGV2
aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJXSBzdGF0aWMgUHJvbWlzZTxQZXJtaXNzaW9uU3Rh
dGU+IHJlcXVlc3RQZXJtaXNzaW9uKCk7CisKICAgICB2b2lkIGluaXREZXZpY2VNb3Rpb25FdmVu
dChvcHRpb25hbCBET01TdHJpbmcgdHlwZSA9ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlLApAQCAt
NTcsMyArNTksNSBAQAogICAgIGRvdWJsZT8gYmV0YTsKICAgICBkb3VibGU/IGdhbW1hOwogfTsK
KworZW51bSBQZXJtaXNzaW9uU3RhdGUgeyAiZ3JhbnRlZCIsICJkZW5pZWQiIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKaW5kZXggZTgyMWI2NTUz
MTA4YTEyMGMwZmIyNzEyN2JhNTc1NTE5MGU3MWUxZS4uYTg5MzI5MGNlZDg1NWQ1MjVhNzY1NDU3
NjBiNWM3MzJkM2I5OTVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcApAQCAtMjYsNyArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgiCiAKKyNpbmNsdWRlICJDaHJvbWUuaCIK
KyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRh
dGEuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTA5LDQgKzExMywzMiBAQCBFdmVudEludGVy
ZmFjZSBEZXZpY2VPcmllbnRhdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CiAjZW5k
aWYKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERldmljZU9yaWVu
dGF0aW9uRXZlbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUGVybWlz
c2lvblByb21pc2UmJiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRv
bVdpbmRvdygpOworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNv
bHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7
CisgICAgaWYgKCF3aW5kb3ctPmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24o
ZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKCJDYWxsIHRv
IERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNv
bjogIiwgZXJyb3JNZXNzYWdlLCAiLiIpKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2
ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAgaWYgKGF1dG8gcGVybWlz
c2lvblN0YXRlID0gZG9jdW1lbnQuZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpKQorICAg
ICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKCpwZXJtaXNzaW9uU3RhdGUgPyBQZXJtaXNzaW9u
U3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBhdXRvKiBw
YWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHBy
b21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBwYWdlLT5jaHJv
bWUoKS5jbGllbnQoKS5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGRv
Y3VtZW50LnRvcE9yaWdpbigpLCBbZG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShib29sIGdyYW50ZWQpIG11dGFibGUgeworICAgICAg
ICBpZiAoZG9jdW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NTdGF0ZShncmFudGVkKTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGdyYW50ZWQg
PyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7Cisg
ICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKaW5kZXggMDI1YjJlMzJhNzUxZTQyZjY1
MGJiNTNiNTE1YTEwYmRiNTI3ZjQ3OC4uMTZlMzNhZjkxOTg0NjFmNmVjMjYxNGY2YTNmNTgyMTlm
ZGY2ZDQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5o
CkBAIC0yNiwxMCArMjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXZlbnQuaCIK
KyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKK2NsYXNzIERvY3VtZW50OwogCiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoK
QEAgLTYwLDYgKzYyLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXREZXZpY2VPcmllbnRhdGlv
bkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNl
bGFibGUsIE9wdGlvbmFsPGRvdWJsZT4gYWxwaGEsIE9wdGlvbmFsPGRvdWJsZT4gYmV0YSwgT3B0
aW9uYWw8ZG91YmxlPiBnYW1tYSwgT3B0aW9uYWw8Ym9vbD4gYWJzb2x1dGUpOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGVudW0gY2xhc3MgUGVybWlzc2lv
blN0YXRlIHsgR3JhbnRlZCwgRGVuaWVkIH07CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2Ug
PSBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47Cisg
ICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJv
bWlzZSYmKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQo
KTsKICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmlkbAppbmRleCAxM2ZmN2JhZGMwZTU5MTE2NjM1OTVkMTVkMTFk
YmQ2MGEzMzM5ZmRiLi42OTI5OWZjNWU2MjgwZWMxMTNmYzMyYzY2MDE5YjNlY2JmNDdkYjJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCkBAIC0z
MCw2ICszMCw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/
IGJldGE7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGdhbW1h
OwogCisgICAgW0NhbGxXaXRoPURvY3VtZW50LCBFbmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVu
dGF0aW9uUGVybWlzc2lvbkFQSV0gc3RhdGljIFByb21pc2U8UGVybWlzc2lvblN0YXRlPiByZXF1
ZXN0UGVybWlzc2lvbigpOworCiAgICAgLy8gRklYTUU6IENvbnNpZGVyIGRlZmluaW5nIGFuIEVO
QUJMRSBtYWNybyBmb3IgaU9TIGRldmljZSBvcmllbnRhdGlvbiBjb2RlIGFuZC9vciBtb2RpZnlp
bmcKICAgICAvLyB0aGUgYmluZGluZ3Mgc2NyaXB0cyB0byBzdXBwb3J0IGdlbmVyYXRpbmcgbW9y
ZSBjb21wbGljYXRlZCBjb25kaXRpb25hbCBjb2RlLgogI2lmIGRlZmluZWQoV1RGX1BMQVRGT1JN
X0lPU19GQU1JTFkpICYmIFdURl9QTEFURk9STV9JT1NfRkFNSUxZCkBAIC01NSwzICs1Nyw0IEBA
CiAjZW5kaWYKIH07CiAKK2VudW0gUGVybWlzc2lvblN0YXRlIHsgImdyYW50ZWQiLCAiZGVuaWVk
IiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTQyOTI3ODZjYzhlZmVlZjViMWEyZmMx
NWRjNzEwYmZlYzFjMzExMC4uNGY4YmQ4MmVkNzA0Y2FhMGE4NzYzOTE3ZGZhMGE2OTE1YWNjZmM4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NjM4LDYgKzg2MzgsNTggQEAgdm9pZCBE
b2N1bWVudDo6ZnJhbWVXYXNEaXNjb25uZWN0ZWRGcm9tT3duZXIoKQogICAgIGRldGFjaEZyb21G
cmFtZSgpOwogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworY29uc3QgT3B0
aW9uYWw8Ym9vbD4mIERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlKCkgY29u
c3QKK3sKKyAgICBpZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykKKyAgICAgICAgcmV0dXJuIHRv
cERvY3VtZW50KCkuZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpOworCisgICAgcmV0dXJu
IG1fZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpCit7CisgICAgaWYgKCZ0
b3BEb2N1bWVudCgpICE9IHRoaXMpIHsKKyAgICAgICAgdG9wRG9jdW1lbnQoKS5zZXREZXZpY2VP
cmllbnRhdGlvbkFjY2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlID0gZ3JhbnRlZDsKKworICAgIGlm
ICghZ3JhbnRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvKiBmcmFtZSA9IG1f
ZnJhbWU7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dChtX2ZyYW1lKSkKKyAgICAgICAgZnJhbWUtPndpbmRvdygpLT5zdGFydExpc3Rl
bmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKK30KKworY29uc3QgT3B0aW9u
YWw8Ym9vbD4mIERvY3VtZW50OjpkZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCZ0b3BEb2N1bWVudCgpICE9IHRoaXMpCisgICAgICAgIHJldHVybiB0b3BEb2N1bWVu
dCgpLmRldmljZU1vdGlvbkFjY2Vzc1N0YXRlKCk7CisKKyAgICByZXR1cm4gbV9kZXZpY2VNb3Rp
b25BY2Nlc3NTdGF0ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlTW90aW9uQWNjZXNz
U3RhdGUoYm9vbCBncmFudGVkKQoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAhPSB0aGlzKSB7
CisgICAgICAgIHRvcERvY3VtZW50KCkuc2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoZ3JhbnRl
ZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2RldmljZU1vdGlvbkFjY2Vzc1N0
YXRlID0gZ3JhbnRlZDsKKworICAgIGlmICghZ3JhbnRlZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZm9yIChhdXRvKiBmcmFtZSA9IG1fZnJhbWU7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChtX2ZyYW1lKSkKKyAgICAgICAgZnJh
bWUtPndpbmRvdygpLT5zdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7
Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiBXb3JrbGV0JiBE
b2N1bWVudDo6ZW5zdXJlUGFpbnRXb3JrbGV0KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
Nzc4YzIxMzNjNTQzNTdkZDY3NzE5OWRmNzE5NDE3YjNlZGU5MzExYS4uYjhiNDY5MWQxNTUyZDgx
MGI3ZmVhMzgzOTAwZmQ5ODEwYjFmMWZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyMTQs
MTIgKzEyMTQsMTkgQEAgcHVibGljOgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVu
dElPUy5oPgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyJiBkZXZpY2VNb3Rp
b25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyJiBk
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNpbXVsYXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUg
YmV0YSwgZG91YmxlIGdhbW1hKTsKICNlbmRpZgogCisgICAgY29uc3QgT3B0aW9uYWw8Ym9vbD4m
IGRldmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERldmlj
ZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoYm9vbCBncmFudGVkKTsKKyAgICBjb25zdCBPcHRpb25h
bDxib29sPiYgZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERl
dmljZU1vdGlvbkFjY2Vzc1N0YXRlKGJvb2wgZ3JhbnRlZCk7CisjZW5kaWYgLy8gRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKwogICAgIGNvbnN0IERvY3VtZW50VGltaW5nJiB0aW1pbmcoKSBj
b25zdCB7IHJldHVybiBtX2RvY3VtZW50VGltaW5nOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBk
b3VibGUgbW9ub3RvbmljVGltZXN0YW1wKCkgY29uc3Q7CkBAIC0xODMxLDYgKzE4MzgsMTEgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fYXJlRnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuIHsgZmFsc2Ug
fTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBPcHRpb25h
bDxib29sPiBtX2RldmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGU7CisgICAgT3B0aW9uYWw8Ym9v
bD4gbV9kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZTsKKyNlbmRpZgorCiAgICAgSGFzaFNldDxIVE1M
UGljdHVyZUVsZW1lbnQqPiBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXM7CiAgICAgSGFzaFNl
dDxIVE1MUGljdHVyZUVsZW1lbnQqPiBtX2FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlczsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggM2EwZGMzYmIwM2RjZDcwYmU5NGVmNGI5
ODYyMWQ5Nzk1NjBlN2ViYS4uZDAwOWE4NGQyY2I3OThkYWE5ZTRiOTM4ZGYzNmMxM2JlMmU0ZWI3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00ODIsNiArNDgyLDExIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcmJiAvKnN1YkZy
YW1lSG9zdCovLCBTdHJpbmcmJiAvKnRvcEZyYW1lSG9zdCovLCB1aW50NjRfdCAvKmZyYW1lSUQq
LywgdWludDY0X3QgLypwYWdlSUQqLywgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29s
KT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgLypzdWJGcmFtZUhvc3QqLywgU3RyaW5nJiYgLyp0
b3BGcmFtZUhvc3QqLywgdWludDY0X3QgLypmcmFtZUlEKi8sIHVpbnQ2NF90IC8qcGFnZUlEKi8s
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJh
Y2soZmFsc2UpOyB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxi
YWNrKSB7IGNhbGxiYWNrKHRydWUpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKHRydWUpOyB9Cisj
ZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRNZW51RWxlbWVudChIVE1MTWVudUVs
ZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTWVudUVsZW1lbnQoSFRNTE1l
bnVFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVJdGVtRWxlbWVu
dChIVE1MTWVudUl0ZW1FbGVtZW50JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5k
ZXggZGZhMTEyNDg0YTNhNDc3ZTNkYzAyMmEzNGNhMzRkZjNmZmE5M2UzMi4uNjIxNDBjYzc5ZjAy
ZDUzYzM4MTFkMzM5Y2NjMzZjNzA2YzQ0MTdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cApAQCAtMTgyNiw1MCArMTgyNiwxMzQgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVu
ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmUKICAgICBl
bHNlIGlmIChldmVudE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAg
ICAgIGluY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKTsKICNlbmRpZgorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAgICBzdGFydExpc3RlbmluZ0Zv
ckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICBlbHNlIGlmIChldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KQorICAgICAgICBzdGFydExpc3Rlbmlu
Z0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKKworICAgIHJldHVybiB0cnVl
OworfQogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBpZiAoZnJhbWUoKSAm
JiBmcmFtZSgpLT5zZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkgJiYg
ZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5sb2FkZXIoKSAmJiBkb2N1bWVudCgpLT5sb2FkZXIo
KS0+ZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSkgeworCitEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIqIERPTVdpbmRvdzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29u
c3QKK3sKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBpZiAoKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNl
Y3VyaXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAg
ICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9u
RXZlbnQpCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcigpLmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29u
dHJvbGxlcigpLmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgfSBl
bHNlIGlmIChkb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU2VjdXJlQ29udGV4
dCgpKQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0
IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgZnJvbSBjaGls
ZCBmcmFtZSB0aGF0IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4g
cGFnZS4iX3MpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZl
bDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9y
aWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNl
Y3VyZS4iX3MpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgcmV0dXJuIGRvY3VtZW50
KCkgPyAmZG9jdW1lbnQoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgOiBudWxscHRy
OwogI2Vsc2UKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90
aW9uRXZlbnQpIHsKLSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZy
YW1lKCkgJiYgaXNTZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoRGV2aWNl
TW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZy
b20ocGFnZSgpKSkKLSAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZl
bnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBk
b2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gbGlz
dGVuZXIgZnJvbSBjaGlsZCBmcmFtZSB0aGF0IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmln
aW4gYXMgdGhlIG1haW4gcGFnZS4iX3MpOwotICAgICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkgewotICAgICAgICAgICAgaWYg
KGlzU2FtZVNlY3VyaXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkg
ewotICAgICAgICAgICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAg
ICAgICAgICAgICAgICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChpc1NlY3VyZUNvbnRl
eHQoKSkKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1w
dCB0byBhZGQgYSBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIgZnJvbSBjaGlsZCBmcmFtZSB0
aGF0IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZS4iX3Mp
OwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9u
IGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3Mp
OwotICAgICAgICAgICAgfQorICAgIHJldHVybiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6
OmZyb20ocGFnZSgpKTsKKyNlbmRpZgorfQorCitEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBET01X
aW5kb3c6OmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyAmZG9jdW1lbnQoKS0+ZGV2aWNlTW90
aW9uQ29udHJvbGxlcigpIDogbnVsbHB0cjsKKyNlbHNlCisgICAgcmV0dXJuIERldmljZU1vdGlv
bkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKTsKKyNlbmRpZgorfQorCitib29sIERPTVdpbmRvdzo6
aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2UpIGNv
bnN0Cit7CisgICAgaWYgKCFmcmFtZSgpIHx8ICFmcmFtZSgpLT5zZXR0aW5ncygpLmRldmljZU9y
aWVudGF0aW9uRXZlbnRFbmFibGVkKCkgfHwgIWRvY3VtZW50KCkgfHwgIWRvY3VtZW50KCktPmxv
YWRlcigpIHx8ICFkb2N1bWVudCgpLT5sb2FkZXIoKS0+ZGV2aWNlT3JpZW50YXRpb25FdmVudEVu
YWJsZWQoKSkgeworICAgICAgICBtZXNzYWdlID0gIkFQSSBpcyBkaXNhYmxlZCJfczsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghaXNTZWN1cmVDb250ZXh0KCkpIHsK
KyAgICAgICAgbWVzc2FnZSA9ICJCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUiX3M7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWlzU2FtZVNlY3VyaXR5T3Jp
Z2luQXNNYWluRnJhbWUoKSkgeworICAgICAgICBtZXNzYWdlID0gIlNvdXJjZSBmcmFtZSBkaWQg
bm90IGhhdmUgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UiX3M7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wg
RE9NV2luZG93Ojppc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIo
Y29uc3QgU3RyaW5nJiBldmVudFR5cGUsIFN0cmluZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBT
dHJpbmcgaW5uZXJNZXNzYWdlOworICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25P
cmllbnRhdGlvbihpbm5lck1lc3NhZ2UpKSB7CisgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KCJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgIiwgZXZlbnRUeXBlLCAiIGV2ZW50IGxpc3RlbmVy
LCByZWFzb246ICIsIGlubmVyTWVzc2FnZSwgIi4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIGlmIChmcmFtZSgpLT5zZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9uUGVy
bWlzc2lvbkFQSUVuYWJsZWQoKSkgeworICAgICAgICBhdXRvIHBlcm1pc3Npb25TdGF0ZSA9IChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpID8gZG9jdW1l
bnQoKS0+ZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpIDogZG9jdW1lbnQoKS0+ZGV2aWNl
TW90aW9uQWNjZXNzU3RhdGUoKTsKKyAgICAgICAgaWYgKHBlcm1pc3Npb25TdGF0ZSAmJiAhKnBl
cm1pc3Npb25TdGF0ZSkgeworICAgICAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIk5vICIs
IGV2ZW50VHlwZSwgIiBldmVudHMgd2lsbCBiZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8g
dXNlIHRoZSBBUEkgd2FzIGRlbmllZC4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgfSBlbHNlIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KQotICAgICAgICBmYWls
ZWRUb1JlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpOwotI2VuZGlmIC8vIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIGlmICghcGVybWlzc2lvblN0YXRlICYmIGZy
YW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uSGFuZGxlZEJ5Q2xp
ZW50KCkpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJObyAiLCBldmVudFR5
cGUsICIgZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1
ZXN0ZWQgYW5kIGdyYW50ZWQuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCit2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRh
dGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpOworICAg
IGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVu
dExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGVycm9yTWVz
c2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0
ZW5lcihldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCwgZXJyb3JNZXNzYWdlKSkg
eworICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAg
ICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsIGVycm9yTWVzc2FnZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBkZXZpY2VDb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsK
K30KKwordm9pZCBET01XaW5kb3c6OnN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklm
TmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRl
dmljZW9yaWVudGF0aW9uRXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byog
ZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpKQorICAgICAg
ICBkZXZpY2VDb250cm9sbGVyLT5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKK30K
Kwordm9pZCBET01XaW5kb3c6OnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3Nh
cnkoKQoreworICAgIGlmICghaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW1v
dGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZGV2aWNlQ29udHJvbGxl
ciA9IGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKTsKKyAgICBpZiAoIWRldmljZUNvbnRyb2xsZXIg
fHwgZGV2aWNlQ29udHJvbGxlci0+aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcykpCisgICAg
ICAgIHJldHVybjsKKworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCFpc0FsbG93
ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoZXZlbnROYW1lcygpLmRldmlj
ZW1vdGlvbkV2ZW50LCBlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJE
ZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9
IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdl
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xsZXItPmFkZERl
dmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RvcExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoaGFzRXZlbnRMaXN0
ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGF1dG8qIGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VNb3Rpb25Db250cm9sbGVy
KCkpCisgICAgICAgIGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIo
KnRoaXMpOworfQogCiB2b2lkIERPTVdpbmRvdzo6ZmFpbGVkVG9SZWdpc3RlckRldmljZU1vdGlv
bkV2ZW50TGlzdGVuZXIoKQogewpAQCAtMTk0MSwyMiArMjAyNSw2IEBAIGJvb2wgRE9NV2luZG93
OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVu
dExpc3RlbmVyCiAgICAgICAgIHJlbW92ZVVubG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7CiAgICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmV1bmxvYWRFdmVudCAmJiBh
bGxvd3NCZWZvcmVVbmxvYWRMaXN0ZW5lcnModGhpcykpCiAgICAgICAgIHJlbW92ZUJlZm9yZVVu
bG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQgJiYgZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1l
bnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIo
KnRoaXMpOwotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3Jp
ZW50YXRpb25FdmVudCAmJiBkb2N1bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsK
LSNlbHNlCi0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rp
b25FdmVudCkgewotICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxl
ciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNv
bnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0gZWxzZSBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0g
ICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRy
b2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0KLSNlbmRpZiAv
LyBQTEFURk9STShJT1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50KQogICAgICAgICBkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KCk7CkBAIC0xOTc3LDYgKzIwNDUsMTIgQEAgYm9vbCBET01XaW5kb3c6OnJl
bW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlz
dGVuZXIKICAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBlKGV2ZW50
VHlwZSkpCiAgICAgICAgIGRlY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKTsKICNl
bmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAgICBzdG9w
TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIGVsc2UgaWYg
KGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpCisgICAgICAgIHN0
b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTIwNTksMTggKzIxMzMsOSBAQCB2b2lkIERPTVdpbmRvdzo6cmVt
b3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxFdmVudExp
c3RlbmVycygpOwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVu
dCgpKSB7Ci0gICAgICAgIGRvY3VtZW50LT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkucmVtb3Zl
QWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgICAgICBkb2N1bWVudC0+ZGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRo
aXMpOwotICAgIH0KLSNlbHNlCi0gICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNv
bnRyb2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSAgICBpZiAo
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFs
bERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFN
SUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIHN0b3BM
aXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgICAgIHN0b3BM
aXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIGlmIChtX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYmJiZmE5NTg3MmU0YTMzZTczNDI1MjgxZTRhY2Ni
NGY3MDU5YjFjNC4uYmY0MzNkNjkzOGZjZmUzYmZkNTQxMjA0ZThkNzUzN2VmYzM2MDJhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC04Miw2ICs4MiwxMSBAQCBjbGFzcyBWaXN1YWxWaWV3
cG9ydDsKIGNsYXNzIFdlYktpdE5hbWVzcGFjZTsKIGNsYXNzIFdlYktpdFBvaW50OwogCisjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK2NsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7
CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CisjZW5kaWYKKwogc3RydWN0IElt
YWdlQml0bWFwT3B0aW9uczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIApAQCAtMzExLDYgKzMx
NiwxOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50KCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JvbGxFdmVudExpc3RlbmVyQ291bnQ7IH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9y
RGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgc3RvcExpc3RlbmluZ0Zv
ckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5n
Rm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0b3BMaXN0ZW5pbmdGb3JE
ZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworCisgICAgYm9vbCBpc0FsbG93ZWRUb1VzZURldmlj
ZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisgICAgYm9vbCBpc0Fs
bG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoY29uc3QgU3RyaW5nJiBl
dmVudFR5cGUsIFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisKKyAgICBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIqIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0OworICAgIERl
dmljZU1vdGlvbkNvbnRyb2xsZXIqIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKKyNl
bmRpZgorCiAgICAgdm9pZCByZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbigpOwogCiAjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHx8IEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcAppbmRleCAzMzY3ZDNkYmY1OWZj
MzM1NzI0OTc1OGFjNjNkZDE3MjVlMDc2MzY2Li44NDJiODU0ZWUyNTEyNThhNDEwNjJiZmUwZDA2
NTQ0ZWRiM2M2ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAK
QEAgLTY5LDYgKzY5LDExIEBAIHZvaWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsRGV2aWNl
RXZlbnRMaXN0ZW5lcnMoRE9NV2luZG93JiB3aW5kb3cpCiAgICAgICAgIG1fY2xpZW50LnN0b3BV
cGRhdGluZygpOwogfQogCitib29sIERldmljZUNvbnRyb2xsZXI6Omhhc0RldmljZUV2ZW50TGlz
dGVuZXIoRE9NV2luZG93JiB3aW5kb3cpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbGlzdGVuZXJz
LmNvbnRhaW5zKCZ3aW5kb3cpOworfQorCiB2b2lkIERldmljZUNvbnRyb2xsZXI6OmRpc3BhdGNo
RGV2aWNlRXZlbnQoRXZlbnQmIGV2ZW50KQogewogICAgIGZvciAoYXV0byYgbGlzdGVuZXIgOiBj
b3B5VG9WZWN0b3IobV9saXN0ZW5lcnMudmFsdWVzKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2
aWNlQ29udHJvbGxlci5oCmluZGV4IGUxNjAzODVhZmUyZjk3MzUzYzBlYTIyZjI5ZTg1NmYxOGUy
MGIxYTguLjNkNWY5MGM1MGVlNGE1NGZjMGFkMTdjNjQ3MzVkZDY5Mzg3M2ZmZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jik7CiAgICAgdm9pZCBy
ZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYpOwogICAgIHZvaWQgcmVtb3ZlQWxs
RGV2aWNlRXZlbnRMaXN0ZW5lcnMoRE9NV2luZG93Jik7CisgICAgYm9vbCBoYXNEZXZpY2VFdmVu
dExpc3RlbmVyKERPTVdpbmRvdyYpIGNvbnN0OwogCiAgICAgdm9pZCBkaXNwYXRjaERldmljZUV2
ZW50KEV2ZW50Jik7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0dXJuICFtX2xpc3RlbmVycy5p
c0VtcHR5KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFt
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAzMDNkN2Y4MmQ0YjM3
ZmRiYTFiN2YyZGQ0YThkYTI1N2U4YWI5NzdjLi40NmM0ZWZhZThlNzFiNmE0OGExOTU2Y2I4Zjc2
NDU5NTBhMmM4NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlh
bWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC03NjQsNiArNzY0
LDE2IEBAIGRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkOgogICBpbml0aWFsOiB0cnVlCiAg
IGNvbmRpdGlvbmFsOiBERVZJQ0VfT1JJRU5UQVRJT04KIAorZGV2aWNlT3JpZW50YXRpb25QZXJt
aXNzaW9uQVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBpbml0aWFsOiBmYWxzZQorICBjb25k
aXRpb25hbDogREVWSUNFX09SSUVOVEFUSU9OCisKK2RldmljZU9yaWVudGF0aW9uUGVybWlzc2lv
bkhhbmRsZWRCeUNsaWVudDoKKyAgdHlwZTogYm9vbAorICBpbml0aWFsOiBmYWxzZQorICBjb25k
aXRpb25hbDogREVWSUNFX09SSUVOVEFUSU9OCisKIHNob3VsZEVuYWJsZVRleHRBdXRvc2l6aW5n
Qm9vc3Q6CiAgIHR5cGU6IGJvb2wKICAgaW5pdGlhbDogZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGY1NTg0MzI1OTBmYmRlYjY4OTc5M2UwYjQ5YjI2
Nzc4NDE2N2QyZWEuLmVlMDgwM2Q4ODE3NzcyZDUwMjU1NDhiMjEzY2NmZjM4ZmQ5YzJiNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTIsNiArMTIsMjEg
QEAgRGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6CiAgIGNvbmRpdGlvbjogRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKICAgd2ViY29yZU5hbWU6IGRldmljZU9yaWVudGF0aW9uRXZlbnRF
bmFibGVkCiAKK0RldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQ6CisgIHR5cGU6
IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBjb25kaXRpb246IEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgIHdlYmNvcmVOYW1lOiBkZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25B
UElFbmFibGVkCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUGVybWlzc2lvbiBBUEkgZm9yIGRldmlj
ZSBvcmllbnRhdGlvbiAvIG1vdGlvbiBhY2Nlc3MuIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRp
b246ICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgLyBEZXZpY2VN
b3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFs
CisKK0RldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkhhbmRsZWRCeUNsaWVudDoKKyAgdHlwZTog
Ym9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGNvbmRpdGlvbjogRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKKyAgd2ViY29yZU5hbWU6IGRldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkhh
bmRsZWRCeUNsaWVudAorCiBKYXZhU2NyaXB0RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZh
dWx0VmFsdWU6IHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
aW5kZXggM2VjNmYwMGQyNGZjOTM5NDI2OTBhM2U3MjlmZDA3ZWQ3YTNhYTZjNy4uOGFhMDRjNjc0
N2ZjZGM1YmFjNjkxZTVkYjJlMGQ1YzQzMzA4NjRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE3Myw2ICsxNzMsMTQgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFsIGJv
b2wgaGFuZGxlc0RldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3RzKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmljZU9yaWVu
dGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
eyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQorCisgICAgdmlydHVhbCBib29sIGhhbmRsZXNE
ZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lv
bihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0
cnVlKTsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRv
bihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQogCiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKaW5kZXggYTQxNjc2NmUyYjM4M2UxYjUxNDQ4ZmM5Y2M0MDJjMDFmMWJlYjNhYS4u
ZmIzNjFiYWViZDc3YzNjNzNlZTIxZGVhNmM2YjI0NGZlOWQxOTEzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRl
bXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0
eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQ
YWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdl
VUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlD
bGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xp
ZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMj4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1
cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIs
IFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdL
UGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFn
ZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdl
VUlDbGllbnRWMTIsIFdLUGFnZVVJQ2xpZW50VjEzPiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKQEAgLTE5MDMsNiArMTkwMywzNCBAQCB2b2lkIFdLUGFnZVNldFBh
Z2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3
a0NsaWVudAogICAgICAgICAgICAgbV9jbGllbnQucmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJt
KHRvQVBJKCZwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShyZXF1ZXN0aW5nRG9tYWluLmltcGwo
KSksIHRvQVBJKGN1cnJlbnREb21haW4uaW1wbCgpKSwgdG9BUEkobGlzdGVuZXIucHRyKCkpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgICAgICBib29sIGhhbmRsZXNEZXZpY2VPcmllbnRhdGlvbkFjY2Vz
c1Blcm1pc3Npb25SZXF1ZXN0cygpIGNvbnN0IGZpbmFsCisgICAgICAgIHsKKyAgICAgICAgICAg
IHJldHVybiAhIW1fY2xpZW50LnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b247CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFj
Y2Vzc1Blcm1pc3Npb24oV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBv
cmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
IGZpbmFsCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghaGFuZGxlc0RldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3RzKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlciht
X2NsaWVudC5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKHRvQVBJKCZw
YWdlKSwgdG9BUEkoJm9yaWdpbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOworICAgICAg
ICB9CisKKyAgICAgICAgYm9vbCBoYW5kbGVzRGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvblJl
cXVlc3RzKCkgY29uc3QgZmluYWwKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICEhbV9j
bGllbnQucmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb247CisgICAgICAgIH0KKwor
ICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYlBhZ2VQ
cm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIWhhbmRsZXNEZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fY2xpZW50LnJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbykpOworICAgICAgICB9CisjZW5kaWYKKwogICAgICAgICAvLyBQcmludGlu
Zy4KICAgICAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJh
bWVQcm94eSYgZnJhbWUpIGZpbmFsCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDVlNTk3M2Y5YWIxOGI0NmE2NWVmZTA4
ZWRmNWYzNTA3YTc3NWRmMGIuLjc0NzY4ZDRhMWRlNDFmYzhlMDk2MjY0ZmY4ZWY2OWY2MzE5NTBh
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQu
aApAQCAtMTM0LDYgKzEzNCw4IEBAIHR5cGVkZWYgdm9pZCAoKldLRGlkTG9zZVBvaW50ZXJMb2Nr
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJCiB0eXBlZGVmIHZv
aWQgKCpXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBib29sIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNl
TGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tSZXNvdXJj
ZUxpbWl0IGxpbWl0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
UGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKK3R5cGVkZWYgYm9vbCAoKldLUGFnZVJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vz
c1Blcm1pc3Npb25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYg
c2VjdXJpdHlPcmlnaW4sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgq
V0tQYWdlUmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFn
ZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYg
cGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKQEAgLTExNDAsNiArMTE0MiwxMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRW
MTIgewogICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOwogfSBXS1Bh
Z2VVSUNsaWVudFYxMjsKIAordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTMgeworICAg
IFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVO
ZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNy
ZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQ
YWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7Cisg
ICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdl
UnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAg
ICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1Bh
Z2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAg
ICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAg
V0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAg
ICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7Cisg
ICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1
Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3Np
bmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdl
RGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdo
ZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdl
U2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJs
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNp
YmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRT
dGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJs
ZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNp
emFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5k
b3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
dFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxi
YWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjYgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjY7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREcmF3OworICAgIFdL
UGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0YWJhc2VR
dW90YTsKKyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xp
Y3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lk
ZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlSGVhZGVy
SGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJIZWlnaHQ7CisgICAgV0tQYWdlRHJh
d0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkcmF3SGVhZGVyOworICAgIFdLUGFnZURyYXdGb290ZXJDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zvb3RlcjsKKyAgICBXS1BhZ2VQcmlu
dEZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50RnJhbWU7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKKyAgICB2b2lkKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
dXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCisg
ICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyOworICAgIHZvaWQq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZTsKKworICAgIC8vIFZl
cnNpb24gMS4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMSAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMTsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFn
ZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAg
V0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBp
Y2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWls
YWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICBX
S1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAg
IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW51c2VkMjsgLy8gVXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50
aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJl
IGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkNDsgLy8g
VXNlZCB0byBiZSBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgorICAg
IFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDUu
CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxs
YmFjayAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dDsKKyAgICBXS1BhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZENsaWNrQXV0b0ZpbGxCdXR0b247CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VS
dW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAg
ICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQ
YWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAg
ICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAg
V0tQYWdlTWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZTsKKworICAgIC8vIFZlcnNp
b24gNi4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlUnVuSmF2YVNj
cmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5K
YXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAg
ICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9uIDcuCisgICAgV0tQ
YWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tGdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDguCisgICAgV0tSZXF1
ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMb3NlUG9pbnRlckxv
Y2s7CisKKyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxheUV2ZW50Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2
ZW50OworCisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0
dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhhc1ZpZGVvSW5QaWN0
dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNl
TGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhjZWVkQmFja2dyb3Vu
ZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZlcnNpb24gMTEuCisg
ICAgV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlQ2Fs
bGJhY2sgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFu
Y2U7CisKKyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNz
Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NDb25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VSZXF1ZXN0RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uQ2FsbGJhY2sgICAgICAgICAgICAgIHJlcXVl
c3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb247CisgICAgV0tQYWdlUmVxdWVzdERl
dmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICByZXF1
ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbjsKK30gV0tQYWdlVUlDbGllbnRWMTM7CisK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBkYmQwNTNl
N2ZiZDBhMDk1ZjA4ODhhN2VkYTBiYzJiYmE3M2UyNTMyLi4xYzJkMDY1MmQwZWJlOTMxMmE2Yzhm
ZWE1MjJlNTEzNTJiZTJlMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTExNCw2ICsxMTQsOSBAQCBz
dHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
Kiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAq
KW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVyZXMgKil3aW5k
b3dGZWF0dXJlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tXZWJWaWV3ICp3ZWJWaWV3
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygx
MS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RHZW9s
b2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wgYWxsb3dlZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b25Gb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlz
c2lvbkZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4g
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIC0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1l
SW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkp
OwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBlZGl0b3JTdGF0ZURpZENo
YW5nZTooTlNEaWN0aW9uYXJ5ICopZWRpdG9yU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMuNCksIGlvcygxMS4zKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUuaAppbmRleCBjY2I3OGEyOWUyYTRjMmZmMTZkNDI1MjVhZTVlNDYwYTc4OWJiN2Ez
Li45MDJjMzI2NjQ5NjgzNGMyNjgxOTM5ZTc5OWJkMzFjY2EwMDQ5ZWUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMTksNiArMTE5LDEyIEBAIHBy
aXZhdGU6CiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1l
UHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5l
bFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgZmluYWw7CiAg
ICAgICAgIHZvaWQgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdy
b3VuZChXZWJQYWdlUHJveHkmLCBXS1Jlc291cmNlTGltaXQpIGZpbmFsOwogICAgICAgICB2b2lk
IHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV1RG
OjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFVSTCYsIEFQSTo6RGF0YSYpIGZp
bmFsOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgYm9v
bCBoYW5kbGVzRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25z
dCBmaW5hbDsKKyAgICAgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJt
aXNzaW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgICAgICBib29sIGhhbmRsZXNE
ZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdCBmaW5hbDsKKyAgICAg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKSBmaW5hbDsKICNlbmRpZgogICAgICAgICBib29sIG5lZWRzRm9udEF0dHJpYnV0ZXMo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOyB9CiAgICAgICAgIHZvaWQgZGlkQ2hhbmdlRm9u
dEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmKSBmaW5hbDsKQEAgLTE4
Nyw2ICsxOTMsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3U2F2ZURhdGFUb0Zp
bGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21w
bGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOworI2VuZGlm
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVx
dWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVj
aXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdERldmljZU1vdGlv
bkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7CiAj
ZW5kaWYKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5
T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VF
eHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVj
aWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVD
dXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVk
VXNhZ2VEZWNpc2lvbkhhbmRsZXIgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUubW0KaW5kZXggYjVhMGE1MDhiYzk5NmQzYzlhOTdmOTNhZjNlYTNmOTI1MDk3
ZjY2NS4uZmQzZTgzMmU3NjkxODVjODRjZmY3MzM4ODYxZjEwZTQwNzY4ZGRkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMzIsNiArMTMyLDEw
IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdh
dGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1NhdmVEYXRhVG9GaWxlU3VnZ2VzdGVk
RmlsZW5hbWVNaW1lVHlwZU9yaWdpbmF0aW5nVVJMID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2F2ZURhdGFUb0ZpbGU6c3VnZ2VzdGVkRmlsZW5hbWU6
bWltZVR5cGU6b3JpZ2luYXRpbmdVUkw6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1J1bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5k
bGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5P
cGVuUGFuZWxXaXRoUGFyYW1ldGVyczppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVy
OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVy
bWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1p
c3Npb25Gb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CisjZW5kaWYKKyNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdS
ZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5E
ZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJp
dHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVj
aXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdp
bjpkZWNpc2lvbkhhbmRsZXI6KV07CiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVu
dE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5k
bGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVj
aWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmN1cnJlbnRRdW90YTpjdXJyZW50T3Jp
Z2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6ZXhwZWN0ZWRVc2FnZTpkZWNpc2lvbkhhbmRs
ZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFG
b3JTZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVu
dE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5k
bGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVj
aWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlTmFtZTpkaXNwbGF5TmFt
ZTpjdXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4
cGVjdGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwpAQCAtODQ0LDYgKzg0OCw1NSBAQCBib29s
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJh
bWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpoYW5kbGVzRGV2aWNlT3JpZW50
YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdAoreworICAgIHJldHVybiBtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3REZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcjsKK30KKwor
dm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNz
UGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNl
Y3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGlmICghaGFuZGxlc0RldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlz
c2lvblJlcXVlc3RzKCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsK
KworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAg
ICBpZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7
CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVh
dGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0RGV2aWNlT3JpZW50
YXRpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOikp
OworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlE
ZWxlZ2F0ZS5tX3dlYlZpZXcgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lv
bkZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIoc2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxl
cjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSAoQk9PTCBncmFudGVkKSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlv
bkhhbmRsZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7CisgICAgfSku
Z2V0KCldOworfQorCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpoYW5kbGVzRGV2aWNlTW90
aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3RzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91aURl
bGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNz
UGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyOworfQorCit2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGlmICghaGFuZGxlc0RldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0cygpKQor
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRvIGRlbGVn
YXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgYXV0byBjaGVj
a2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgp
LCBAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25G
b3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyByZXF1
ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIo
c2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNo
ZWNrZXIpXSAoQk9PTCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGNoZWNrZXItPmNv
bXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZ3JhbnRlZCk7CisgICAgfSkuZ2V0KCldOworfQorI2VuZGlmCisKIHZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNv
cmU6OkZvbnRBdHRyaWJ1dGVzJiBmb250QXR0cmlidXRlcykKIHsKICAgICBpZiAoIW5lZWRzRm9u
dEF0dHJpYnV0ZXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDI0NTUwZTQ5ZDhjZjFkZTQ4OGI5NzUyZTEyYWIzMDNmMWNmMzUzMDAuLjA0NTczODUzYWM3
N2IzY2YwMWQyZjEzNTFlODI0MjM1NTAwYzAyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtNjQ2LDYgKzY0Niw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRVSUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpVSUNsaWVudD4mJiB1aUNsaWVudCkKICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldENhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChtX3VpQ2xpZW50LT5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwo
KSksIG1fcGFnZUlEKTsKICAgICBzZXRDYW5SdW5Nb2RhbChtX3VpQ2xpZW50LT5jYW5SdW5Nb2Rh
bCgpKTsKICAgICBzZXROZWVkc0ZvbnRBdHRyaWJ1dGVzKG1fdWlDbGllbnQtPm5lZWRzRm9udEF0
dHJpYnV0ZXMoKSk7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBwcmVmZXJl
bmNlcygpLnNldERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkhhbmRsZWRCeUNsaWVudChtX3Vp
Q2xpZW50LT5oYW5kbGVzRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMo
KSAmJiBtX3VpQ2xpZW50LT5oYW5kbGVzRGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvblJlcXVl
c3RzKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRJY29uTG9hZGluZ0Ns
aWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpJY29uTG9hZGluZ0NsaWVudD4mJiBpY29uTG9hZGlu
Z0NsaWVudCkKQEAgLTcxNjgsNiArNzE3MSwyOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJV
c2VyTWVkaWFTdGF0ZSgpCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVy
bWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1aW50NjRf
dCBjYWxsYmFja0lEKQoreworICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVudC0+cmVx
dWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbigqdGhpcywgb3JpZ2luLmdldCgp
LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrSURdKGJvb2wg
Z3JhbnRlZCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFpc1ZhbGlkKCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
RGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9u
KGNhbGxiYWNrSUQsIGdyYW50ZWQpLCBtX3BhZ2VJRCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQorewor
ICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEu
c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVudC0+cmVxdWVzdERldmljZU1vdGlvbkFj
Y2Vzc1Blcm1pc3Npb24oKnRoaXMsIG9yaWdpbi5nZXQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpLCBjYWxsYmFja0lEXShib29sIGdyYW50ZWQpIHsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcyB8fCAhaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRh
dGlvbk1vdGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lvbihjYWxsYmFja0lELCBncmFudGVkKSwg
bV9wYWdlSUQpOworICAgIH0pOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyMTU1ZDE0MmU0NGZi
YTU0NDU4YmM3MWY1MzkxYmU2ZTA5YjRlODAzLi4zMjc0MzJkOWNmODU4YzViNWY1ZGNmNmZhNzZj
NmRlOGQxNThhY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTQwMSw2ICsxNDAxLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNz
Q29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4s
IGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0
X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRfdCBjYWxsYmFj
a0lEKTsKKyNlbmRpZgorCiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogbm9uRXBoZW1lcmFsV2Vi
UGFnZVByb3h5KCk7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGU4NjRk
NGE5NmZiNjdmOWE1M2YxZDYwOWM2OWY3NzY1MjEzODRhMDAuLmEwNTk3ZTljMDhiNjM2Mjk2M2Jk
YjU1ZDJkMzYxZjM5MjQ5ZmU3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTUzMiw2ICs1MzIsMTEgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBTdG9wVVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRl
bnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpCiAgICAgTG9hZFN5bmNocm9ub3VzVVJM
U2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0
ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBlcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpIERlbGF5ZWQKIAorI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgUmVxdWVzdERldmljZU9yaWVudGF0aW9u
QWNjZXNzUGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdp
biwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgUmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Bl
cm1pc3Npb24oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIHVpbnQ2
NF90IGNhbGxiYWNrSUQpOworI2VuZGlmCisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5U
KQogICAgIFJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXJGcm9tRGF0YShTdHJpbmcgaWRlbnRp
ZmllciwgU3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJpbmcgcHJlZmVycmVkRmlsZU5hbWUsIElQQzo6
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIFJlZ2lzdGVyQXR0YWNobWVudElk
ZW50aWZpZXJGcm9tRmlsZVBhdGgoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlw
ZSwgU3RyaW5nIGZpbGVQYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA2N2ZkN2E3MjBj
ZTJmMzM5NzcwMzUxNDhiZGJkMmNlZmE3YzdmZDM1Li43ZjUwNTcwZGM0YTNkMGZlMWQwNTlmZmQ5
NWU4MmNiMWM2Mzk1Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTMyMCw0ICsxMzIw
LDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcm
JiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdERldmljZU9y
aWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIG1fcGFnZS5y
ZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShj
YWxsYmFjaykpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdERldmljZU1vdGlv
bkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3BhZ2UucmVxdWVzdERl
dmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
ZjkyNmEyNThhZDg1YWIwNzc5MTZkMGNiMjM1Mjg0ZDhlYjNiZGFhNy4uMzAzNDNkZWYxZWY1ZmYy
OTU5YzQwMGUzZjQ4YTQ2NTdhZTdkYjk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzY2LDYg
KzM2NiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5n
JiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJikg
ZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9p
ZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7
CisgICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZp
bmFsOworI2VuZGlmCisKICAgICBTdHJpbmcgbV9jYWNoZWRUb29sVGlwOwogICAgIG11dGFibGUg
UmVmUHRyPFdlYkZyYW1lPiBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lOwogICAgIG11dGFi
bGUgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4
OTY4NzYwZjllNGU2NmZhMWY0ZDU5MTY2YTcyZTcwOTEyODQ5ZTBlLi5iNWJlNzAzMmRmMzM1ZTM3
M2FhOWU1OGRkYjhjZTIxN2QwY2MxMjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjM1NCw2ICs2MzU0LDM5IEBAIHZvaWQgV2ViUGFnZTo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BG
cmFtZUhvc3QsCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdlQWNjZXNzKHNlc3Np
b25JRCgpLCBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3Qoc3ViRnJh
bWVIb3N0KSwgUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHRvcEZy
YW1lSG9zdCksIGZyYW1lSUQsIG1fcGFnZUlELCBwcm9tcHRFbmFibGVkKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogI2VuZGlmCisKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorc3RhdGljIHVpbnQ2NF90IG5leHREZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Np
b25DYWxsYmFja0lEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgbmV4dENhbGxiYWNrSUQgPSAw
OworICAgIHJldHVybiArK25leHRDYWxsYmFja0lEOworfQorCit2b2lkIFdlYlBhZ2U6OnJlcXVl
c3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFj
aykKK3sKKyAgICBhdXRvIGNhbGxiYWNrSUQgPSBuZXh0RGV2aWNlT3JpZW50YXRpb25Nb3Rpb25Q
ZXJtaXNzaW9uQ2FsbGJhY2tJRCgpOworICAgIEFTU0VSVCghbV9kZXZpY2VPcmllbnRhdGlvbk1v
dGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5jb250YWlucyhjYWxsYmFja0lEKSk7CisgICAgbV9k
ZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5hZGQoY2FsbGJhY2tJ
RCwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKG9yaWdpbi5kYXRhKCks
IGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdlOjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gY2FsbGJh
Y2tJRCA9IG5leHREZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKCk7
CisgICAgQVNTRVJUKCFtX2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNr
TWFwLmNvbnRhaW5zKGNhbGxiYWNrSUQpKTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9uTW90aW9u
UGVybWlzc2lvbkNhbGxiYWNrTWFwLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uKG9yaWdpbi5kYXRhKCksIGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBX
ZWJQYWdlOjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
RGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKQoreworICAgIGF1dG8g
Y2FsbGJhY2sgPSBtX2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFw
LnRha2UoY2FsbGJhY2tJRCk7CisgICAgQVNTRVJUKGNhbGxiYWNrKTsKKyAgICBjYWxsYmFjayhn
cmFudGVkKTsKK30KKyNlbmRpZgogICAgIAogc3RhdGljIFNoYXJlU2hlZXRDYWxsYmFja0lEIG5l
eHRTaGFyZVNoZWV0Q2FsbGJhY2tJRCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggZDIxZWFmYmM1MjM1MmMyNTcyNzlmOGYzMmVhNjU2MzkwOGVi
NmE5Mi4uNDQ4N2IwMTYyODEwZWI0YmNmMjlmMGRhZWY0ZTE1YTdlNTA2ZmQzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTExMSw2ICsxMTExLDEx
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZy
YW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFj
Y2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nl
c3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJik7CisjZW5kaWYKKwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQo
V2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjYWxsYmFjayk7CiAgICAgdm9pZCBkaWRDb21wbGV0ZVNoYXJlU2hlZXQo
Ym9vbCB3YXNDb21wbGV0ZWQsIFNoYXJlU2hlZXRDYWxsYmFja0lEIGNvbnRleHRJZCk7CiAgICAg
CkBAIC0xMjA3LDYgKzEyMTIsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RBZGRpdGlv
bmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbik7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCBkaWRSZWNlaXZlRGV2
aWNlT3JpZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgY2Fs
bGJhY2tJRCwgYm9vbCBncmFudGVkKTsKKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKENPQ09BKSAm
JiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVu
dChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYKQEAgLTE4MzcsNiArMTg0
NiwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9p
ZChib29sIGdyYW50ZWQpPj4gbV9zdG9yYWdlQWNjZXNzUmVzcG9uc2VDYWxsYmFja01hcDsKICAg
ICBIYXNoTWFwPFNoYXJlU2hlZXRDYWxsYmFja0lELCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBj
b21wbGV0ZWQpPj4gbV9zaGFyZVNoZWV0UmVzcG9uc2VDYWxsYmFja01hcDsKIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wgZ3JhbnRlZCk+PiBtX2RldmljZU9yaWVudGF0aW9uTW90aW9u
UGVybWlzc2lvbkNhbGxiYWNrTWFwOworI2VuZGlmCisKICNpZiBFTkFCTEUoQVBQTElDQVRJT05f
TUFOSUZFU1QpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgdWludDY0X3Q+IG1fYXBwbGljYXRpb25N
YW5pZmVzdEZldGNoQ2FsbGJhY2tNYXA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGNiMGI1NzA5MzM2
NGMwZTU1NDI0M2Y5MzA5YzM5MjVkNTQ4YWY0ZjAuLjZkYzliZTQ5NzMxYWYyYmUyYTVkZDMwMGQy
MDQ5MDdhYTE1MWMyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzY0LDYgKzM2NCwxMCBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJl
Y2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQsIGJvb2wgYWxsb3dlZCkKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAg
RGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCkKKyNlbmRpZgorCiAgICAgIyBQcmlu
dGluZy4KICAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6
OlByaW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUxZDA2MTBkMTE5ZjY1MzE3NTA1
Y2ZhN2I3YzhkOTljYzY0MTM3NTMuLjcyNDA2MTI4OWRhMmMwOWVkNGUyNjNjZWFmNzA4OTFjNmRk
YThlMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMSBAQAorMjAxOS0wMy0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rp
b24gcGVybWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTMyOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2NDUzNjc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgdG8gaGVscCB0ZXN0IHRoZSBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24g
cGVybWlzc2lvbiBBUEkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6
OnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MpOgorICAgICAgICAoV1RSOjpU
ZXN0UnVubmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OnJlcXVl
c3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAoV1RSOjpyZXF1
ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1
ZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU1vdGlvbkFj
Y2Vzc1Blcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQWNjZXNzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246
OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0wMy0wNCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCBzaGFyZSBXZWJQ
cm9jZXNzZXMgYmV0d2VlbiBwcml2YXRlIGFuZCByZWd1bGFyIHNlc3Npb25zCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAppbmRleCAwZTc5ZDgwYjYwMWYzMjk1ZThiODE1YmExMDA4Yjk5N2QxYjgw
YzZmLi5lZWUzOGQ2OWVmYjA0MTA1NjU5ZDFiZGVjMjE3NWUyZTM5MWIxYjI2IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwKQEAgLTEwNCw2ICsxMDQsMTAgQEAgaW50ZXJmYWNlIFRlc3RSdW5u
ZXIgewogICAgIGJvb2xlYW4gaXNDb21tYW5kRW5hYmxlZChET01TdHJpbmcgbmFtZSk7CiAgICAg
dW5zaWduZWQgbG9uZyB3aW5kb3dDb3VudCgpOwogCisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9u
IE1vdGlvbi4KKyAgICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3Mo
Ym9vbGVhbiB2YWx1ZSk7CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vz
cyhib29sZWFuIHZhbHVlKTsKKwogICAgIC8vIFNwZWNpYWwgRE9NIHZhcmlhYmxlcy4KICAgICBh
dHRyaWJ1dGUgYm9vbGVhbiBnbG9iYWxGbGFnOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBkNDYyMjQ2Y2RiOWMx
OGY3N2NlNDVkNzMxMzcyODA0YTY1MWRkMzAyLi41YTAyMjBlMzliMThiMTRkOGU3ODIzYTNjNjg0
YzY2MzYzZWUwMGVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEyOTQsNiArMTI5NCwyMCBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyhib29sIHZhbHVl
KQogICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsK
IH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNj
ZXNzKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VO
YW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQWNjZXNzIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJl
Zj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKHZhbHVlKSk7CisgICAgV0tC
dW5kbGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+
cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOworfQorCit2b2lk
IFRlc3RSdW5uZXI6OnNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKGJvb2wgdmFsdWUp
Cit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFj
Y2VzcyIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0
V0ssIFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdl
KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUu
Z2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3Nh
Z2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVO
ZXR3b3JrUHJvY2VzcyIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggNzEzYTk0MzM2MzkwNWYwYzliNzYwZDU3NGFjOGYz
MjRkOGQ1MTZmYy4uYTEwYWMwODk1NzkwOGExYTdlNzIzMzMyNGEyNTc0ZmJhZTVkYTRjNCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKQEAgLTM0OCw2ICszNDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uR2Vz
dHVyZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1p
dHMoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlw
ZXMoYm9vbCk7CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNz
KGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MoYm9vbCk7
CiAKICAgICBib29sIGRpZENhbmNlbENsaWVudFJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9k
aWRDYW5jZWxDbGllbnRSZWRpcmVjdDsgfQogICAgIHZvaWQgc2V0RGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3QoYm9vbCB2YWx1ZSkgeyBtX2RpZENhbmNlbENsaWVudFJlZGlyZWN0ID0gdmFsdWU7IH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggODVhOWRjMzBh
OWNiOGY2OTI0ZDA3MjViMGJjNGFkNDIzZTZkZGQ2Ni4uMjBlZmNjNzVjNTQ4NjhlZjQyOTNjMWMw
NDgwYzlkMjljMjI2YTg5MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTI2MSw2ICsyNjEsMTYgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFBvaW50ZXJMb2Nr
KFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKikKICAgICBXS1BhZ2VEaWRBbGxvd1BvaW50ZXJM
b2NrKHBhZ2UpOwogfQogCitzdGF0aWMgYm9vbCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nl
c3NQZXJtaXNzaW9uKFdLUGFnZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGNvbnN0
IHZvaWQqKQoreworICAgIHJldHVybiBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuaGFuZGxl
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChvcmlnaW4pOworfQorCitz
dGF0aWMgYm9vbCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXS1BhZ2VSZWYs
IFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2b2lkKikKK3sKKyAgICByZXR1cm4g
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRsZURldmljZU1vdGlvbkFjY2Vzc1Blcm1p
c3Npb25SZXF1ZXN0KG9yaWdpbik7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0
aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0
dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQ
bGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CkBAIC01NjksOCArNTc5LDggQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRp
b25zJiBvcHRpb25zKQogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0
aW9ucyk7CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlvbi5nZXQoKSwg
b3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWOCBwYWdlVUlDbGllbnQgPSB7Ci0gICAgICAg
IHsgOCwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjEzIHBhZ2VV
SUNsaWVudCA9IHsKKyAgICAgICAgeyAxMywgbV9tYWluV2ViVmlldy5nZXQoKSB9LAogICAgICAg
ICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwg
Ly8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UKQEAgLTYzNiw3ICs2NDYsMTQgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRp
b25zJiBvcHRpb25zKQogICAgICAgICAwLCAvLyBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwK
ICAgICAgICAgMCwgLy8gZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lCiAgICAgICAgIHJlcXVl
c3RQb2ludGVyTG9jaywKLSAgICAgICAgMCwKKyAgICAgICAgMCwgLy8gZGlkTG9zZVBvaW50ZXJM
b2NrCisgICAgICAgIDAsIC8vIGhhbmRsZUF1dG9wbGF5RXZlbnQKKyAgICAgICAgMCwgLy8gaGFz
VmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UKKyAgICAgICAgMCwgLy8gZGlkRXhjZWVk
QmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZAorICAgICAgICAwLCAvLyBk
aWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2UKKyAgICAgICAgMCwg
Ly8gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtCisgICAgICAgIHJlcXVlc3REZXZpY2VPcmll
bnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24sCisgICAgICAgIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nl
c3NQZXJtaXNzaW9uCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2Vi
Vmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2UpOwogCkBAIC05NDIsNiArOTU5LDkgQEAg
Ym9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBU
ZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKIAogICAgIG1fc2hvdWxkRG93bmxvYWRVbmRpc3BsYXlh
YmxlTUlNRVR5cGVzID0gZmFsc2U7CiAKKyAgICBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BY2Nlc3MgPSBmYWxzZTsKKyAgICBtX3Nob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzID0g
ZmFsc2U7CisKICAgICBtX3dvcmtRdWV1ZU1hbmFnZXIuY2xlYXJXb3JrUXVldWUoKTsKIAogICAg
IG1fcmVqZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VzID0gZmFsc2U7CkBAIC0yNTQ3LDYgKzI1NjcsMTggQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6aGFuZGxlQ2hlY2tPZlVzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV0tGcmFtZVJlZiBm
cmFtZSwKICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1NldFVzZXJNZWRpYUFjY2Vzc0lu
Zm8oY2hlY2tSZXF1ZXN0LCBzYWx0U3RyaW5nLmdldCgpLCBzZXR0aW5nc0Zvck9yaWdpbihvcmln
aW5IYXNoKS5wZXJzaXN0ZW50UGVybWlzc2lvbigpKTsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxl
cjo6aGFuZGxlRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChXS1NlY3Vy
aXR5T3JpZ2luUmVmIG9yaWdpbikKK3sKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRU
ZXh0KG1ha2VTdHJpbmcoIlJlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVybWlz
c2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gXCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5h
bWUob3JpZ2luKSwgIlwiLlxuIikpOworICAgIHJldHVybiBtX3Nob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3M7Cit9CisKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKQor
eworICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQobWFrZVN0cmluZygiUmVjZWl2
ZWQgZGV2aWNlIG1vdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBv
cmlnaW4gXCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUob3JpZ2luKSwgIlwiLlxuIikpOworICAg
IHJldHVybiBtX3Nob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzOworfQorCiB2b2lkIFRlc3RD
b250cm9sbGVyOjpoYW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS0ZyYW1lUmVmIGZy
YW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBXS1NlY3Vy
aXR5T3JpZ2luUmVmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYgcmVxdWVzdCkKIHsKICAgICBhdXRvIG9yaWdpbkhhc2ggPSB1c2VyTWVkaWFP
cmlnaW5IYXNoKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBhMGMzYTcyZTc4
MjAzMGM4NjJlZDNiMDQwNjg4ZjdlYTQ3ZmJhYzA3Li5kOTZmZGQwZmZiZjVmMWQ2NDg4NDNiZGQ2
YThhYjMxMzhiZDkwMTVlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CkBAIC0xNTAsNiArMTUwLDEwIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENvdW50Rm9yT3JpZ2luKFdLU3RyaW5nUmVmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luU3RyaW5nLCBXS1N0cmluZ1JlZiB0b3BMZXZlbERvY3VtZW50T3JpZ2luU3RyaW5nKTsK
ICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihX
S1N0cmluZ1JlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7CiAKKyAgICAvLyBEZXZpY2UgT3JpZW50YXRpb24g
LyBNb3Rpb24uCisgICAgYm9vbCBoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYpOworICAgIGJvb2wgaGFuZGxlRGV2aWNlTW90
aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJlZik7CisKICAgICAv
LyBDb250ZW50IEV4dGVuc2lvbnMuCiAgICAgdm9pZCBjb25maWd1cmVDb250ZW50RXh0ZW5zaW9u
Rm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwogICAgIHZvaWQgcmVzZXRDb250ZW50RXh0
ZW5zaW9ucygpOwpAQCAtMTk5LDYgKzIwMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElnbm9y
ZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogCiAgICAgdm9pZCBzZXRTaG91bGREb3dubG9h
ZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZERvd25sb2FkVW5k
aXNwbGF5YWJsZU1JTUVUeXBlcyA9IHZhbHVlOyB9CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQWNjZXNzID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNl
TW90aW9uQWNjZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vz
cyA9IHZhbHVlOyB9CiAKICAgICB2b2lkIHNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1
ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUo
V0tTdHJpbmdSZWYgaG9zdE5hbWUpOwpAQCAtNTA4LDYgKzUxNCw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3BvbGljeURlbGVnYXRlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BvbGlj
eURlbGVnYXRlUGVybWlzc2l2ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZERvd25sb2Fk
VW5kaXNwbGF5YWJsZU1JTUVUeXBlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRBbGxv
d0RldmljZU1vdGlvbkFjY2VzcyB7IGZhbHNlIH07CiAKICAgICBib29sIG1fcmVqZWN0c1Byb3Rl
Y3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDY2NjBjZGM5
MjFmODk3Y2NlMmY3NzFkOGQ1M2E1YzI2ZjIxMjQ4ZjkuLjI1ZmRlNTZmZDVlZmNjOGUyMTIxYzZl
YTMzZGZlOWFlZDcwNTM3YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCkBAIC03NDcsNiArNzQ3LDIwIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2Vp
dmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MiKSkg
eworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdl
dFR5cGVJRCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tC
b29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0
b24oKS5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZh
bHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoV0tTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2aWNlTW90
aW9uQWNjZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9
PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0
YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MoV0tCb29s
ZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiUnVuVUlQcm9jZXNzU2Ny
aXB0IikpIHsKICAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9
IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwogICAgICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gc2NyaXB0S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJTY3JpcHQiKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjUzZTkzZmQ2YmNiNTQ3NzdlZjQ5ODc5
OGUwZDhlODczNGY3ODRiNS4uM2Q1OWQwNGIxZTcyNGI0NjI2ZjBhOWFmM2RiM2M4Y2E1YTg1YWUw
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlv
biAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Np
b24tZ3JhbnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmll
bnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMTktMDMtMDMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFByZXBhcmUgdG8gaW1wcm92ZSBoYW5kbGluZyBvZiBjb252ZXJzaW9uIG9mIGZsb2F0IHRv
IHN0cmluZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDIyOTdmNWFiMWIzZWI0OWU1Y2ZkMzBkODVi
MjY3ZDRkNjhiYTZjNDIuLjE2ZTI1NDY4MjNlYTMyNzNlMGU4NWYwMTVmNGZjYTAxZWQ4MDY1NDAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzIsNiArMzIsNyBAQCBmYXN0L3pvb21pbmcvaW9zIFsg
U2tpcCBdCiBmYXN0L2Zvcm1zL2lvcyBbIFNraXAgXQogZmFzdC92aWV3cG9ydC9pb3MgWyBTa2lw
IF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBTa2lwIF0KK2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dh
dGNob3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3BvaW50ZXIvaW9zIFsgU2tpcCBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzU4NTljNjNkMzc0MDliNDMyMjMyYjdhZDE2MmE5
ODQyNDU4ZjJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmlj
ZW1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJl
cXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBtb3Rpb24gYWNjZXNzIHBlcm1p
c3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDE4OiBObyBkZXZpY2Vtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJt
aXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZp
Y2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1MgcmVzdWx0IGlzICJkZW5p
ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZmQyMzk4MTk1YTMxNGZkZjA1ZTNjZjZhOWUyMmJjMDQ0OGJmZmJj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
QmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4i
KTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
dGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyhmYWxzZSk7CisKK2Fk
ZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworRGV2aWNlTW90aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgcmVzdWx0
ID0gX3Jlc3VsdDsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJkZW5pZWQi
KTsKKworICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKwor
ICAgIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkg
PT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
fSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40OGVhMTdmNTNjZDUxZGEzNmU1MGZhYWQ4ZmFiY2Q1ZWM3NmZhZjdi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2Vtb3Rpb24g
ZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQg
YW5kIGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJl
cXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU1v
dGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BBU1MgcmVzdWx0IGlzICJncmFudGVk
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNTQyMTQ3ZDgxODU4ZjFlMDk0ZWJlMTBmZGYzZWFiYzIwNjFlZWIz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sCkBAIC0wLDAgKzEs
MjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IkJhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
Iik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK2Fk
ZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworRGV2aWNlTW90aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgcmVzdWx0
ID0gX3Jlc3VsdDsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVk
Iik7CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisK
KyAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQp
ID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rldmlj
ZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmll
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEwMzBmMTBkYmFmZmIzNjdiNzFiYWZiZDk5NGU3
NDQzMjFjZjhmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5v
IGRldmljZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24g
aGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0
aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxODogTm8gZGV2aWNlb3JpZW50YXRpb24gZXZlbnRzIHdpbGwg
YmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitC
YXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9u
KCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZGVu
aWVkIgorUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRl
bmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODZm
MWI5NjE1NGI4MTdmYmRhMmRkYmM5MzFhOGQ2YWRhNWUyMGJhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZv
ciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIu
c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50
TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJl
c3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVu
aWVkIik7CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+
IHt9KTsKKworICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50
aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOworICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50
YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDJjOTBjNDJkNTI0NTVl
NTZlNzJmODg4NGRjZmM2Mzk2YzhiZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTI6IE5vIGRldmljZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVu
dGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQg
ZGV2aWNlIG9yaWVudGF0aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5
IG9yaWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cmVzdWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNjAwMWNjZTBlZjNiZTQ0ZWUzNDg5MjA5MGEwZDE2MWU1ZDhlNGE4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKQEAgLTAsMCAr
MSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlz
c2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3Mo
dHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30p
OworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jl
c3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNl
b3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJl
cXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBf
cmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVk
Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRz
L2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1z
ZWN1cmUtY29udGV4dC5odG1sCmluZGV4IGVkMmRkMjAzNzdjNTczNjVlMWE1ZjdmZmM1MjU0Zjcy
N2Q3MWI1ZGMuLmYzMTQ0YjM1YWUwMGU1OWNlNDA4NmFlNjI3Y2NmYTRlZWJlNzE5ZWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1t
b3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRt
bApAQCAtMjcsNyArMjcsNyBAQCBmdW5jdGlvbiBydW5EZXZpY2VNb3Rpb25UZXN0KCkKICAgICBk
ZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7CiAgICAgYWRkRXZl
bnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGludGVybmFs
cy5wb3N0VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENv
bnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9y
IG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90
IHNlY3VyZS4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1l
c3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZW1vdGlvbiBldmVudCBsaXN0
ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CiAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogfQpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlvbiBy
dW5EZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmlj
ZSBvcmllbnRhdGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9y
aWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9
PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVNZXNzYWdlIiwg
IkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxp
c3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tl
ZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZW9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFz
b246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKICAgICAgICAgcnVuRGV2aWNl
TW90aW9uVGVzdCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlv
bi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IDRlNTRkMTFkOTk0MWU3NThlMDI3NTBiODZkNDNl
MzJiYzk0MzNlZWUuLmM4YTExZjVjNTlmNzA0NTZjNzM3OTA3MjlkMjQ3YjI4NWNmZjk2MGYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlv
bi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKQEAg
LTYsNiArNiwxNCBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBl
dmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9u
IGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuIik7CiBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgaWYgKHRlc3RSdW5u
ZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcykKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKHRydWUpOworCisgICAg
aWYgKHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MpCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3ModHJ1ZSk7Cit9CisK
IC8vIGxvY2FsaG9zdCBpcyBzZWN1cmUgYnkgZGVmYXVsdC4KIAogbGV0IGxhc3RDb25zb2xlTWVz
c2FnZSA9IG51bGw7CkBAIC0xNSwxOSArMjMsMjUgQEAgaW50ZXJuYWxzLnNldENvbnNvbGVNZXNz
YWdlTGlzdGVuZXIoKG1lc3NhZ2UpID0+IHsKIAogZnVuY3Rpb24gcnVuRGV2aWNlTW90aW9uVGVz
dCgpCiB7CisgICAgZGVidWcoIiIpOwogICAgIGlmICghd2luZG93LkRldmljZU1vdGlvbkV2ZW50
KSB7CiAgICAgICAgIGNvbnNvbGUubG9nKCJEZXZpY2UgTW90aW9uIEFQSSBpcyBub3Qgc3VwcG9y
dGVkIik7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVi
dWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciIpOwotICAgIGFkZEV2ZW50
TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMu
cG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2Fn
ZSIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBkZWJ1ZygiKiBSZXF1ZXN0aW5nIGRl
dmljZSBtb3Rpb24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBl
cm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKwor
ICAgICAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOworICAgICAgICBkZWJ1ZygiKiBSZWdp
c3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFkZEV2ZW50TGlzdGVu
ZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKKyAgICAgICAgaW50ZXJuYWxzLnBv
c3RUYXNrKCgpID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNz
YWdlIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7
CiB9CiAKQEAgLTM5LDEyICs1MywxOSBAQCBmdW5jdGlvbiBydW5EZXZpY2VPcmllbnRhdGlvblRl
c3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0g
bnVsbDsKLSAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVu
ZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9u
KCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRC
ZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBydW5EZXZpY2VNb3Rpb25UZXN0
KCk7CisgICAgZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzLi4u
Iik7CisgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4o
KF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgICAgIERldmljZU9y
aWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24KKyAgICAgICAgbGFzdENvbnNvbGVNZXNz
YWdlID0gbnVsbDsKKyAgICAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0
aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0
aW9uIiwgZnVuY3Rpb24oKSB7IH0pOworICAgICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4g
eworICAgICAgICAgICAgc2hvdWxkQmVOdWxsKCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKKyAgICAg
ICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2
OWM4Mzg0ZTJjODE4NjUyZjA0NWFjZjQ5NTU0Y2I2MmUyNzllZWFiLi4wYjhlODRkODA2OTc2NTlh
NTQwOGVjYTA3YjgwYjg1NTMxMzc4MDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
LXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC03LDYgKzcsNyBAQAogIy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLwogCiBjb21wb3NpdGluZy9pb3MgWyBQYXNzIF0KK2Zhc3QvZGV2aWNl
LW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Nj
cm9sbGluZy9pb3MgWyBQYXNzIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgUGFzcyBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9y
aWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1t
b3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA4Njc3OWFmNDY1MTEx
MWIxODcxNWE1M2U3YjExZTNiMTFiOTczYTExLi45ZTk3YTViNWYwNWY4ZTEyNDI2ZDlkMjk1M2Uz
Mzc5MWRlNTNlMjRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90
ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2
ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3Rl
ZC50eHQKQEAgLTEsMTUgKzEsMTUgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NTogQmxvY2tl
ZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIg
YmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDI4OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBv
cmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBz
ZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDU6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQg
YSBkZXZpY2VvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250
ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjg6IEJsb2NrZWQgYXR0
ZW1wdCB0byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3Np
bmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2
ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24g
bG9ncyBhbiBlcnJvciBpbiBub24tc2VjdXJlIGNvbnRleHRzLgogCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCiAKIAogKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIK
LVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2
aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBj
b250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2Nr
ZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2VvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVh
c29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgogCiAqIFJlZ2lzdGVyaW5nIGRl
dmljZSBtb3Rpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2Vk
IGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBi
ZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29u
c29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZl
bnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmll
bnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24t
c2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDMxYjg1ZjVkN2Q0NWYzN2Y5ZDZiMTY1
ZjY3MzdkZmU1OTIyZWRmNWMuLmFiMmI0MzNlZjk0M2M0MmFlMmE4MzU5ODM4ODk1MTIwM2M5OTFi
OWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50
cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9y
aWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEs
MTcgQEAKK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1
ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIuCitSZWNlaXZl
ZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIi4KIFRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBh
biBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0
aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuCiAKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogCisqIFJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGFj
Y2Vzcy4uLgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBv
cmllbnRhdGlvbiBsaXN0ZW5lcgogUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgbnVsbAogCisq
IFJlcXVlc3RpbmcgZGV2aWNlIG1vdGlvbiBhY2Nlc3MuLi4KK1BBU1MgcmVzdWx0IGlzICJncmFu
dGVkIgogKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyCiBQQVNTIGxhc3RDb25z
b2xlTWVzc2FnZSBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363676</attachid>
            <date>2019-03-05 13:18:03 -0800</date>
            <delta_ts>2019-03-05 14:20:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190305131802.patch</filename>
            <type>text/plain</type>
            <size>97218</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2NTk5ZTMzMzQxZjUz
NzBlNTAwNzRlNGM5MWZhZjUyOWNmNTJkOC4uNGE3MDJkZTIzY2IzY2MzZjVlMGFmM2JjOTc4ZTk3
OWFjZjY0M2ExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTAzLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9E
ZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVz
dFBlcm1pc3Npb24pOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmg6Cisg
ICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0
aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLnlhbWw6CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBJbXByb3ZlIG91ciBmaWxlIHBpY2tlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA4NzZlY2Q1ZDQxMGEzZTVhODRkOWIxMTRkYTY2ZWRkZjUxMTM3MDFmLi4wZmIzZjg4MzBjOTEz
MDMwNDBjODg5MTExMDZkYTEwOThiMmNhNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisy
MDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0
aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNv
bS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoK
KyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdl
YktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVn
YXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlTW90
aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om5leHREZXZpY2VP
cmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9u
TW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDE5LTAzLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgRG8gbm90IHNoYXJlIFdlYlByb2Nlc3NlcyBiZXR3ZWVuIHByaXZhdGUgYW5k
IHJlZ3VsYXIgc2Vzc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3Bw
CmluZGV4IDkwZDcwMmRjMzkwNTJkMGZjNzZkZTA4NDE1ZGE0N2I4MzczYjJkOTYuLjU4MDhjMzVi
ZTY3NDc4ZjA4Yjc5NjZlOWExMDFjNTNkZjVkZmEyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkV2ZW50LmNwcApAQCAtMjYsNyArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25FdmVudC5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjIsNCArMTI2LDMyIEBAIEV2ZW50SW50ZXJmYWNl
IERldmljZU1vdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERldmljZU1vdGlvbkV2ZW50Ojpy
ZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYg
cHJvbWlzZSkKK3sKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5kb3coKTsKKyAg
ICBpZiAoIXdpbmRvdykKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9u
U3RhdGU6OkRlbmllZCk7CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghd2lu
ZG93LT5pc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2FnZSkp
IHsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byBEZXZpY2VNb3Rpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwgcmVhc29uOiAiLCBlcnJvck1lc3NhZ2Us
ICIuIikpOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6
RGVuaWVkKTsKKyAgICB9CisKKyAgICBpZiAoYXV0byBwZXJtaXNzaW9uU3RhdGUgPSBkb2N1bWVu
dC5kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNv
bHZlKCpwZXJtaXNzaW9uU3RhdGUgPyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNz
aW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwor
ICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9u
U3RhdGU6OkRlbmllZCk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0RGV2
aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihkb2N1bWVudC50b3BPcmlnaW4oKSwgW2RvY3VtZW50
ID0gbWFrZVdlYWtQdHIoZG9jdW1lbnQpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYm9v
bCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGRvY3VtZW50KQorICAgICAgICAgICAg
ZG9jdW1lbnQtPnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAgICBw
cm9taXNlLnJlc29sdmUoZ3JhbnRlZCA/IFBlcm1pc3Npb25TdGF0ZTo6R3JhbnRlZCA6IFBlcm1p
c3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCmluZGV4IDNlY2M1
YmQ0YzBjN2VlYzE4ZTlmYjhlNDE1NmYxOGJmM2VmNDUzM2QuLjY0YTk0OWQwZmZjMjQyNGJhOTQy
N2JlM2NjMWRkNDRjYTA2NjEyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VNb3Rpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVu
dC5oCkBAIC0yNiwxMCArMjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERldmljZU1vdGlvbkRhdGE7CitjbGFzcyBEb2N1bWVudDsKIAogY2xhc3Mg
RGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVibGljOgpAQCAtNjYs
NiArNjgsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0RGV2aWNlTW90aW9uRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGJ1YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSwgT3B0
aW9uYWw8QWNjZWxlcmF0aW9uPiYmLCBPcHRpb25hbDxBY2NlbGVyYXRpb24+JiYsIE9wdGlvbmFs
PFJvdGF0aW9uUmF0ZT4mJiwgT3B0aW9uYWw8ZG91YmxlPik7CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIHsgR3JhbnRlZCwg
RGVuaWVkIH07CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47CisgICAgc3RhdGljIHZvaWQgcmVx
dWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlzZSYmKTsKKyNlbmRpZgor
CiBwcml2YXRlOgogICAgIERldmljZU1vdGlvbkV2ZW50KCk7CiAgICAgRGV2aWNlTW90aW9uRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERldmljZU1vdGlvbkRhdGEqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCmluZGV4IGYyZjVkZjIwZmNlNTNi
YzEzYjVhYmU2ZDQxOGUyMGJkNWE0ZmQzODYuLjMyYWQ2ZTc1YzBjMzRlMTg0NjIxOGFkNjhhNGVk
ZTYxN2E1ZDI5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbApA
QCAtMzEsNiArMzEsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSb3RhdGlvblJhdGU/IHJv
dGF0aW9uUmF0ZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8g
aW50ZXJ2YWw7CiAKKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnQsIEVuYWJsZWRCeVNldHRpbmc9RGV2
aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJXSBzdGF0aWMgUHJvbWlzZTxQZXJtaXNzaW9uU3Rh
dGU+IHJlcXVlc3RQZXJtaXNzaW9uKCk7CisKICAgICB2b2lkIGluaXREZXZpY2VNb3Rpb25FdmVu
dChvcHRpb25hbCBET01TdHJpbmcgdHlwZSA9ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlLApAQCAt
NTcsMyArNTksNSBAQAogICAgIGRvdWJsZT8gYmV0YTsKICAgICBkb3VibGU/IGdhbW1hOwogfTsK
KworZW51bSBQZXJtaXNzaW9uU3RhdGUgeyAiZ3JhbnRlZCIsICJkZW5pZWQiIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKaW5kZXggZTgyMWI2NTUz
MTA4YTEyMGMwZmIyNzEyN2JhNTc1NTE5MGU3MWUxZS4uYTg5MzI5MGNlZDg1NWQ1MjVhNzY1NDU3
NjBiNWM3MzJkM2I5OTVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcApAQCAtMjYsNyArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgiCiAKKyNpbmNsdWRlICJDaHJvbWUuaCIK
KyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRh
dGEuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTA5LDQgKzExMywzMiBAQCBFdmVudEludGVy
ZmFjZSBEZXZpY2VPcmllbnRhdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0CiAjZW5k
aWYKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERldmljZU9yaWVu
dGF0aW9uRXZlbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUGVybWlz
c2lvblByb21pc2UmJiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRv
bVdpbmRvdygpOworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNv
bHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7
CisgICAgaWYgKCF3aW5kb3ctPmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24o
ZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKCJDYWxsIHRv
IERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNv
bjogIiwgZXJyb3JNZXNzYWdlLCAiLiIpKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2
ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAgaWYgKGF1dG8gcGVybWlz
c2lvblN0YXRlID0gZG9jdW1lbnQuZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpKQorICAg
ICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKCpwZXJtaXNzaW9uU3RhdGUgPyBQZXJtaXNzaW9u
U3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBhdXRvKiBw
YWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHBy
b21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBwYWdlLT5jaHJv
bWUoKS5jbGllbnQoKS5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGRv
Y3VtZW50LnRvcE9yaWdpbigpLCBbZG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShib29sIGdyYW50ZWQpIG11dGFibGUgeworICAgICAg
ICBpZiAoZG9jdW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NTdGF0ZShncmFudGVkKTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGdyYW50ZWQg
PyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7Cisg
ICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKaW5kZXggMDI1YjJlMzJhNzUxZTQyZjY1
MGJiNTNiNTE1YTEwYmRiNTI3ZjQ3OC4uMTZlMzNhZjkxOTg0NjFmNmVjMjYxNGY2YTNmNTgyMTlm
ZGY2ZDQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5o
CkBAIC0yNiwxMCArMjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXZlbnQuaCIK
KyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKK2NsYXNzIERvY3VtZW50OwogCiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoK
QEAgLTYwLDYgKzYyLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXREZXZpY2VPcmllbnRhdGlv
bkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNl
bGFibGUsIE9wdGlvbmFsPGRvdWJsZT4gYWxwaGEsIE9wdGlvbmFsPGRvdWJsZT4gYmV0YSwgT3B0
aW9uYWw8ZG91YmxlPiBnYW1tYSwgT3B0aW9uYWw8Ym9vbD4gYWJzb2x1dGUpOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGVudW0gY2xhc3MgUGVybWlzc2lv
blN0YXRlIHsgR3JhbnRlZCwgRGVuaWVkIH07CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2Ug
PSBET01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47Cisg
ICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJv
bWlzZSYmKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQo
KTsKICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmlkbAppbmRleCAxM2ZmN2JhZGMwZTU5MTE2NjM1OTVkMTVkMTFk
YmQ2MGEzMzM5ZmRiLi42OTI5OWZjNWU2MjgwZWMxMTNmYzMyYzY2MDE5YjNlY2JmNDdkYjJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCkBAIC0z
MCw2ICszMCw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/
IGJldGE7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGdhbW1h
OwogCisgICAgW0NhbGxXaXRoPURvY3VtZW50LCBFbmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVu
dGF0aW9uUGVybWlzc2lvbkFQSV0gc3RhdGljIFByb21pc2U8UGVybWlzc2lvblN0YXRlPiByZXF1
ZXN0UGVybWlzc2lvbigpOworCiAgICAgLy8gRklYTUU6IENvbnNpZGVyIGRlZmluaW5nIGFuIEVO
QUJMRSBtYWNybyBmb3IgaU9TIGRldmljZSBvcmllbnRhdGlvbiBjb2RlIGFuZC9vciBtb2RpZnlp
bmcKICAgICAvLyB0aGUgYmluZGluZ3Mgc2NyaXB0cyB0byBzdXBwb3J0IGdlbmVyYXRpbmcgbW9y
ZSBjb21wbGljYXRlZCBjb25kaXRpb25hbCBjb2RlLgogI2lmIGRlZmluZWQoV1RGX1BMQVRGT1JN
X0lPU19GQU1JTFkpICYmIFdURl9QTEFURk9STV9JT1NfRkFNSUxZCkBAIC01NSwzICs1Nyw0IEBA
CiAjZW5kaWYKIH07CiAKK2VudW0gUGVybWlzc2lvblN0YXRlIHsgImdyYW50ZWQiLCAiZGVuaWVk
IiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTQyOTI3ODZjYzhlZmVlZjViMWEyZmMx
NWRjNzEwYmZlYzFjMzExMC4uNGY4YmQ4MmVkNzA0Y2FhMGE4NzYzOTE3ZGZhMGE2OTE1YWNjZmM4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NjM4LDYgKzg2MzgsNTggQEAgdm9pZCBE
b2N1bWVudDo6ZnJhbWVXYXNEaXNjb25uZWN0ZWRGcm9tT3duZXIoKQogICAgIGRldGFjaEZyb21G
cmFtZSgpOwogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworY29uc3QgT3B0
aW9uYWw8Ym9vbD4mIERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlKCkgY29u
c3QKK3sKKyAgICBpZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykKKyAgICAgICAgcmV0dXJuIHRv
cERvY3VtZW50KCkuZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpOworCisgICAgcmV0dXJu
IG1fZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpCit7CisgICAgaWYgKCZ0
b3BEb2N1bWVudCgpICE9IHRoaXMpIHsKKyAgICAgICAgdG9wRG9jdW1lbnQoKS5zZXREZXZpY2VP
cmllbnRhdGlvbkFjY2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlID0gZ3JhbnRlZDsKKworICAgIGlm
ICghZ3JhbnRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvKiBmcmFtZSA9IG1f
ZnJhbWU7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dChtX2ZyYW1lKSkKKyAgICAgICAgZnJhbWUtPndpbmRvdygpLT5zdGFydExpc3Rl
bmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKK30KKworY29uc3QgT3B0aW9u
YWw8Ym9vbD4mIERvY3VtZW50OjpkZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCZ0b3BEb2N1bWVudCgpICE9IHRoaXMpCisgICAgICAgIHJldHVybiB0b3BEb2N1bWVu
dCgpLmRldmljZU1vdGlvbkFjY2Vzc1N0YXRlKCk7CisKKyAgICByZXR1cm4gbV9kZXZpY2VNb3Rp
b25BY2Nlc3NTdGF0ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlTW90aW9uQWNjZXNz
U3RhdGUoYm9vbCBncmFudGVkKQoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAhPSB0aGlzKSB7
CisgICAgICAgIHRvcERvY3VtZW50KCkuc2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoZ3JhbnRl
ZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2RldmljZU1vdGlvbkFjY2Vzc1N0
YXRlID0gZ3JhbnRlZDsKKworICAgIGlmICghZ3JhbnRlZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZm9yIChhdXRvKiBmcmFtZSA9IG1fZnJhbWU7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChtX2ZyYW1lKSkKKyAgICAgICAgZnJh
bWUtPndpbmRvdygpLT5zdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7
Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiBXb3JrbGV0JiBE
b2N1bWVudDo6ZW5zdXJlUGFpbnRXb3JrbGV0KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
Nzc4YzIxMzNjNTQzNTdkZDY3NzE5OWRmNzE5NDE3YjNlZGU5MzExYS4uYjhiNDY5MWQxNTUyZDgx
MGI3ZmVhMzgzOTAwZmQ5ODEwYjFmMWZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyMTQs
MTIgKzEyMTQsMTkgQEAgcHVibGljOgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVu
dElPUy5oPgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyJiBkZXZpY2VNb3Rp
b25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyJiBk
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNpbXVsYXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUg
YmV0YSwgZG91YmxlIGdhbW1hKTsKICNlbmRpZgogCisgICAgY29uc3QgT3B0aW9uYWw8Ym9vbD4m
IGRldmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERldmlj
ZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoYm9vbCBncmFudGVkKTsKKyAgICBjb25zdCBPcHRpb25h
bDxib29sPiYgZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldERl
dmljZU1vdGlvbkFjY2Vzc1N0YXRlKGJvb2wgZ3JhbnRlZCk7CisjZW5kaWYgLy8gRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKwogICAgIGNvbnN0IERvY3VtZW50VGltaW5nJiB0aW1pbmcoKSBj
b25zdCB7IHJldHVybiBtX2RvY3VtZW50VGltaW5nOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBk
b3VibGUgbW9ub3RvbmljVGltZXN0YW1wKCkgY29uc3Q7CkBAIC0xODMxLDYgKzE4MzgsMTEgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fYXJlRnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuIHsgZmFsc2Ug
fTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBPcHRpb25h
bDxib29sPiBtX2RldmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGU7CisgICAgT3B0aW9uYWw8Ym9v
bD4gbV9kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZTsKKyNlbmRpZgorCiAgICAgSGFzaFNldDxIVE1M
UGljdHVyZUVsZW1lbnQqPiBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXM7CiAgICAgSGFzaFNl
dDxIVE1MUGljdHVyZUVsZW1lbnQqPiBtX2FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlczsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggM2EwZGMzYmIwM2RjZDcwYmU5NGVmNGI5
ODYyMWQ5Nzk1NjBlN2ViYS4uZDAwOWE4NGQyY2I3OThkYWE5ZTRiOTM4ZGYzNmMxM2JlMmU0ZWI3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00ODIsNiArNDgyLDExIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcmJiAvKnN1YkZy
YW1lSG9zdCovLCBTdHJpbmcmJiAvKnRvcEZyYW1lSG9zdCovLCB1aW50NjRfdCAvKmZyYW1lSUQq
LywgdWludDY0X3QgLypwYWdlSUQqLywgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29s
KT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgLypzdWJGcmFtZUhvc3QqLywgU3RyaW5nJiYgLyp0
b3BGcmFtZUhvc3QqLywgdWludDY0X3QgLypmcmFtZUlEKi8sIHVpbnQ2NF90IC8qcGFnZUlEKi8s
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJh
Y2soZmFsc2UpOyB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxi
YWNrKSB7IGNhbGxiYWNrKHRydWUpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKHRydWUpOyB9Cisj
ZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRNZW51RWxlbWVudChIVE1MTWVudUVs
ZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTWVudUVsZW1lbnQoSFRNTE1l
bnVFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVJdGVtRWxlbWVu
dChIVE1MTWVudUl0ZW1FbGVtZW50JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5k
ZXggZGZhMTEyNDg0YTNhNDc3ZTNkYzAyMmEzNGNhMzRkZjNmZmE5M2UzMi4uNjIxNDBjYzc5ZjAy
ZDUzYzM4MTFkMzM5Y2NjMzZjNzA2YzQ0MTdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cApAQCAtMTgyNiw1MCArMTgyNiwxMzQgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVu
ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmUKICAgICBl
bHNlIGlmIChldmVudE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAg
ICAgIGluY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKTsKICNlbmRpZgorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAgICBzdGFydExpc3RlbmluZ0Zv
ckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICBlbHNlIGlmIChldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KQorICAgICAgICBzdGFydExpc3Rlbmlu
Z0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKKworICAgIHJldHVybiB0cnVl
OworfQogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBpZiAoZnJhbWUoKSAm
JiBmcmFtZSgpLT5zZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkgJiYg
ZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5sb2FkZXIoKSAmJiBkb2N1bWVudCgpLT5sb2FkZXIo
KS0+ZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSkgeworCitEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIqIERPTVdpbmRvdzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29u
c3QKK3sKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICBpZiAoKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNl
Y3VyaXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAg
ICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9u
RXZlbnQpCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcigpLmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29u
dHJvbGxlcigpLmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgfSBl
bHNlIGlmIChkb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU2VjdXJlQ29udGV4
dCgpKQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0
IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgZnJvbSBjaGls
ZCBmcmFtZSB0aGF0IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4g
cGFnZS4iX3MpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZl
bDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9y
aWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNl
Y3VyZS4iX3MpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgcmV0dXJuIGRvY3VtZW50
KCkgPyAmZG9jdW1lbnQoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgOiBudWxscHRy
OwogI2Vsc2UKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90
aW9uRXZlbnQpIHsKLSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZy
YW1lKCkgJiYgaXNTZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoRGV2aWNl
TW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZy
b20ocGFnZSgpKSkKLSAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZl
bnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBk
b2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gbGlz
dGVuZXIgZnJvbSBjaGlsZCBmcmFtZSB0aGF0IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmln
aW4gYXMgdGhlIG1haW4gcGFnZS4iX3MpOwotICAgICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkgewotICAgICAgICAgICAgaWYg
KGlzU2FtZVNlY3VyaXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkg
ewotICAgICAgICAgICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAg
ICAgICAgICAgICAgICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChpc1NlY3VyZUNvbnRl
eHQoKSkKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1w
dCB0byBhZGQgYSBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIgZnJvbSBjaGlsZCBmcmFtZSB0
aGF0IHdhc24ndCB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZS4iX3Mp
OwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9u
IGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iX3Mp
OwotICAgICAgICAgICAgfQorICAgIHJldHVybiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6
OmZyb20ocGFnZSgpKTsKKyNlbmRpZgorfQorCitEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBET01X
aW5kb3c6OmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyAmZG9jdW1lbnQoKS0+ZGV2aWNlTW90
aW9uQ29udHJvbGxlcigpIDogbnVsbHB0cjsKKyNlbHNlCisgICAgcmV0dXJuIERldmljZU1vdGlv
bkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKTsKKyNlbmRpZgorfQorCitib29sIERPTVdpbmRvdzo6
aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihTdHJpbmcmIG1lc3NhZ2UpIGNv
bnN0Cit7CisgICAgaWYgKCFmcmFtZSgpIHx8ICFmcmFtZSgpLT5zZXR0aW5ncygpLmRldmljZU9y
aWVudGF0aW9uRXZlbnRFbmFibGVkKCkgfHwgIWRvY3VtZW50KCkgfHwgIWRvY3VtZW50KCktPmxv
YWRlcigpIHx8ICFkb2N1bWVudCgpLT5sb2FkZXIoKS0+ZGV2aWNlT3JpZW50YXRpb25FdmVudEVu
YWJsZWQoKSkgeworICAgICAgICBtZXNzYWdlID0gIkFQSSBpcyBkaXNhYmxlZCJfczsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghaXNTZWN1cmVDb250ZXh0KCkpIHsK
KyAgICAgICAgbWVzc2FnZSA9ICJCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUiX3M7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWlzU2FtZVNlY3VyaXR5T3Jp
Z2luQXNNYWluRnJhbWUoKSkgeworICAgICAgICBtZXNzYWdlID0gIlNvdXJjZSBmcmFtZSBkaWQg
bm90IGhhdmUgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UiX3M7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wg
RE9NV2luZG93Ojppc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIo
Y29uc3QgU3RyaW5nJiBldmVudFR5cGUsIFN0cmluZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBT
dHJpbmcgaW5uZXJNZXNzYWdlOworICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25P
cmllbnRhdGlvbihpbm5lck1lc3NhZ2UpKSB7CisgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KCJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgIiwgZXZlbnRUeXBlLCAiIGV2ZW50IGxpc3RlbmVy
LCByZWFzb246ICIsIGlubmVyTWVzc2FnZSwgIi4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIGlmIChmcmFtZSgpLT5zZXR0aW5ncygpLmRldmljZU9yaWVudGF0aW9uUGVy
bWlzc2lvbkFQSUVuYWJsZWQoKSkgeworICAgICAgICBhdXRvIHBlcm1pc3Npb25TdGF0ZSA9IChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpID8gZG9jdW1l
bnQoKS0+ZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpIDogZG9jdW1lbnQoKS0+ZGV2aWNl
TW90aW9uQWNjZXNzU3RhdGUoKTsKKyAgICAgICAgaWYgKHBlcm1pc3Npb25TdGF0ZSAmJiAhKnBl
cm1pc3Npb25TdGF0ZSkgeworICAgICAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIk5vICIs
IGV2ZW50VHlwZSwgIiBldmVudHMgd2lsbCBiZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8g
dXNlIHRoZSBBUEkgd2FzIGRlbmllZC4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgfSBlbHNlIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KQotICAgICAgICBmYWls
ZWRUb1JlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpOwotI2VuZGlmIC8vIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIGlmICghcGVybWlzc2lvblN0YXRlICYmIGZy
YW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uSGFuZGxlZEJ5Q2xp
ZW50KCkpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJObyAiLCBldmVudFR5
cGUsICIgZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1
ZXN0ZWQgYW5kIGdyYW50ZWQuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCit2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRh
dGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpOworICAg
IGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVu
dExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGVycm9yTWVz
c2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0
ZW5lcihldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCwgZXJyb3JNZXNzYWdlKSkg
eworICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgICAg
ICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsIGVycm9yTWVzc2FnZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBkZXZpY2VDb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsK
K30KKwordm9pZCBET01XaW5kb3c6OnN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklm
TmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRl
dmljZW9yaWVudGF0aW9uRXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byog
ZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpKQorICAgICAg
ICBkZXZpY2VDb250cm9sbGVyLT5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKK30K
Kwordm9pZCBET01XaW5kb3c6OnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3Nh
cnkoKQoreworICAgIGlmICghaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW1v
dGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZGV2aWNlQ29udHJvbGxl
ciA9IGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKTsKKyAgICBpZiAoIWRldmljZUNvbnRyb2xsZXIg
fHwgZGV2aWNlQ29udHJvbGxlci0+aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcykpCisgICAg
ICAgIHJldHVybjsKKworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCFpc0FsbG93
ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoZXZlbnROYW1lcygpLmRldmlj
ZW1vdGlvbkV2ZW50LCBlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJE
ZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9
IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdl
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xsZXItPmFkZERl
dmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RvcExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoaGFzRXZlbnRMaXN0
ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGF1dG8qIGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VNb3Rpb25Db250cm9sbGVy
KCkpCisgICAgICAgIGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIo
KnRoaXMpOworfQogCiB2b2lkIERPTVdpbmRvdzo6ZmFpbGVkVG9SZWdpc3RlckRldmljZU1vdGlv
bkV2ZW50TGlzdGVuZXIoKQogewpAQCAtMTk0MSwyMiArMjAyNSw2IEBAIGJvb2wgRE9NV2luZG93
OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVu
dExpc3RlbmVyCiAgICAgICAgIHJlbW92ZVVubG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7CiAgICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmV1bmxvYWRFdmVudCAmJiBh
bGxvd3NCZWZvcmVVbmxvYWRMaXN0ZW5lcnModGhpcykpCiAgICAgICAgIHJlbW92ZUJlZm9yZVVu
bG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQgJiYgZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1l
bnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIo
KnRoaXMpOwotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3Jp
ZW50YXRpb25FdmVudCAmJiBkb2N1bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsK
LSNlbHNlCi0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rp
b25FdmVudCkgewotICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxl
ciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNv
bnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0gZWxzZSBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0g
ICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRy
b2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0KLSNlbmRpZiAv
LyBQTEFURk9STShJT1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50KQogICAgICAgICBkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KCk7CkBAIC0xOTc3LDYgKzIwNDUsMTIgQEAgYm9vbCBET01XaW5kb3c6OnJl
bW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlz
dGVuZXIKICAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBlKGV2ZW50
VHlwZSkpCiAgICAgICAgIGRlY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKTsKICNl
bmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAgICBzdG9w
TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIGVsc2UgaWYg
KGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpCisgICAgICAgIHN0
b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTIwNTksMTggKzIxMzMsOSBAQCB2b2lkIERPTVdpbmRvdzo6cmVt
b3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxFdmVudExp
c3RlbmVycygpOwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVu
dCgpKSB7Ci0gICAgICAgIGRvY3VtZW50LT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkucmVtb3Zl
QWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgICAgICBkb2N1bWVudC0+ZGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRo
aXMpOwotICAgIH0KLSNlbHNlCi0gICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNv
bnRyb2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSAgICBpZiAo
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFs
bERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFN
SUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIHN0b3BM
aXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgICAgIHN0b3BM
aXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIGlmIChtX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYmJiZmE5NTg3MmU0YTMzZTczNDI1MjgxZTRhY2Ni
NGY3MDU5YjFjNC4uYmY0MzNkNjkzOGZjZmUzYmZkNTQxMjA0ZThkNzUzN2VmYzM2MDJhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC04Miw2ICs4MiwxMSBAQCBjbGFzcyBWaXN1YWxWaWV3
cG9ydDsKIGNsYXNzIFdlYktpdE5hbWVzcGFjZTsKIGNsYXNzIFdlYktpdFBvaW50OwogCisjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK2NsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7
CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CisjZW5kaWYKKwogc3RydWN0IElt
YWdlQml0bWFwT3B0aW9uczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIApAQCAtMzExLDYgKzMx
NiwxOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50KCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JvbGxFdmVudExpc3RlbmVyQ291bnQ7IH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9y
RGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgc3RvcExpc3RlbmluZ0Zv
ckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5n
Rm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0b3BMaXN0ZW5pbmdGb3JE
ZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworCisgICAgYm9vbCBpc0FsbG93ZWRUb1VzZURldmlj
ZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisgICAgYm9vbCBpc0Fs
bG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoY29uc3QgU3RyaW5nJiBl
dmVudFR5cGUsIFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisKKyAgICBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIqIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0OworICAgIERl
dmljZU1vdGlvbkNvbnRyb2xsZXIqIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKKyNl
bmRpZgorCiAgICAgdm9pZCByZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbigpOwogCiAjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHx8IEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcAppbmRleCAzMzY3ZDNkYmY1OWZj
MzM1NzI0OTc1OGFjNjNkZDE3MjVlMDc2MzY2Li44NDJiODU0ZWUyNTEyNThhNDEwNjJiZmUwZDA2
NTQ0ZWRiM2M2ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAK
QEAgLTY5LDYgKzY5LDExIEBAIHZvaWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsRGV2aWNl
RXZlbnRMaXN0ZW5lcnMoRE9NV2luZG93JiB3aW5kb3cpCiAgICAgICAgIG1fY2xpZW50LnN0b3BV
cGRhdGluZygpOwogfQogCitib29sIERldmljZUNvbnRyb2xsZXI6Omhhc0RldmljZUV2ZW50TGlz
dGVuZXIoRE9NV2luZG93JiB3aW5kb3cpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbGlzdGVuZXJz
LmNvbnRhaW5zKCZ3aW5kb3cpOworfQorCiB2b2lkIERldmljZUNvbnRyb2xsZXI6OmRpc3BhdGNo
RGV2aWNlRXZlbnQoRXZlbnQmIGV2ZW50KQogewogICAgIGZvciAoYXV0byYgbGlzdGVuZXIgOiBj
b3B5VG9WZWN0b3IobV9saXN0ZW5lcnMudmFsdWVzKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2
aWNlQ29udHJvbGxlci5oCmluZGV4IGUxNjAzODVhZmUyZjk3MzUzYzBlYTIyZjI5ZTg1NmYxOGUy
MGIxYTguLjNkNWY5MGM1MGVlNGE1NGZjMGFkMTdjNjQ3MzVkZDY5Mzg3M2ZmZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCkBAIC00Niw2ICs0Niw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jik7CiAgICAgdm9pZCBy
ZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYpOwogICAgIHZvaWQgcmVtb3ZlQWxs
RGV2aWNlRXZlbnRMaXN0ZW5lcnMoRE9NV2luZG93Jik7CisgICAgYm9vbCBoYXNEZXZpY2VFdmVu
dExpc3RlbmVyKERPTVdpbmRvdyYpIGNvbnN0OwogCiAgICAgdm9pZCBkaXNwYXRjaERldmljZUV2
ZW50KEV2ZW50Jik7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0dXJuICFtX2xpc3RlbmVycy5p
c0VtcHR5KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFt
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAzMDNkN2Y4MmQ0YjM3
ZmRiYTFiN2YyZGQ0YThkYTI1N2U4YWI5NzdjLi40NmM0ZWZhZThlNzFiNmE0OGExOTU2Y2I4Zjc2
NDU5NTBhMmM4NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlh
bWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC03NjQsNiArNzY0
LDE2IEBAIGRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkOgogICBpbml0aWFsOiB0cnVlCiAg
IGNvbmRpdGlvbmFsOiBERVZJQ0VfT1JJRU5UQVRJT04KIAorZGV2aWNlT3JpZW50YXRpb25QZXJt
aXNzaW9uQVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBpbml0aWFsOiBmYWxzZQorICBjb25k
aXRpb25hbDogREVWSUNFX09SSUVOVEFUSU9OCisKK2RldmljZU9yaWVudGF0aW9uUGVybWlzc2lv
bkhhbmRsZWRCeUNsaWVudDoKKyAgdHlwZTogYm9vbAorICBpbml0aWFsOiBmYWxzZQorICBjb25k
aXRpb25hbDogREVWSUNFX09SSUVOVEFUSU9OCisKIHNob3VsZEVuYWJsZVRleHRBdXRvc2l6aW5n
Qm9vc3Q6CiAgIHR5cGU6IGJvb2wKICAgaW5pdGlhbDogZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGY1NTg0MzI1OTBmYmRlYjY4OTc5M2UwYjQ5YjI2
Nzc4NDE2N2QyZWEuLmVlMDgwM2Q4ODE3NzcyZDUwMjU1NDhiMjEzY2NmZjM4ZmQ5YzJiNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTIsNiArMTIsMjEg
QEAgRGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6CiAgIGNvbmRpdGlvbjogRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKICAgd2ViY29yZU5hbWU6IGRldmljZU9yaWVudGF0aW9uRXZlbnRF
bmFibGVkCiAKK0RldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQ6CisgIHR5cGU6
IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBjb25kaXRpb246IEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgIHdlYmNvcmVOYW1lOiBkZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25B
UElFbmFibGVkCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUGVybWlzc2lvbiBBUEkgZm9yIGRldmlj
ZSBvcmllbnRhdGlvbiAvIG1vdGlvbiBhY2Nlc3MuIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRp
b246ICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgLyBEZXZpY2VN
b3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFs
CisKK0RldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkhhbmRsZWRCeUNsaWVudDoKKyAgdHlwZTog
Ym9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGNvbmRpdGlvbjogRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKKyAgd2ViY29yZU5hbWU6IGRldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkhh
bmRsZWRCeUNsaWVudAorCiBKYXZhU2NyaXB0RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZh
dWx0VmFsdWU6IHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
aW5kZXggM2VjNmYwMGQyNGZjOTM5NDI2OTBhM2U3MjlmZDA3ZWQ3YTNhYTZjNy4uOGFhMDRjNjc0
N2ZjZGM1YmFjNjkxZTVkYjJlMGQ1YzQzMzA4NjRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE3Myw2ICsxNzMsMTQgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFsIGJv
b2wgaGFuZGxlc0RldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3RzKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmljZU9yaWVu
dGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
eyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQorCisgICAgdmlydHVhbCBib29sIGhhbmRsZXNE
ZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lv
bihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0
cnVlKTsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRv
bihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQogCiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKaW5kZXggYTQxNjc2NmUyYjM4M2UxYjUxNDQ4ZmM5Y2M0MDJjMDFmMWJlYjNhYS4u
ZmIzNjFiYWViZDc3YzNjNzNlZTIxZGVhNmM2YjI0NGZlOWQxOTEzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRl
bXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0
eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQ
YWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdl
VUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlD
bGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xp
ZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMj4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1
cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIs
IFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdL
UGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFn
ZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdl
VUlDbGllbnRWMTIsIFdLUGFnZVVJQ2xpZW50VjEzPiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKQEAgLTE5MDMsNiArMTkwMywzNCBAQCB2b2lkIFdLUGFnZVNldFBh
Z2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3
a0NsaWVudAogICAgICAgICAgICAgbV9jbGllbnQucmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJt
KHRvQVBJKCZwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShyZXF1ZXN0aW5nRG9tYWluLmltcGwo
KSksIHRvQVBJKGN1cnJlbnREb21haW4uaW1wbCgpKSwgdG9BUEkobGlzdGVuZXIucHRyKCkpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgICAgICBib29sIGhhbmRsZXNEZXZpY2VPcmllbnRhdGlvbkFjY2Vz
c1Blcm1pc3Npb25SZXF1ZXN0cygpIGNvbnN0IGZpbmFsCisgICAgICAgIHsKKyAgICAgICAgICAg
IHJldHVybiAhIW1fY2xpZW50LnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b247CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFj
Y2Vzc1Blcm1pc3Npb24oV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBv
cmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
IGZpbmFsCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghaGFuZGxlc0RldmljZU9yaWVudGF0
aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3RzKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlciht
X2NsaWVudC5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKHRvQVBJKCZw
YWdlKSwgdG9BUEkoJm9yaWdpbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOworICAgICAg
ICB9CisKKyAgICAgICAgYm9vbCBoYW5kbGVzRGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvblJl
cXVlc3RzKCkgY29uc3QgZmluYWwKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICEhbV9j
bGllbnQucmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb247CisgICAgICAgIH0KKwor
ICAgICAgICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYlBhZ2VQ
cm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIWhhbmRsZXNEZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fY2xpZW50LnJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbykpOworICAgICAgICB9CisjZW5kaWYKKwogICAgICAgICAvLyBQcmludGlu
Zy4KICAgICAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJh
bWVQcm94eSYgZnJhbWUpIGZpbmFsCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDVlNTk3M2Y5YWIxOGI0NmE2NWVmZTA4
ZWRmNWYzNTA3YTc3NWRmMGIuLjc0NzY4ZDRhMWRlNDFmYzhlMDk2MjY0ZmY4ZWY2OWY2MzE5NTBh
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQu
aApAQCAtMTM0LDYgKzEzNCw4IEBAIHR5cGVkZWYgdm9pZCAoKldLRGlkTG9zZVBvaW50ZXJMb2Nr
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJCiB0eXBlZGVmIHZv
aWQgKCpXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBib29sIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNl
TGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tSZXNvdXJj
ZUxpbWl0IGxpbWl0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
UGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKK3R5cGVkZWYgYm9vbCAoKldLUGFnZVJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vz
c1Blcm1pc3Npb25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYg
c2VjdXJpdHlPcmlnaW4sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgq
V0tQYWdlUmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFn
ZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYg
cGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKQEAgLTExNDAsNiArMTE0MiwxMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRW
MTIgewogICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOwogfSBXS1Bh
Z2VVSUNsaWVudFYxMjsKIAordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTMgeworICAg
IFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVO
ZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNy
ZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQ
YWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7Cisg
ICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdl
UnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAg
ICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1Bh
Z2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAg
ICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAg
V0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAg
ICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7Cisg
ICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1
Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3Np
bmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdl
RGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdo
ZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdl
U2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJs
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNp
YmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRT
dGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJs
ZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNp
emFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5k
b3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
dFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxi
YWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjYgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjY7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREcmF3OworICAgIFdL
UGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0YWJhc2VR
dW90YTsKKyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xp
Y3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lk
ZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlSGVhZGVy
SGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJIZWlnaHQ7CisgICAgV0tQYWdlRHJh
d0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkcmF3SGVhZGVyOworICAgIFdLUGFnZURyYXdGb290ZXJDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zvb3RlcjsKKyAgICBXS1BhZ2VQcmlu
dEZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50RnJhbWU7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKKyAgICB2b2lkKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
dXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCisg
ICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyOworICAgIHZvaWQq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZTsKKworICAgIC8vIFZl
cnNpb24gMS4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMSAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMTsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFn
ZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAg
V0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBp
Y2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWls
YWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICBX
S1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAg
IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW51c2VkMjsgLy8gVXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50
aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJl
IGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkNDsgLy8g
VXNlZCB0byBiZSBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgorICAg
IFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDUu
CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxs
YmFjayAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dDsKKyAgICBXS1BhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZENsaWNrQXV0b0ZpbGxCdXR0b247CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VS
dW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAg
ICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQ
YWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAg
ICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAg
V0tQYWdlTWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZTsKKworICAgIC8vIFZlcnNp
b24gNi4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlUnVuSmF2YVNj
cmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5K
YXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAg
ICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9uIDcuCisgICAgV0tQ
YWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tGdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDguCisgICAgV0tSZXF1
ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMb3NlUG9pbnRlckxv
Y2s7CisKKyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxheUV2ZW50Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2
ZW50OworCisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0
dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhhc1ZpZGVvSW5QaWN0
dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNl
TGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhjZWVkQmFja2dyb3Vu
ZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZlcnNpb24gMTEuCisg
ICAgV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlQ2Fs
bGJhY2sgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFu
Y2U7CisKKyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNz
Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NDb25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VSZXF1ZXN0RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uQ2FsbGJhY2sgICAgICAgICAgICAgIHJlcXVl
c3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb247CisgICAgV0tQYWdlUmVxdWVzdERl
dmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICByZXF1
ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbjsKK30gV0tQYWdlVUlDbGllbnRWMTM7CisK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBkYmQwNTNl
N2ZiZDBhMDk1ZjA4ODhhN2VkYTBiYzJiYmE3M2UyNTMyLi4xYzJkMDY1MmQwZWJlOTMxMmE2Yzhm
ZWE1MjJlNTEzNTJiZTJlMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTExNCw2ICsxMTQsOSBAQCBz
dHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
Kiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAq
KW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVyZXMgKil3aW5k
b3dGZWF0dXJlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tXZWJWaWV3ICp3ZWJWaWV3
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygx
MS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RHZW9s
b2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wgYWxsb3dlZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b25Gb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlz
c2lvbkZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4g
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIC0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1l
SW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkp
OwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBlZGl0b3JTdGF0ZURpZENo
YW5nZTooTlNEaWN0aW9uYXJ5ICopZWRpdG9yU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMuNCksIGlvcygxMS4zKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUuaAppbmRleCBjY2I3OGEyOWUyYTRjMmZmMTZkNDI1MjVhZTVlNDYwYTc4OWJiN2Ez
Li45MDJjMzI2NjQ5NjgzNGMyNjgxOTM5ZTc5OWJkMzFjY2EwMDQ5ZWUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMTksNiArMTE5LDEyIEBAIHBy
aXZhdGU6CiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1l
UHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5l
bFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgZmluYWw7CiAg
ICAgICAgIHZvaWQgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdy
b3VuZChXZWJQYWdlUHJveHkmLCBXS1Jlc291cmNlTGltaXQpIGZpbmFsOwogICAgICAgICB2b2lk
IHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV1RG
OjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFVSTCYsIEFQSTo6RGF0YSYpIGZp
bmFsOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgYm9v
bCBoYW5kbGVzRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25z
dCBmaW5hbDsKKyAgICAgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJt
aXNzaW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgICAgICBib29sIGhhbmRsZXNE
ZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdCBmaW5hbDsKKyAgICAg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKSBmaW5hbDsKICNlbmRpZgogICAgICAgICBib29sIG5lZWRzRm9udEF0dHJpYnV0ZXMo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOyB9CiAgICAgICAgIHZvaWQgZGlkQ2hhbmdlRm9u
dEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmKSBmaW5hbDsKQEAgLTE4
Nyw2ICsxOTMsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3U2F2ZURhdGFUb0Zp
bGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21w
bGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOworI2VuZGlm
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVx
dWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVj
aXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdERldmljZU1vdGlv
bkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7CiAj
ZW5kaWYKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5
T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VF
eHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVj
aWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVD
dXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVk
VXNhZ2VEZWNpc2lvbkhhbmRsZXIgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUubW0KaW5kZXggYjVhMGE1MDhiYzk5NmQzYzlhOTdmOTNhZjNlYTNmOTI1MDk3
ZjY2NS4uZmQzZTgzMmU3NjkxODVjODRjZmY3MzM4ODYxZjEwZTQwNzY4ZGRkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMzIsNiArMTMyLDEw
IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdh
dGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1NhdmVEYXRhVG9GaWxlU3VnZ2VzdGVk
RmlsZW5hbWVNaW1lVHlwZU9yaWdpbmF0aW5nVVJMID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2F2ZURhdGFUb0ZpbGU6c3VnZ2VzdGVkRmlsZW5hbWU6
bWltZVR5cGU6b3JpZ2luYXRpbmdVUkw6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1J1bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5k
bGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5P
cGVuUGFuZWxXaXRoUGFyYW1ldGVyczppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVy
OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVy
bWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1p
c3Npb25Gb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CisjZW5kaWYKKyNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdS
ZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5E
ZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJp
dHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVj
aXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdp
bjpkZWNpc2lvbkhhbmRsZXI6KV07CiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVu
dE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5k
bGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVj
aWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmN1cnJlbnRRdW90YTpjdXJyZW50T3Jp
Z2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6ZXhwZWN0ZWRVc2FnZTpkZWNpc2lvbkhhbmRs
ZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFG
b3JTZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVu
dE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5k
bGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVj
aWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlTmFtZTpkaXNwbGF5TmFt
ZTpjdXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4
cGVjdGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwpAQCAtODQ0LDYgKzg0OCw1NSBAQCBib29s
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJh
bWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpoYW5kbGVzRGV2aWNlT3JpZW50
YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdAoreworICAgIHJldHVybiBtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3REZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcjsKK30KKwor
dm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNz
UGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNl
Y3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGlmICghaGFuZGxlc0RldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlz
c2lvblJlcXVlc3RzKCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsK
KworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAg
ICBpZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7
CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVh
dGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0RGV2aWNlT3JpZW50
YXRpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOikp
OworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlE
ZWxlZ2F0ZS5tX3dlYlZpZXcgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lv
bkZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIoc2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxl
cjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSAoQk9PTCBncmFudGVkKSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlv
bkhhbmRsZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7CisgICAgfSku
Z2V0KCldOworfQorCitib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpoYW5kbGVzRGV2aWNlTW90
aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3RzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91aURl
bGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNz
UGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyOworfQorCit2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGlmICghaGFuZGxlc0RldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0cygpKQor
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRvIGRlbGVn
YXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgYXV0byBjaGVj
a2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgp
LCBAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25G
b3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyByZXF1
ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIo
c2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNo
ZWNrZXIpXSAoQk9PTCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGNoZWNrZXItPmNv
bXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZ3JhbnRlZCk7CisgICAgfSkuZ2V0KCldOworfQorI2VuZGlmCisKIHZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNv
cmU6OkZvbnRBdHRyaWJ1dGVzJiBmb250QXR0cmlidXRlcykKIHsKICAgICBpZiAoIW5lZWRzRm9u
dEF0dHJpYnV0ZXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDI0NTUwZTQ5ZDhjZjFkZTQ4OGI5NzUyZTEyYWIzMDNmMWNmMzUzMDAuLjA0NTczODUzYWM3
N2IzY2YwMWQyZjEzNTFlODI0MjM1NTAwYzAyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtNjQ2LDYgKzY0Niw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRVSUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpVSUNsaWVudD4mJiB1aUNsaWVudCkKICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldENhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChtX3VpQ2xpZW50LT5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwo
KSksIG1fcGFnZUlEKTsKICAgICBzZXRDYW5SdW5Nb2RhbChtX3VpQ2xpZW50LT5jYW5SdW5Nb2Rh
bCgpKTsKICAgICBzZXROZWVkc0ZvbnRBdHRyaWJ1dGVzKG1fdWlDbGllbnQtPm5lZWRzRm9udEF0
dHJpYnV0ZXMoKSk7CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBwcmVmZXJl
bmNlcygpLnNldERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkhhbmRsZWRCeUNsaWVudChtX3Vp
Q2xpZW50LT5oYW5kbGVzRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdHMo
KSAmJiBtX3VpQ2xpZW50LT5oYW5kbGVzRGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvblJlcXVl
c3RzKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRJY29uTG9hZGluZ0Ns
aWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpJY29uTG9hZGluZ0NsaWVudD4mJiBpY29uTG9hZGlu
Z0NsaWVudCkKQEAgLTcxNjgsNiArNzE3MSwyOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJV
c2VyTWVkaWFTdGF0ZSgpCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVy
bWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1aW50NjRf
dCBjYWxsYmFja0lEKQoreworICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVudC0+cmVx
dWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbigqdGhpcywgb3JpZ2luLmdldCgp
LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrSURdKGJvb2wg
Z3JhbnRlZCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFpc1ZhbGlkKCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
RGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9u
KGNhbGxiYWNrSUQsIGdyYW50ZWQpLCBtX3BhZ2VJRCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQorewor
ICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEu
c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVudC0+cmVxdWVzdERldmljZU1vdGlvbkFj
Y2Vzc1Blcm1pc3Npb24oKnRoaXMsIG9yaWdpbi5nZXQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpLCBjYWxsYmFja0lEXShib29sIGdyYW50ZWQpIHsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcyB8fCAhaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRh
dGlvbk1vdGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lvbihjYWxsYmFja0lELCBncmFudGVkKSwg
bV9wYWdlSUQpOworICAgIH0pOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyMTU1ZDE0MmU0NGZi
YTU0NDU4YmM3MWY1MzkxYmU2ZTA5YjRlODAzLi4zMjc0MzJkOWNmODU4YzViNWY1ZGNmNmZhNzZj
NmRlOGQxNThhY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTQwMSw2ICsxNDAxLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNz
Q29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4s
IGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0
X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRfdCBjYWxsYmFj
a0lEKTsKKyNlbmRpZgorCiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogbm9uRXBoZW1lcmFsV2Vi
UGFnZVByb3h5KCk7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGU4NjRk
NGE5NmZiNjdmOWE1M2YxZDYwOWM2OWY3NzY1MjEzODRhMDAuLmEwNTk3ZTljMDhiNjM2Mjk2M2Jk
YjU1ZDJkMzYxZjM5MjQ5ZmU3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTUzMiw2ICs1MzIsMTEgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBTdG9wVVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRl
bnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpCiAgICAgTG9hZFN5bmNocm9ub3VzVVJM
U2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0
ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBlcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpIERlbGF5ZWQKIAorI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgUmVxdWVzdERldmljZU9yaWVudGF0aW9u
QWNjZXNzUGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdp
biwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgUmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Bl
cm1pc3Npb24oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIHVpbnQ2
NF90IGNhbGxiYWNrSUQpOworI2VuZGlmCisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5U
KQogICAgIFJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXJGcm9tRGF0YShTdHJpbmcgaWRlbnRp
ZmllciwgU3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJpbmcgcHJlZmVycmVkRmlsZU5hbWUsIElQQzo6
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIFJlZ2lzdGVyQXR0YWNobWVudElk
ZW50aWZpZXJGcm9tRmlsZVBhdGgoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlw
ZSwgU3RyaW5nIGZpbGVQYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA2N2ZkN2E3MjBj
ZTJmMzM5NzcwMzUxNDhiZGJkMmNlZmE3YzdmZDM1Li43ZjUwNTcwZGM0YTNkMGZlMWQwNTlmZmQ5
NWU4MmNiMWM2Mzk1Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTMyMCw0ICsxMzIw
LDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcm
JiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdERldmljZU9y
aWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIG1fcGFnZS5y
ZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShj
YWxsYmFjaykpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdERldmljZU1vdGlv
bkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3BhZ2UucmVxdWVzdERl
dmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24ob3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
ZjkyNmEyNThhZDg1YWIwNzc5MTZkMGNiMjM1Mjg0ZDhlYjNiZGFhNy4uMzAzNDNkZWYxZWY1ZmYy
OTU5YzQwMGUzZjQ4YTQ2NTdhZTdkYjk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzY2LDYg
KzM2NiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5n
JiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJikg
ZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9p
ZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7
CisgICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZp
bmFsOworI2VuZGlmCisKICAgICBTdHJpbmcgbV9jYWNoZWRUb29sVGlwOwogICAgIG11dGFibGUg
UmVmUHRyPFdlYkZyYW1lPiBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lOwogICAgIG11dGFi
bGUgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4
OTY4NzYwZjllNGU2NmZhMWY0ZDU5MTY2YTcyZTcwOTEyODQ5ZTBlLi5iNWJlNzAzMmRmMzM1ZTM3
M2FhOWU1OGRkYjhjZTIxN2QwY2MxMjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjM1NCw2ICs2MzU0LDM5IEBAIHZvaWQgV2ViUGFnZTo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BG
cmFtZUhvc3QsCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdlQWNjZXNzKHNlc3Np
b25JRCgpLCBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3Qoc3ViRnJh
bWVIb3N0KSwgUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHRvcEZy
YW1lSG9zdCksIGZyYW1lSUQsIG1fcGFnZUlELCBwcm9tcHRFbmFibGVkKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogI2VuZGlmCisKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorc3RhdGljIHVpbnQ2NF90IG5leHREZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Np
b25DYWxsYmFja0lEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgbmV4dENhbGxiYWNrSUQgPSAw
OworICAgIHJldHVybiArK25leHRDYWxsYmFja0lEOworfQorCit2b2lkIFdlYlBhZ2U6OnJlcXVl
c3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFj
aykKK3sKKyAgICBhdXRvIGNhbGxiYWNrSUQgPSBuZXh0RGV2aWNlT3JpZW50YXRpb25Nb3Rpb25Q
ZXJtaXNzaW9uQ2FsbGJhY2tJRCgpOworICAgIEFTU0VSVCghbV9kZXZpY2VPcmllbnRhdGlvbk1v
dGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5jb250YWlucyhjYWxsYmFja0lEKSk7CisgICAgbV9k
ZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5hZGQoY2FsbGJhY2tJ
RCwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKG9yaWdpbi5kYXRhKCks
IGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdlOjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gY2FsbGJh
Y2tJRCA9IG5leHREZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKCk7
CisgICAgQVNTRVJUKCFtX2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNr
TWFwLmNvbnRhaW5zKGNhbGxiYWNrSUQpKTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9uTW90aW9u
UGVybWlzc2lvbkNhbGxiYWNrTWFwLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uKG9yaWdpbi5kYXRhKCksIGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBX
ZWJQYWdlOjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
RGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKQoreworICAgIGF1dG8g
Y2FsbGJhY2sgPSBtX2RldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFw
LnRha2UoY2FsbGJhY2tJRCk7CisgICAgQVNTRVJUKGNhbGxiYWNrKTsKKyAgICBjYWxsYmFjayhn
cmFudGVkKTsKK30KKyNlbmRpZgogICAgIAogc3RhdGljIFNoYXJlU2hlZXRDYWxsYmFja0lEIG5l
eHRTaGFyZVNoZWV0Q2FsbGJhY2tJRCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggZDIxZWFmYmM1MjM1MmMyNTcyNzlmOGYzMmVhNjU2MzkwOGVi
NmE5Mi4uNDQ4N2IwMTYyODEwZWI0YmNmMjlmMGRhZWY0ZTE1YTdlNTA2ZmQzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTExMSw2ICsxMTExLDEx
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZy
YW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFj
Y2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nl
c3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJik7CisjZW5kaWYKKwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQo
V2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjYWxsYmFjayk7CiAgICAgdm9pZCBkaWRDb21wbGV0ZVNoYXJlU2hlZXQo
Ym9vbCB3YXNDb21wbGV0ZWQsIFNoYXJlU2hlZXRDYWxsYmFja0lEIGNvbnRleHRJZCk7CiAgICAg
CkBAIC0xMjA3LDYgKzEyMTIsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RBZGRpdGlv
bmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbik7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCBkaWRSZWNlaXZlRGV2
aWNlT3JpZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgY2Fs
bGJhY2tJRCwgYm9vbCBncmFudGVkKTsKKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKENPQ09BKSAm
JiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVu
dChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYKQEAgLTE4MzcsNiArMTg0
NiwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9p
ZChib29sIGdyYW50ZWQpPj4gbV9zdG9yYWdlQWNjZXNzUmVzcG9uc2VDYWxsYmFja01hcDsKICAg
ICBIYXNoTWFwPFNoYXJlU2hlZXRDYWxsYmFja0lELCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBj
b21wbGV0ZWQpPj4gbV9zaGFyZVNoZWV0UmVzcG9uc2VDYWxsYmFja01hcDsKIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wgZ3JhbnRlZCk+PiBtX2RldmljZU9yaWVudGF0aW9uTW90aW9u
UGVybWlzc2lvbkNhbGxiYWNrTWFwOworI2VuZGlmCisKICNpZiBFTkFCTEUoQVBQTElDQVRJT05f
TUFOSUZFU1QpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgdWludDY0X3Q+IG1fYXBwbGljYXRpb25N
YW5pZmVzdEZldGNoQ2FsbGJhY2tNYXA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGNiMGI1NzA5MzM2
NGMwZTU1NDI0M2Y5MzA5YzM5MjVkNTQ4YWY0ZjAuLjZkYzliZTQ5NzMxYWYyYmUyYTVkZDMwMGQy
MDQ5MDdhYTE1MWMyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzY0LDYgKzM2NCwxMCBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICAjIE5vdGlmaWNhdGlvbgogICAgIERpZFJl
Y2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQsIGJvb2wgYWxsb3dlZCkKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAg
RGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCkKKyNlbmRpZgorCiAgICAgIyBQcmlu
dGluZy4KICAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6
OlByaW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUxZDA2MTBkMTE5ZjY1MzE3NTA1
Y2ZhN2I3YzhkOTljYzY0MTM3NTMuLjcyNDA2MTI4OWRhMmMwOWVkNGUyNjNjZWFmNzA4OTFjNmRk
YThlMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMSBAQAorMjAxOS0wMy0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rp
b24gcGVybWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTMyOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2NDUzNjc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgdG8gaGVscCB0ZXN0IHRoZSBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24g
cGVybWlzc2lvbiBBUEkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6
OnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MpOgorICAgICAgICAoV1RSOjpU
ZXN0UnVubmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OnJlcXVl
c3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAoV1RSOjpyZXF1
ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1
ZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU1vdGlvbkFj
Y2Vzc1Blcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQWNjZXNzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246
OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0wMy0wNCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCBzaGFyZSBXZWJQ
cm9jZXNzZXMgYmV0d2VlbiBwcml2YXRlIGFuZCByZWd1bGFyIHNlc3Npb25zCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAppbmRleCAwZTc5ZDgwYjYwMWYzMjk1ZThiODE1YmExMDA4Yjk5N2QxYjgw
YzZmLi5lZWUzOGQ2OWVmYjA0MTA1NjU5ZDFiZGVjMjE3NWUyZTM5MWIxYjI2IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwKQEAgLTEwNCw2ICsxMDQsMTAgQEAgaW50ZXJmYWNlIFRlc3RSdW5u
ZXIgewogICAgIGJvb2xlYW4gaXNDb21tYW5kRW5hYmxlZChET01TdHJpbmcgbmFtZSk7CiAgICAg
dW5zaWduZWQgbG9uZyB3aW5kb3dDb3VudCgpOwogCisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9u
IE1vdGlvbi4KKyAgICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3Mo
Ym9vbGVhbiB2YWx1ZSk7CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vz
cyhib29sZWFuIHZhbHVlKTsKKwogICAgIC8vIFNwZWNpYWwgRE9NIHZhcmlhYmxlcy4KICAgICBh
dHRyaWJ1dGUgYm9vbGVhbiBnbG9iYWxGbGFnOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBkNDYyMjQ2Y2RiOWMx
OGY3N2NlNDVkNzMxMzcyODA0YTY1MWRkMzAyLi41YTAyMjBlMzliMThiMTRkOGU3ODIzYTNjNjg0
YzY2MzYzZWUwMGVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEyOTQsNiArMTI5NCwyMCBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyhib29sIHZhbHVl
KQogICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsK
IH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNj
ZXNzKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VO
YW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQWNjZXNzIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJl
Zj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKHZhbHVlKSk7CisgICAgV0tC
dW5kbGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+
cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOworfQorCit2b2lk
IFRlc3RSdW5uZXI6OnNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKGJvb2wgdmFsdWUp
Cit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFj
Y2VzcyIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0
V0ssIFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdl
KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUu
Z2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3Nh
Z2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVO
ZXR3b3JrUHJvY2VzcyIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggNzEzYTk0MzM2MzkwNWYwYzliNzYwZDU3NGFjOGYz
MjRkOGQ1MTZmYy4uYTEwYWMwODk1NzkwOGExYTdlNzIzMzMyNGEyNTc0ZmJhZTVkYTRjNCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKQEAgLTM0OCw2ICszNDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uR2Vz
dHVyZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1p
dHMoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlw
ZXMoYm9vbCk7CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNz
KGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MoYm9vbCk7
CiAKICAgICBib29sIGRpZENhbmNlbENsaWVudFJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9k
aWRDYW5jZWxDbGllbnRSZWRpcmVjdDsgfQogICAgIHZvaWQgc2V0RGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3QoYm9vbCB2YWx1ZSkgeyBtX2RpZENhbmNlbENsaWVudFJlZGlyZWN0ID0gdmFsdWU7IH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggODVhOWRjMzBh
OWNiOGY2OTI0ZDA3MjViMGJjNGFkNDIzZTZkZGQ2Ni4uMjBlZmNjNzVjNTQ4NjhlZjQyOTNjMWMw
NDgwYzlkMjljMjI2YTg5MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTI2MSw2ICsyNjEsMTYgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFBvaW50ZXJMb2Nr
KFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKikKICAgICBXS1BhZ2VEaWRBbGxvd1BvaW50ZXJM
b2NrKHBhZ2UpOwogfQogCitzdGF0aWMgYm9vbCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nl
c3NQZXJtaXNzaW9uKFdLUGFnZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGNvbnN0
IHZvaWQqKQoreworICAgIHJldHVybiBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuaGFuZGxl
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChvcmlnaW4pOworfQorCitz
dGF0aWMgYm9vbCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXS1BhZ2VSZWYs
IFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2b2lkKikKK3sKKyAgICByZXR1cm4g
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRsZURldmljZU1vdGlvbkFjY2Vzc1Blcm1p
c3Npb25SZXF1ZXN0KG9yaWdpbik7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0
aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0
dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQ
bGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CkBAIC01NjksOCArNTc5LDggQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRp
b25zJiBvcHRpb25zKQogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0
aW9ucyk7CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlvbi5nZXQoKSwg
b3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWOCBwYWdlVUlDbGllbnQgPSB7Ci0gICAgICAg
IHsgOCwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjEzIHBhZ2VV
SUNsaWVudCA9IHsKKyAgICAgICAgeyAxMywgbV9tYWluV2ViVmlldy5nZXQoKSB9LAogICAgICAg
ICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwg
Ly8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UKQEAgLTYzNiw3ICs2NDYsMTQgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRp
b25zJiBvcHRpb25zKQogICAgICAgICAwLCAvLyBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwK
ICAgICAgICAgMCwgLy8gZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lCiAgICAgICAgIHJlcXVl
c3RQb2ludGVyTG9jaywKLSAgICAgICAgMCwKKyAgICAgICAgMCwgLy8gZGlkTG9zZVBvaW50ZXJM
b2NrCisgICAgICAgIDAsIC8vIGhhbmRsZUF1dG9wbGF5RXZlbnQKKyAgICAgICAgMCwgLy8gaGFz
VmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UKKyAgICAgICAgMCwgLy8gZGlkRXhjZWVk
QmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZAorICAgICAgICAwLCAvLyBk
aWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2UKKyAgICAgICAgMCwg
Ly8gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtCisgICAgICAgIHJlcXVlc3REZXZpY2VPcmll
bnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24sCisgICAgICAgIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nl
c3NQZXJtaXNzaW9uCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2Vi
Vmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2UpOwogCkBAIC05NDIsNiArOTU5LDkgQEAg
Ym9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBU
ZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKIAogICAgIG1fc2hvdWxkRG93bmxvYWRVbmRpc3BsYXlh
YmxlTUlNRVR5cGVzID0gZmFsc2U7CiAKKyAgICBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BY2Nlc3MgPSBmYWxzZTsKKyAgICBtX3Nob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzID0g
ZmFsc2U7CisKICAgICBtX3dvcmtRdWV1ZU1hbmFnZXIuY2xlYXJXb3JrUXVldWUoKTsKIAogICAg
IG1fcmVqZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VzID0gZmFsc2U7CkBAIC0yNTQ3LDYgKzI1NjcsMTggQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6aGFuZGxlQ2hlY2tPZlVzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV0tGcmFtZVJlZiBm
cmFtZSwKICAgICBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1NldFVzZXJNZWRpYUFjY2Vzc0lu
Zm8oY2hlY2tSZXF1ZXN0LCBzYWx0U3RyaW5nLmdldCgpLCBzZXR0aW5nc0Zvck9yaWdpbihvcmln
aW5IYXNoKS5wZXJzaXN0ZW50UGVybWlzc2lvbigpKTsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxl
cjo6aGFuZGxlRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChXS1NlY3Vy
aXR5T3JpZ2luUmVmIG9yaWdpbikKK3sKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRU
ZXh0KG1ha2VTdHJpbmcoIlJlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVybWlz
c2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gXCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5h
bWUob3JpZ2luKSwgIlwiLlxuIikpOworICAgIHJldHVybiBtX3Nob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3M7Cit9CisKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKQor
eworICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQobWFrZVN0cmluZygiUmVjZWl2
ZWQgZGV2aWNlIG1vdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBv
cmlnaW4gXCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUob3JpZ2luKSwgIlwiLlxuIikpOworICAg
IHJldHVybiBtX3Nob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzOworfQorCiB2b2lkIFRlc3RD
b250cm9sbGVyOjpoYW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS0ZyYW1lUmVmIGZy
YW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBXS1NlY3Vy
aXR5T3JpZ2luUmVmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFdLVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RSZWYgcmVxdWVzdCkKIHsKICAgICBhdXRvIG9yaWdpbkhhc2ggPSB1c2VyTWVkaWFP
cmlnaW5IYXNoKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBhMGMzYTcyZTc4
MjAzMGM4NjJlZDNiMDQwNjg4ZjdlYTQ3ZmJhYzA3Li5kOTZmZGQwZmZiZjVmMWQ2NDg4NDNiZGQ2
YThhYjMxMzhiZDkwMTVlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CkBAIC0xNTAsNiArMTUwLDEwIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENvdW50Rm9yT3JpZ2luKFdLU3RyaW5nUmVmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luU3RyaW5nLCBXS1N0cmluZ1JlZiB0b3BMZXZlbERvY3VtZW50T3JpZ2luU3RyaW5nKTsK
ICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihX
S1N0cmluZ1JlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7CiAKKyAgICAvLyBEZXZpY2UgT3JpZW50YXRpb24g
LyBNb3Rpb24uCisgICAgYm9vbCBoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Np
b25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYpOworICAgIGJvb2wgaGFuZGxlRGV2aWNlTW90
aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJlZik7CisKICAgICAv
LyBDb250ZW50IEV4dGVuc2lvbnMuCiAgICAgdm9pZCBjb25maWd1cmVDb250ZW50RXh0ZW5zaW9u
Rm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwogICAgIHZvaWQgcmVzZXRDb250ZW50RXh0
ZW5zaW9ucygpOwpAQCAtMTk5LDYgKzIwMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElnbm9y
ZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogCiAgICAgdm9pZCBzZXRTaG91bGREb3dubG9h
ZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZERvd25sb2FkVW5k
aXNwbGF5YWJsZU1JTUVUeXBlcyA9IHZhbHVlOyB9CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQWNjZXNzID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNl
TW90aW9uQWNjZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vz
cyA9IHZhbHVlOyB9CiAKICAgICB2b2lkIHNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1
ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUo
V0tTdHJpbmdSZWYgaG9zdE5hbWUpOwpAQCAtNTA4LDYgKzUxNCw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3BvbGljeURlbGVnYXRlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BvbGlj
eURlbGVnYXRlUGVybWlzc2l2ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZERvd25sb2Fk
VW5kaXNwbGF5YWJsZU1JTUVUeXBlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRBbGxv
d0RldmljZU1vdGlvbkFjY2VzcyB7IGZhbHNlIH07CiAKICAgICBib29sIG1fcmVqZWN0c1Byb3Rl
Y3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDY2NjBjZGM5
MjFmODk3Y2NlMmY3NzFkOGQ1M2E1YzI2ZjIxMjQ4ZjkuLjI1ZmRlNTZmZDVlZmNjOGUyMTIxYzZl
YTMzZGZlOWFlZDcwNTM3YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCkBAIC03NDcsNiArNzQ3LDIwIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2Vp
dmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MiKSkg
eworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdl
dFR5cGVJRCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tC
b29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0
b24oKS5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZh
bHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoV0tTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2aWNlTW90
aW9uQWNjZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9
PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0
YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MoV0tCb29s
ZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiUnVuVUlQcm9jZXNzU2Ny
aXB0IikpIHsKICAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9
IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwogICAgICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gc2NyaXB0S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJTY3JpcHQiKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjUzZTkzZmQ2YmNiNTQ3NzdlZjQ5ODc5
OGUwZDhlODczNGY3ODRiNS4uM2Q1OWQwNGIxZTcyNGI0NjI2ZjBhOWFmM2RiM2M4Y2E1YTg1YWUw
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlv
biAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Np
b24tZ3JhbnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmll
bnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMTktMDMtMDMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFByZXBhcmUgdG8gaW1wcm92ZSBoYW5kbGluZyBvZiBjb252ZXJzaW9uIG9mIGZsb2F0IHRv
IHN0cmluZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDIyOTdmNWFiMWIzZWI0OWU1Y2ZkMzBkODVi
MjY3ZDRkNjhiYTZjNDIuLjE2ZTI1NDY4MjNlYTMyNzNlMGU4NWYwMTVmNGZjYTAxZWQ4MDY1NDAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzIsNiArMzIsNyBAQCBmYXN0L3pvb21pbmcvaW9zIFsg
U2tpcCBdCiBmYXN0L2Zvcm1zL2lvcyBbIFNraXAgXQogZmFzdC92aWV3cG9ydC9pb3MgWyBTa2lw
IF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBTa2lwIF0KK2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dh
dGNob3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3BvaW50ZXIvaW9zIFsgU2tpcCBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzU4NTljNjNkMzc0MDliNDMyMjMyYjdhZDE2MmE5
ODQyNDU4ZjJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmlj
ZW1vdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJl
cXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBtb3Rpb24gYWNjZXNzIHBlcm1p
c3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDE4OiBObyBkZXZpY2Vtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJt
aXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZp
Y2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1MgcmVzdWx0IGlzICJkZW5p
ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZmQyMzk4MTk1YTMxNGZkZjA1ZTNjZjZhOWUyMmJjMDQ0OGJmZmJj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
QmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4i
KTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
dGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyhmYWxzZSk7CisKK2Fk
ZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworRGV2aWNlTW90aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgcmVzdWx0
ID0gX3Jlc3VsdDsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJkZW5pZWQi
KTsKKworICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKwor
ICAgIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkg
PT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
fSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40OGVhMTdmNTNjZDUxZGEzNmU1MGZhYWQ4ZmFiY2Q1ZWM3NmZhZjdi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2Vtb3Rpb24g
ZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQg
YW5kIGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJl
cXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU1v
dGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BBU1MgcmVzdWx0IGlzICJncmFudGVk
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNTQyMTQ3ZDgxODU4ZjFlMDk0ZWJlMTBmZGYzZWFiYzIwNjFlZWIz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sCkBAIC0wLDAgKzEs
MjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IkJhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
Iik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK2Fk
ZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworRGV2aWNlTW90aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgcmVzdWx0
ID0gX3Jlc3VsdDsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVk
Iik7CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisK
KyAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQp
ID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rldmlj
ZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmll
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEwMzBmMTBkYmFmZmIzNjdiNzFiYWZiZDk5NGU3
NDQzMjFjZjhmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5v
IGRldmljZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24g
aGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0
aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxODogTm8gZGV2aWNlb3JpZW50YXRpb24gZXZlbnRzIHdpbGwg
YmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitC
YXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9u
KCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZGVu
aWVkIgorUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRl
bmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODZm
MWI5NjE1NGI4MTdmYmRhMmRkYmM5MzFhOGQ2YWRhNWUyMGJhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZv
ciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIu
c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50
TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJl
c3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVu
aWVkIik7CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+
IHt9KTsKKworICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50
aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOworICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50
YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDJjOTBjNDJkNTI0NTVl
NTZlNzJmODg4NGRjZmM2Mzk2YzhiZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTI6IE5vIGRldmljZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVu
dGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQg
ZGV2aWNlIG9yaWVudGF0aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5
IG9yaWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cmVzdWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNjAwMWNjZTBlZjNiZTQ0ZWUzNDg5MjA5MGEwZDE2MWU1ZDhlNGE4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKQEAgLTAsMCAr
MSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlz
c2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3Mo
dHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30p
OworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jl
c3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNl
b3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJl
cXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBf
cmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVk
Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRz
L2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1z
ZWN1cmUtY29udGV4dC5odG1sCmluZGV4IGVkMmRkMjAzNzdjNTczNjVlMWE1ZjdmZmM1MjU0Zjcy
N2Q3MWI1ZGMuLmYzMTQ0YjM1YWUwMGU1OWNlNDA4NmFlNjI3Y2NmYTRlZWJlNzE5ZWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1t
b3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRt
bApAQCAtMjcsNyArMjcsNyBAQCBmdW5jdGlvbiBydW5EZXZpY2VNb3Rpb25UZXN0KCkKICAgICBk
ZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7CiAgICAgYWRkRXZl
bnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGludGVybmFs
cy5wb3N0VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENv
bnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9y
IG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90
IHNlY3VyZS4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1l
c3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZW1vdGlvbiBldmVudCBsaXN0
ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CiAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogfQpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlvbiBy
dW5EZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmlj
ZSBvcmllbnRhdGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9y
aWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9
PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVNZXNzYWdlIiwg
IkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxp
c3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tl
ZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZW9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFz
b246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKICAgICAgICAgcnVuRGV2aWNl
TW90aW9uVGVzdCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRp
b24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCAwZmI3ZDdlYmYyZDg0
MmQ3YmI3MzRhYTg0MzMxOGQ4OTY4MGQ0MzQ2Li44NmUxODgxODQ4Y2RjMjE4ODMzZmEyN2Y2ZjZk
ZWM3NzZjNjdlNGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9k
ZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9u
LXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMSBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDM3OiBEZXZpY2UgT3JpZW50YXRpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogRGV2aWNlIE1vdGlvbiBBUEkgaXMgbm90IHN1cHBv
cnRlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUxOiBEZXZpY2UgT3JpZW50YXRpb24gQVBJIGlz
IG5vdCBzdXBwb3J0ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyODogRGV2aWNlIE1vdGlvbiBB
UEkgaXMgbm90IHN1cHBvcnRlZAogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxp
c3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gZG9lcyBu
b3QgbG9nIGFuIGVycm9yIGluIHNlY3VyZSBjb250ZXh0cy4KIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKKwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Ut
b3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0
bWwKaW5kZXggNGU1NGQxMWQ5OTQxZTc1OGUwMjc1MGI4NmQ0M2UzMmJjOTQzM2VlZS4uYzhhMTFm
NWM1OWY3MDQ1NmM3Mzc5MDcyOWQyNDdiMjg1Y2ZmOTYwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29u
dGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmll
bnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRtbApAQCAtNiw2ICs2LDE0IEBACiBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBk
ZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gZG9lcyBub3QgbG9nIGFuIGVy
cm9yIGluIHNlY3VyZSBjb250ZXh0cy4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBpZiAodGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQWNjZXNzKQorICAgICAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3ModHJ1ZSk7CisKKyAgICBpZiAodGVzdFJ1bm5lci5zZXRT
aG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcykKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91
bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyh0cnVlKTsKK30KKwogLy8gbG9jYWxob3N0IGlzIHNl
Y3VyZSBieSBkZWZhdWx0LgogCiBsZXQgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKQEAgLTE1
LDE5ICsyMywyNSBAQCBpbnRlcm5hbHMuc2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcigobWVzc2Fn
ZSkgPT4gewogCiBmdW5jdGlvbiBydW5EZXZpY2VNb3Rpb25UZXN0KCkKIHsKKyAgICBkZWJ1Zygi
Iik7CiAgICAgaWYgKCF3aW5kb3cuRGV2aWNlTW90aW9uRXZlbnQpIHsKICAgICAgICAgY29uc29s
ZS5sb2coIkRldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQiKTsKICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBsYXN0Q29uc29sZU1l
c3NhZ2UgPSBudWxsOwotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBk
ZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7Ci0gICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90
aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwotICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9PiB7Ci0g
ICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNzYWdlIik7Ci0gICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgIGRlYnVnKCIqIFJlcXVlc3RpbmcgZGV2aWNlIG1vdGlvbiBhY2Nlc3Mu
Li4iKTsKKyAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9y
ZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgICAgIGxhc3RDb25zb2xl
TWVzc2FnZSA9IG51bGw7CisgICAgICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rp
b24gbGlzdGVuZXIiKTsKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwg
ZnVuY3Rpb24oKSB7IH0pOworICAgICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4geworICAg
ICAgICAgICAgc2hvdWxkQmVOdWxsKCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKKyAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKICAgICB9KTsKIH0KIApAQCAtMzksMTIgKzUz
LDE5IEBAIGZ1bmN0aW9uIHJ1bkRldmljZU9yaWVudGF0aW9uVGVzdCgpCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOwotICAgIGRlYnVnKCIq
IFJlZ2lzdGVyaW5nIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lciIpOwotICAgIGFkZEV2ZW50
TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwotICAgIGludGVy
bmFscy5wb3N0VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVN
ZXNzYWdlIik7Ci0gICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3QoKTsKKyAgICBkZWJ1ZygiKiBS
ZXF1ZXN0aW5nIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MuLi4iKTsKKyAgICBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAg
ICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
c3VsdCIsICJncmFudGVkIik7CisKKyAgICAgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1
ZXN0UGVybWlzc2lvbgorICAgICAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOworICAgICAg
ICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsKKyAg
ICAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCBmdW5jdGlvbigpIHsg
fSk7CisgICAgICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9PiB7CisgICAgICAgICAgICBzaG91
bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOworICAgICAgICAgICAgcnVuRGV2aWNlTW90
aW9uVGVzdCgpOworICAgICAgICB9KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDY5YzgzODRlMmM4MTg2NTJmMDQ1
YWNmNDk1NTRjYjYyZTI3OWVlYWIuLjBiOGU4NGQ4MDY5NzY1OWE1NDA4ZWNhMDdiODBiODU1MzEz
NzgwODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTcsNiArNyw3IEBACiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAK
IGNvbXBvc2l0aW5nL2lvcyBbIFBhc3MgXQorZmFzdC9kZXZpY2Utb3JpZW50YXRpb24gWyBQYXNz
IF0KIGZhc3QvaGlzdG9yeS9pb3MgWyBQYXNzIF0KIGZhc3Qvc2Nyb2xsaW5nL2lvcyBbIFBhc3Mg
XQogZmFzdC92aWV3cG9ydC9pb3MgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5v
bi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
aHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNv
bnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDg2Nzc5YWY0NjUxMTExYjE4NzE1YTUzZTdiMTFlM2Ix
MWI5NzNhMTEuLjllOTdhNWI1ZjA1ZjhlMTI0MjZkOWQyOTUzZTMzNzkxZGU1M2UyNGYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Ut
b3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRh
dGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSwxNSArMSwx
NSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ1OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEg
ZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2lu
ZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjg6IEJsb2Nr
ZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVy
IGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4KK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA0NTogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZW9yaWVudGF0aW9u
IGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4K
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAyODogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmlj
ZW1vdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBz
ZWN1cmUuCiBUZXN0cyB0aGF0IHRyeWluZyB0byBzZXQgYW4gZXZlbnQgbGlzdGVuZXIgZm9yIGRl
dmljZW9yaWVudGF0aW9uIGFuZCBkZXZpY2VvcmllbnRhdGlvbiBsb2dzIGFuIGVycm9yIGluIG5v
bi1zZWN1cmUgY29udGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCiAqIFJl
Z2lzdGVyaW5nIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lcgotUEFTUyBsYXN0Q29uc29sZU1l
c3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVu
dGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3Vy
ZS4iCitQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBh
IGRldmljZW9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRl
eHQgaXMgbm90IHNlY3VyZS4iCiAKICogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5l
cgotUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBk
ZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5n
IGNvbnRleHQgaXMgbm90IHNlY3VyZS4iCitQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyAiQmxv
Y2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZW1vdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29u
OiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1
cmUtY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90
ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBl
Y3RlZC50eHQKaW5kZXggMzFiODVmNWQ3ZDQ1ZjM3ZjlkNmIxNjVmNjczN2RmZTU5MjJlZGY1Yy4u
YWIyYjQzM2VmOTQzYzQyYWUyYTgzNTk4Mzg4OTUxMjAzYzk5MWI5YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlv
bi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNl
Y3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSwxMSArMSwxNyBAQAorUmVjZWl2ZWQgZGV2
aWNlIG9yaWVudGF0aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9y
aWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIi4KK1JlY2VpdmVkIGRldmljZSBtb3Rpb24gYWNj
ZXNzIHBlcm1pc3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiLgogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZv
ciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gZG9lcyBub3QgbG9nIGFu
IGVycm9yIGluIHNlY3VyZSBjb250ZXh0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CiAKKyogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzLi4uCitQQVNTIHJlc3Vs
dCBpcyAiZ3JhbnRlZCIKICogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVy
CiBQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyBudWxsCiAKKyogUmVxdWVzdGluZyBkZXZpY2Ug
bW90aW9uIGFjY2Vzcy4uLgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCiAqIFJlZ2lzdGVyaW5n
IGRldmljZSBtb3Rpb24gbGlzdGVuZXIKIFBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzIG51bGwK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363687</attachid>
            <date>2019-03-05 14:20:28 -0800</date>
            <delta_ts>2019-03-05 15:00:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190305142027.patch</filename>
            <type>text/plain</type>
            <size>95623</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2NTk5ZTMzMzQxZjUz
NzBlNTAwNzRlNGM5MWZhZjUyOWNmNTJkOC4uNGE3MDJkZTIzY2IzY2MzZjVlMGFmM2JjOTc4ZTk3
OWFjZjY0M2ExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTAzLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9E
ZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVz
dFBlcm1pc3Npb24pOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmg6Cisg
ICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0
aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLnlhbWw6CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBJbXByb3ZlIG91ciBmaWxlIHBpY2tlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA4NzZlY2Q1ZDQxMGEzZTVhODRkOWIxMTRkYTY2ZWRkZjUxMTM3MDFmLi5iNDQzNTAyZDUyY2Ri
YTRiOWFiNTg0YmI2NzFiYzY4N2UwMzY2NmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0
aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNv
bS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgVGhpcyBhZGRzIG5l
dyBwdWJsaWMgQVBJIG9uIFdLVUlEZWxlZ2F0ZS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAg
ICAgICAgKEFQSTo6VUlDbGllbnQ6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1p
c3Npb24pOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vz
c1Blcm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAg
ICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVs
ZWdhdGU6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAo
V2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Bl
cm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Bl
cm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3REZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVz
dERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpuZXh0RGV2aWNlT3JpZW50YXRpb25N
b3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbk1vdGlvbkFjY2Vz
c1Blcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KwogMjAxOS0wMy0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IERvIG5vdCBzaGFyZSBXZWJQcm9jZXNzZXMgYmV0d2VlbiBwcml2YXRlIGFuZCByZWd1bGFyIHNl
c3Npb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcAppbmRleCA5MGQ3
MDJkYzM5MDUyZDBmYzc2ZGUwODQxNWRhNDdiODM3M2IyZDk2Li41ODA4YzM1YmU2NzQ3OGYwOGI3
OTY2ZTlhMTAxYzUzZGY1ZGZhMjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlTW90aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5jcHAKQEAgLTI2LDcgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRGV2aWNlTW90aW9uRXZlbnQuaCIKIAorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUg
IkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMTIyLDQgKzEyNiwzMiBAQCBFdmVudEludGVyZmFjZSBEZXZpY2VNb3Rp
b25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1p
c3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHByb21pc2UpCit7
CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCk7CisgICAgaWYgKCF3aW5k
b3cpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lvblN0YXRlOjpEZW5p
ZWQpOworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIXdpbmRvdy0+aXNBbGxv
d2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAg
IGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2
ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkNhbGwgdG8gRGV2aWNlTW90aW9uRXZlbnQucmVxdWVz
dFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogIiwgZXJyb3JNZXNzYWdlLCAiLiIpKTsKKyAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7Cisg
ICAgfQorCisgICAgaWYgKGF1dG8gcGVybWlzc2lvblN0YXRlID0gZG9jdW1lbnQuZGV2aWNlTW90
aW9uQWNjZXNzU3RhdGUoKSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZSgqcGVybWlz
c2lvblN0YXRlID8gUGVybWlzc2lvblN0YXRlOjpHcmFudGVkIDogUGVybWlzc2lvblN0YXRlOjpE
ZW5pZWQpOworCisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lvblN0YXRlOjpEZW5p
ZWQpOworCisgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkucmVxdWVzdERldmljZU1vdGlvbkFj
Y2Vzc1Blcm1pc3Npb24oZG9jdW1lbnQudG9wT3JpZ2luKCksIFtkb2N1bWVudCA9IG1ha2VXZWFr
UHRyKGRvY3VtZW50KSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJvb2wgZ3JhbnRlZCkg
bXV0YWJsZSB7CisgICAgICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgICAgIGRvY3VtZW50LT5z
ZXREZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZShncmFudGVkKTsKKyAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKGdyYW50ZWQgPyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6
OkRlbmllZCk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaAppbmRleCAzZWNjNWJkNGMwYzdlZWMx
OGU5ZmI4ZTQxNTZmMThiZjNlZjQ1MzNkLi42NGE5NDlkMGZmYzI0MjRiYTk0MjdiZTNjYzFkZDQ0
Y2EwNjYxMjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaApAQCAtMjYs
MTAgKzI2LDEyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEZXZpY2VNb3Rpb25EYXRhOworY2xhc3MgRG9jdW1lbnQ7CiAKIGNsYXNzIERldmljZU1vdGlv
bkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKQEAgLTY2LDYgKzY4LDEyIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgaW5pdERldmljZU1vdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIE9wdGlvbmFsPEFjY2Vs
ZXJhdGlvbj4mJiwgT3B0aW9uYWw8QWNjZWxlcmF0aW9uPiYmLCBPcHRpb25hbDxSb3RhdGlvblJh
dGU+JiYsIE9wdGlvbmFsPGRvdWJsZT4pOwogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKyAgICBlbnVtIGNsYXNzIFBlcm1pc3Npb25TdGF0ZSB7IEdyYW50ZWQsIERlbmllZCB9Owor
ICAgIHVzaW5nIFBlcm1pc3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEVudW1l
cmF0aW9uPFBlcm1pc3Npb25TdGF0ZT4+OworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKERvY3VtZW50JiwgUGVybWlzc2lvblByb21pc2UmJik7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICBEZXZpY2VNb3Rpb25FdmVudCgpOwogICAgIERldmljZU1vdGlvbkV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VNb3Rpb25EYXRhKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbAppbmRleCBmMmY1ZGYyMGZjZTUzYmMxM2I1YWJlNmQ0
MThlMjBiZDVhNGZkMzg2Li4zMmFkNmU3NWMwYzM0ZTE4NDYyMThhZDY4YTRlZGU2MTdhNWQyOWYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKQEAgLTMxLDYgKzMx
LDggQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgUm90YXRpb25SYXRlPyByb3RhdGlvblJhdGU7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGludGVydmFsOwog
CisgICAgW0NhbGxXaXRoPURvY3VtZW50LCBFbmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVudGF0
aW9uUGVybWlzc2lvbkFQSV0gc3RhdGljIFByb21pc2U8UGVybWlzc2lvblN0YXRlPiByZXF1ZXN0
UGVybWlzc2lvbigpOworCiAgICAgdm9pZCBpbml0RGV2aWNlTW90aW9uRXZlbnQob3B0aW9uYWwg
RE9NU3RyaW5nIHR5cGUgPSAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRp
b25hbCBib29sZWFuIGJ1YmJsZXMgPSBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSwKQEAgLTU3LDMgKzU5LDUg
QEAKICAgICBkb3VibGU/IGJldGE7CiAgICAgZG91YmxlPyBnYW1tYTsKIH07CisKK2VudW0gUGVy
bWlzc2lvblN0YXRlIHsgImdyYW50ZWQiLCAiZGVuaWVkIiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCmluZGV4IGU4MjFiNjU1MzEwOGExMjBjMGZi
MjcxMjdiYTU3NTUxOTBlNzFlMWUuLmE4OTMyOTBjZWQ4NTVkNTI1YTc2NTQ1NzYwYjVjNzMyZDNi
OTk1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5j
cHAKQEAgLTI2LDcgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb25FdmVudC5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25EYXRhLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTEwOSw0ICsxMTMsMzIgQEAgRXZlbnRJbnRlcmZhY2UgRGV2aWNl
T3JpZW50YXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAogI2VuZGlmCiB9CiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
OjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNl
JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5kb3coKTsK
KyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNz
aW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICgh
d2luZG93LT5pc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2Fn
ZSkpIHsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246ICIsIGVycm9y
TWVzc2FnZSwgIi4iKSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lv
blN0YXRlOjpEZW5pZWQpOworICAgIH0KKworICAgIGlmIChhdXRvIHBlcm1pc3Npb25TdGF0ZSA9
IGRvY3VtZW50LmRldmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoKSkKKyAgICAgICAgcmV0dXJu
IHByb21pc2UucmVzb2x2ZSgqcGVybWlzc2lvblN0YXRlID8gUGVybWlzc2lvblN0YXRlOjpHcmFu
dGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworCisgICAgYXV0byogcGFnZSA9IGRvY3Vt
ZW50LnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29s
dmUoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworCisgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkucmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihkb2N1bWVudC50b3BP
cmlnaW4oKSwgW2RvY3VtZW50ID0gbWFrZVdlYWtQdHIoZG9jdW1lbnQpLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50KQorICAgICAgICAgICAgZG9jdW1lbnQtPnNldERldmljZU9yaWVudGF0aW9uQWNjZXNzU3Rh
dGUoZ3JhbnRlZCk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShncmFudGVkID8gUGVybWlzc2lv
blN0YXRlOjpHcmFudGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0pOworfQor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlT3JpZW50YXRpb25FdmVudC5oCmluZGV4IDAyNWIyZTMyYTc1MWU0MmY2NTBiYjUzYjUxNWEx
MGJkYjUyN2Y0NzguLjE2ZTMzYWY5MTk4NDYxZjZlYzI2MTRmNmEzZjU4MjE5ZmRmNmQ0MjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaApAQCAtMjYsMTAg
KzI2LDEyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAi
SlNET01Qcm9taXNlRGVmZXJyZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
ZXZpY2VPcmllbnRhdGlvbkRhdGE7CitjbGFzcyBEb2N1bWVudDsKIAogY2xhc3MgRGV2aWNlT3Jp
ZW50YXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6CkBAIC02MCw2ICs2
MiwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0RGV2aWNlT3JpZW50YXRpb25FdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywgYm9vbCBjYW5jZWxhYmxlLCBPcHRp
b25hbDxkb3VibGU+IGFscGhhLCBPcHRpb25hbDxkb3VibGU+IGJldGEsIE9wdGlvbmFsPGRvdWJs
ZT4gZ2FtbWEsIE9wdGlvbmFsPGJvb2w+IGFic29sdXRlKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICBlbnVtIGNsYXNzIFBlcm1pc3Npb25TdGF0ZSB7IEdy
YW50ZWQsIERlbmllZCB9OworICAgIHVzaW5nIFBlcm1pc3Npb25Qcm9taXNlID0gRE9NUHJvbWlz
ZURlZmVycmVkPElETEVudW1lcmF0aW9uPFBlcm1pc3Npb25TdGF0ZT4+OworICAgIHN0YXRpYyB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiwgUGVybWlzc2lvblByb21pc2UmJik7Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KCk7CiAgICAgRGV2
aWNlT3JpZW50YXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNl
T3JpZW50YXRpb25EYXRhKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
T3JpZW50YXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25FdmVudC5pZGwKaW5kZXggMTNmZjdiYWRjMGU1OTExNjYzNTk1ZDE1ZDExZGJkNjBhMzMzOWZk
Yi4uNjkyOTlmYzVlNjI4MGVjMTEzZmMzMmM2NjAxOWIzZWNiZjQ3ZGIyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbApAQCAtMzAsNiArMzAsOCBA
QAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBiZXRhOwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBnYW1tYTsKIAorICAgIFtD
YWxsV2l0aD1Eb2N1bWVudCwgRW5hYmxlZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1p
c3Npb25BUEldIHN0YXRpYyBQcm9taXNlPFBlcm1pc3Npb25TdGF0ZT4gcmVxdWVzdFBlcm1pc3Np
b24oKTsKKwogICAgIC8vIEZJWE1FOiBDb25zaWRlciBkZWZpbmluZyBhbiBFTkFCTEUgbWFjcm8g
Zm9yIGlPUyBkZXZpY2Ugb3JpZW50YXRpb24gY29kZSBhbmQvb3IgbW9kaWZ5aW5nCiAgICAgLy8g
dGhlIGJpbmRpbmdzIHNjcmlwdHMgdG8gc3VwcG9ydCBnZW5lcmF0aW5nIG1vcmUgY29tcGxpY2F0
ZWQgY29uZGl0aW9uYWwgY29kZS4KICNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9JT1NfRkFNSUxZ
KSAmJiBXVEZfUExBVEZPUk1fSU9TX0ZBTUlMWQpAQCAtNTUsMyArNTcsNCBAQAogI2VuZGlmCiB9
OwogCitlbnVtIFBlcm1pc3Npb25TdGF0ZSB7ICJncmFudGVkIiwgImRlbmllZCIgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDE0MjkyNzg2Y2M4ZWZlZWY1YjFhMmZjMTVkYzcxMGJmZWMx
YzMxMTAuLjRmOGJkODJlZDcwNGNhYTBhODc2MzkxN2RmYTBhNjkxNWFjY2ZjODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtODYzOCw2ICs4NjM4LDU4IEBAIHZvaWQgRG9jdW1lbnQ6OmZy
YW1lV2FzRGlzY29ubmVjdGVkRnJvbU93bmVyKCkKICAgICBkZXRhY2hGcm9tRnJhbWUoKTsKIH0K
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKK2NvbnN0IE9wdGlvbmFsPGJvb2w+
JiBEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpIGNvbnN0Cit7CisgICAg
aWYgKCZ0b3BEb2N1bWVudCgpICE9IHRoaXMpCisgICAgICAgIHJldHVybiB0b3BEb2N1bWVudCgp
LmRldmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoKTsKKworICAgIHJldHVybiBtX2RldmljZU9y
aWVudGF0aW9uQWNjZXNzU3RhdGU7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnNldERldmljZU9yaWVu
dGF0aW9uQWNjZXNzU3RhdGUoYm9vbCBncmFudGVkKQoreworICAgIGlmICgmdG9wRG9jdW1lbnQo
KSAhPSB0aGlzKSB7CisgICAgICAgIHRvcERvY3VtZW50KCkuc2V0RGV2aWNlT3JpZW50YXRpb25B
Y2Nlc3NTdGF0ZShncmFudGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSA9IGdyYW50ZWQ7CisKKyAgICBpZiAoIWdyYW50ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byogZnJhbWUgPSBtX2ZyYW1lOyBmcmFt
ZSAmJiBmcmFtZS0+d2luZG93KCk7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQo
bV9mcmFtZSkpCisgICAgICAgIGZyYW1lLT53aW5kb3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZp
Y2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7Cit9CisKK2NvbnN0IE9wdGlvbmFsPGJvb2w+JiBE
b2N1bWVudDo6ZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdAoreworICAgIGlmICgmdG9w
RG9jdW1lbnQoKSAhPSB0aGlzKQorICAgICAgICByZXR1cm4gdG9wRG9jdW1lbnQoKS5kZXZpY2VN
b3Rpb25BY2Nlc3NTdGF0ZSgpOworCisgICAgcmV0dXJuIG1fZGV2aWNlTW90aW9uQWNjZXNzU3Rh
dGU7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKGJvb2wg
Z3JhbnRlZCkKK3sKKyAgICBpZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykgeworICAgICAgICB0
b3BEb2N1bWVudCgpLnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbV9kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSA9IGdyYW50
ZWQ7CisKKyAgICBpZiAoIWdyYW50ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0
byogZnJhbWUgPSBtX2ZyYW1lOyBmcmFtZSAmJiBmcmFtZS0+d2luZG93KCk7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS50cmF2ZXJzZU5leHQobV9mcmFtZSkpCisgICAgICAgIGZyYW1lLT53aW5kb3co
KS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworfQorCisjZW5k
aWYKKwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogV29ya2xldCYgRG9jdW1lbnQ6OmVu
c3VyZVBhaW50V29ya2xldCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc3OGMyMTMzYzU0
MzU3ZGQ2NzcxOTlkZjcxOTQxN2IzZWRlOTMxMWEuLmI4YjQ2OTFkMTU1MmQ4MTBiN2ZlYTM4Mzkw
MGZkOTgxMGIxZjFmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjE0LDEyICsxMjE0LDE5
IEBAIHB1YmxpYzoKICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvRG9jdW1lbnRJT1MuaD4KICNl
bmRpZgogCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciYgZGV2aWNlTW90aW9uQ29udHJvbGxl
cigpIGNvbnN0OwogICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciYgZGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzaW11bGF0
ZURldmljZU9yaWVudGF0aW9uQ2hhbmdlKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJs
ZSBnYW1tYSk7CiAjZW5kaWYKIAorICAgIGNvbnN0IE9wdGlvbmFsPGJvb2w+JiBkZXZpY2VPcmll
bnRhdGlvbkFjY2Vzc1N0YXRlKCkgY29uc3Q7CisgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1N0YXRlKGJvb2wgZ3JhbnRlZCk7CisgICAgY29uc3QgT3B0aW9uYWw8Ym9vbD4mIGRl
dmljZU1vdGlvbkFjY2Vzc1N0YXRlKCkgY29uc3Q7CisgICAgdm9pZCBzZXREZXZpY2VNb3Rpb25B
Y2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpOworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisKICAgICBjb25zdCBEb2N1bWVudFRpbWluZyYgdGltaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9kb2N1bWVudFRpbWluZzsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIG1vbm90
b25pY1RpbWVzdGFtcCgpIGNvbnN0OwpAQCAtMTgzMSw2ICsxODM4LDExIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2FyZUZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbiB7IGZhbHNlIH07CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgT3B0aW9uYWw8Ym9vbD4gbV9k
ZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlOworICAgIE9wdGlvbmFsPGJvb2w+IG1fZGV2aWNl
TW90aW9uQWNjZXNzU3RhdGU7CisjZW5kaWYKKwogICAgIEhhc2hTZXQ8SFRNTFBpY3R1cmVFbGVt
ZW50Kj4gbV92aWV3cG9ydERlcGVuZGVudFBpY3R1cmVzOwogICAgIEhhc2hTZXQ8SFRNTFBpY3R1
cmVFbGVtZW50Kj4gbV9hcHBlYXJhbmNlRGVwZW5kZW50UGljdHVyZXM7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCmluZGV4IDNhMGRjM2JiMDNkY2Q3MGJlOTRlZjRiOTg2MjFkOTc5NTYw
ZTdlYmEuLmQwMDlhODRkMmNiNzk4ZGFhOWU0YjkzOGRmMzZjMTNiZTJlNGViN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNDgyLDYgKzQ4MiwxMSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgLypzdWJGcmFtZUhvc3QqLywg
U3RyaW5nJiYgLyp0b3BGcmFtZUhvc3QqLywgdWludDY0X3QgLypmcmFtZUlEKi8sIHVpbnQ2NF90
IC8qcGFnZUlEKi8sIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJh
Y2spIHsgY2FsbGJhY2soZmFsc2UpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKFN0cmluZyYmIC8qc3ViRnJhbWVIb3N0Ki8sIFN0cmluZyYmIC8qdG9wRnJhbWVIb3N0
Ki8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCB1aW50NjRfdCAvKnBhZ2VJRCovLCBXVEY6OkNvbXBs
ZXRpb25IYW5kbGVyPHZvaWQgKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKGZhbHNlKTsg
fQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBTZWN1cml0eU9yaWdp
biYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxs
YmFjayh0cnVlKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNz
UGVybWlzc2lvbihjb25zdCBTZWN1cml0eU9yaWdpbiYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayh0cnVlKTsgfQorI2VuZGlmCisKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkSW5zZXJ0TWVudUVsZW1lbnQoSFRNTE1lbnVFbGVtZW50JikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZU1lbnVFbGVtZW50KEhUTUxNZW51RWxlbWVudCYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRNZW51SXRlbUVsZW1lbnQoSFRNTE1lbnVJ
dGVtRWxlbWVudCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGRmYTExMjQ4
NGEzYTQ3N2UzZGMwMjJhMzRjYTM0ZGYzZmZhOTNlMzIuLmE4MzU1ZDgyYmZiOGZlNWE3MjUyMmZj
NzRjOGE5NzI3NzMxYzBkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE4MjYs
NTAgKzE4MjYsMTM0IEBAIGJvb2wgRE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lCiAgICAgZWxzZSBpZiAoZXZl
bnROYW1lcygpLmlzR2FtZXBhZEV2ZW50VHlwZShldmVudFR5cGUpKQogICAgICAgICBpbmNyZW1l
bnRHYW1lcGFkRXZlbnRMaXN0ZW5lckNvdW50KCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2
aWNlb3JpZW50YXRpb25FdmVudCkKKyAgICAgICAgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmll
bnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkKKyAgICAgICAgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VN
b3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+
c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpICYmIGRvY3VtZW50KCkg
JiYgZG9jdW1lbnQoKS0+bG9hZGVyKCkgJiYgZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRldmljZU9y
aWVudGF0aW9uRXZlbnRFbmFibGVkKCkpIHsKKworRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
KiBET01XaW5kb3c6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0Cit7CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgaWYgKChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRldmljZW1vdGlvbkV2ZW50IHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNl
b3JpZW50YXRpb25FdmVudCkpIHsKLSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdp
bkFzTWFpbkZyYW1lKCkgJiYgaXNTZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQotICAg
ICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIo
KS5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS5h
ZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9j
dW1lbnQoKSkgewotICAgICAgICAgICAgICAgIGlmIChpc1NlY3VyZUNvbnRleHQoKSkKLSAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBk
ZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGZyb20gY2hpbGQgZnJhbWUgdGhh
dCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UuIl9zKTsK
LSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcs
ICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBs
aXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIl9zKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIHJldHVybiBkb2N1bWVudCgpID8gJmRvY3Vt
ZW50KCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIDogbnVsbHB0cjsKICNlbHNlCi0g
ICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSB7
Ci0gICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpICYmIGlz
U2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKERldmljZU1vdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkp
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIo
KnRoaXMpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIGZyb20g
Y2hpbGQgZnJhbWUgdGhhdCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBt
YWluIHBhZ2UuIl9zKTsKLSAgICAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpIHsKLSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1
cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkgJiYgaXNTZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNTZWN1cmVDb250ZXh0KCkpCi0gICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEg
ZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIGZyb20gY2hpbGQgZnJhbWUgdGhhdCB3YXNuJ3Qg
dGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UuIl9zKTsKLSAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2Vk
IGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBi
ZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIl9zKTsKLSAgICAgICAg
ICAgIH0KKyAgICByZXR1cm4gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2Uo
KSk7CisjZW5kaWYKK30KKworRGV2aWNlTW90aW9uQ29udHJvbGxlciogRE9NV2luZG93OjpkZXZp
Y2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3QKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIHJldHVybiBkb2N1bWVudCgpID8gJmRvY3VtZW50KCktPmRldmljZU1vdGlvbkNvbnRyb2xs
ZXIoKSA6IG51bGxwdHI7CisjZWxzZQorICAgIHJldHVybiBEZXZpY2VNb3Rpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSk7CisjZW5kaWYKK30KKworYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRv
VXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAoreworICAg
IGlmICghZnJhbWUoKSB8fCAhZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2
ZW50RW5hYmxlZCgpIHx8ICFkb2N1bWVudCgpIHx8ICFkb2N1bWVudCgpLT5sb2FkZXIoKSB8fCAh
ZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkpIHsK
KyAgICAgICAgbWVzc2FnZSA9ICJBUEkgaXMgZGlzYWJsZWQiX3M7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAgICAgIG1l
c3NhZ2UgPSAiQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlIl9zOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZy
YW1lKCkpIHsKKyAgICAgICAgbWVzc2FnZSA9ICJTb3VyY2UgZnJhbWUgZGlkIG5vdCBoYXZlIHRo
ZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlIl9zOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitib29sIERPTVdpbmRvdzo6
aXNBbGxvd2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKGNvbnN0IFN0cmlu
ZyYgZXZlbnRUeXBlLCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Cit7CisgICAgU3RyaW5nIGlubmVy
TWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24o
aW5uZXJNZXNzYWdlKSkgeworICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiQmxvY2tlZCBh
dHRlbXB0IHRvIGFkZCBhICIsIGV2ZW50VHlwZSwgIiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiAi
LCBpbm5lck1lc3NhZ2UsICIuIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICBpZiAoZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElF
bmFibGVkKCkpIHsKKyAgICAgICAgYXV0byBwZXJtaXNzaW9uU3RhdGUgPSAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSA/IGRvY3VtZW50KCktPmRldmlj
ZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoKSA6IGRvY3VtZW50KCktPmRldmljZU1vdGlvbkFjY2Vz
c1N0YXRlKCk7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgJiYgISpwZXJtaXNzaW9uU3Rh
dGUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJObyAiLCBldmVudFR5cGUs
ICIgZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJ
IHdhcyBkZW5pZWQuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KLSNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkKLSAgICAgICAgZmFpbGVkVG9SZWdpc3Rl
ckRldmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKLSNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorICAgICAgICBpZiAoIXBlcm1pc3Npb25TdGF0ZSkgeworICAgICAgICAgICAg
bWVzc2FnZSA9IG1ha2VTdHJpbmcoIk5vICIsIGV2ZW50VHlwZSwgIiBldmVudHMgd2lsbCBiZSBm
aXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4iKTsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHJldHVy
biB0cnVlOwogfQogCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgRE9NV2lu
ZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQorewor
ICAgIGlmICghaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9u
RXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkZXZpY2VDb250cm9sbGVyID0g
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCk7CisgICAgaWYgKCFkZXZpY2VDb250cm9sbGVy
IHx8IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghaXNBbGxv
d2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKGV2ZW50TmFtZXMoKS5kZXZp
Y2VvcmllbnRhdGlvbkV2ZW50LCBlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGlmIChhdXRvKiBk
b2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJy
b3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xs
ZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6
c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQoreworICAgIGlm
IChoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkpCisgICAgICAgIGRldmljZUNvbnRyb2xsZXItPnJl
bW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3Rh
cnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKCFoYXNF
dmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2aWNlTW90aW9uQ29udHJv
bGxlcigpOworICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5o
YXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3Jp
ZW50YXRpb25MaXN0ZW5lcihldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQsIGVycm9yTWVz
c2FnZSkpIHsKKyAgICAgICAgZmFpbGVkVG9SZWdpc3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVu
ZXIoKTsKKyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKKyAg
ICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywg
TWVzc2FnZUxldmVsOjpXYXJuaW5nLCBlcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZGV2aWNlQ29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhp
cyk7Cit9CisKK3ZvaWQgRE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZO
ZWNlc3NhcnkoKQoreworICAgIGlmIChoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2
aWNlbW90aW9uRXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogZGV2aWNl
Q29udHJvbGxlciA9IGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSkKKyAgICAgICAgZGV2aWNlQ29u
dHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9CiAKIHZvaWQgRE9N
V2luZG93OjpmYWlsZWRUb1JlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpCiB7CkBA
IC0xOTQxLDIyICsyMDI1LDYgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICAgICAgcmVt
b3ZlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLmJlZm9yZXVubG9hZEV2ZW50ICYmIGFsbG93c0JlZm9yZVVubG9hZExpc3Rl
bmVycyh0aGlzKSkKICAgICAgICAgcmVtb3ZlQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlz
KTsKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25F
dmVudCAmJiBkb2N1bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250
cm9sbGVyKCkucmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgZWxzZSBpZiAo
ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYmIGRvY3Vt
ZW50KCkpCi0gICAgICAgIGRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigp
LnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotI2Vsc2UKLSAgICBlbHNlIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSB7Ci0gICAgICAgIGlm
IChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNl
RXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnRO
YW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpIHsKLSAgICAgICAgaWYgKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZl
bnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xsRXZl
bnQpCiAgICAgICAgIGRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKTsKQEAgLTE5
NzcsNiArMjA0NSwxMiBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogICAgIGVsc2UgaWYgKGV2
ZW50TmFtZXMoKS5pc0dhbWVwYWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgZGVjcmVt
ZW50R2FtZXBhZEV2ZW50TGlzdGVuZXJDb3VudCgpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRl
dmljZW9yaWVudGF0aW9uRXZlbnQpCisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmll
bnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1v
dGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjA1
OSwxOCArMjEzMyw5IEBAIHZvaWQgRE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygp
CiAgICAgRXZlbnRUYXJnZXQ6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYg
KERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgZG9jdW1l
bnQtPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVy
cygqdGhpcyk7Ci0gICAgICAgIGRvY3VtZW50LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIo
KS5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycygqdGhpcyk7Ci0gICAgfQotI2Vsc2UKLSAg
ICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNv
bnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2
aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFn
ZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMo
KnRoaXMpOwotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8gRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVu
dGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlv
bklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
aWYgKG1fc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApp
bmRleCBiYmJmYTk1ODcyZTRhMzNlNzM0MjUyODFlNGFjY2I0ZjcwNTliMWM0Li5iZjQzM2Q2OTM4
ZmNmZTNiZmQ1NDEyMDRlOGQ3NTM3ZWZjMzYwMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
QEAgLTgyLDYgKzgyLDExIEBAIGNsYXNzIFZpc3VhbFZpZXdwb3J0OwogY2xhc3MgV2ViS2l0TmFt
ZXNwYWNlOwogY2xhc3MgV2ViS2l0UG9pbnQ7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorY2xhc3MgRGV2aWNlTW90aW9uQ29udHJvbGxlcjsKK2NsYXNzIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcjsKKyNlbmRpZgorCiBzdHJ1Y3QgSW1hZ2VCaXRtYXBPcHRpb25zOwogc3Ry
dWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTEsNiArMzE2LDE5IEBAIHB1YmxpYzoKICAgICB1
bnNpZ25lZCBzY3JvbGxFdmVudExpc3RlbmVyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9s
bEV2ZW50TGlzdGVuZXJDb3VudDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVj
ZXNzYXJ5KCk7CisgICAgdm9pZCBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5l
Y2Vzc2FyeSgpOworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vz
c2FyeSgpOworICAgIHZvaWQgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5
KCk7CisKKyAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3Ry
aW5nJiBtZXNzYWdlKSBjb25zdDsKKyAgICBib29sIGlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9u
T3JpZW50YXRpb25MaXN0ZW5lcihjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgU3RyaW5nJiBtZXNz
YWdlKSBjb25zdDsKKworICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKCkgY29uc3Q7CisgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciog
ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0OworI2VuZGlmCisKICAgICB2b2lkIHJlc2V0
QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9uKCk7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5U
UykgfHwgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuY3BwCmluZGV4IDMzNjdkM2RiZjU5ZmMzMzU3MjQ5NzU4YWM2M2RkMTcyNWUw
NzYzNjYuLjg0MmI4NTRlZTI1MTI1OGE0MTA2MmJmZTBkMDY1NDRlZGIzYzZmYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcApAQCAtNjksNiArNjksMTEgQEAgdm9p
ZCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyhET01XaW5k
b3cmIHdpbmRvdykKICAgICAgICAgbV9jbGllbnQuc3RvcFVwZGF0aW5nKCk7CiB9CiAKK2Jvb2wg
RGV2aWNlQ29udHJvbGxlcjo6aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRv
dykgY29uc3QKK3sKKyAgICByZXR1cm4gbV9saXN0ZW5lcnMuY29udGFpbnMoJndpbmRvdyk7Cit9
CisKIHZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudChFdmVudCYgZXZl
bnQpCiB7CiAgICAgZm9yIChhdXRvJiBsaXN0ZW5lciA6IGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVy
cy52YWx1ZXMoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKaW5kZXgg
ZTE2MDM4NWFmZTJmOTczNTNjMGVhMjJmMjllODU2ZjE4ZTIwYjFhOC4uM2Q1ZjkwYzUwZWU0YTU0
ZmMwYWQxN2M2NDczNWRkNjkzODczZmZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EZXZpY2VDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250
cm9sbGVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkRGV2aWNlRXZl
bnRMaXN0ZW5lcihET01XaW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZURldmljZUV2ZW50TGlzdGVu
ZXIoRE9NV2luZG93Jik7CiAgICAgdm9pZCByZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyhE
T01XaW5kb3cmKTsKKyAgICBib29sIGhhc0RldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jikg
Y29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQoRXZlbnQmKTsKICAgICBib29s
IGlzQWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy55YW1sCmluZGV4IDMwM2Q3ZjgyZDRiMzdmZGJhMWI3ZjJkZDRhOGRhMjU3ZThh
Yjk3N2MuLmU4MjRkZjc2YTg0MmYzMjA3ZmFlMGVjZTY0NDRlOWUyZjI0NWVmZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTc2NCw2ICs3NjQsMTEgQEAgZGV2aWNlT3JpZW50YXRp
b25FdmVudEVuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKICAgY29uZGl0aW9uYWw6IERFVklDRV9P
UklFTlRBVElPTgogCitkZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkOgorICB0
eXBlOiBib29sCisgIGluaXRpYWw6IGZhbHNlCisgIGNvbmRpdGlvbmFsOiBERVZJQ0VfT1JJRU5U
QVRJT04KKwogc2hvdWxkRW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdDoKICAgdHlwZTogYm9vbAog
ICBpbml0aWFsOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
aW5kZXggZjU1ODQzMjU5MGZiZGViNjg5NzkzZTBiNDliMjY3Nzg0MTY3ZDJlYS4uODQ5MzFhZGY5
MjIyNmRhMDQyNmQ3MTJhMzE0ZGNlOGM4YWY2M2ZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMiw2ICsxMiwxNSBAQCBEZXZpY2VPcmllbnRhdGlvbkV2
ZW50RW5hYmxlZDoKICAgY29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICB3
ZWJjb3JlTmFtZTogZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQKIAorRGV2aWNlT3JpZW50
YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6
IGZhbHNlCisgIGNvbmRpdGlvbjogRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgd2ViY29y
ZU5hbWU6IGRldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQKKyAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJQZXJtaXNzaW9uIEFQSSBmb3IgZGV2aWNlIG9yaWVudGF0aW9uIC8gbW90aW9u
IGFjY2Vzcy4iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkRldmljZU9yaWVudGF0aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSAvIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogSmF2YVNjcmlwdEVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDNlYzZmMDBkMjRmYzkzOTQyNjkwYTNlNzI5ZmQw
N2VkN2EzYWE2YzcuLmZhOTlkYzVhNjkzOGM2YWYxZDdjNTQzOWMwZGJkZjI0NTRhMzlmNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0xNzMsNiArMTcz
LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKFdlYktp
dDo6V2ViUGFnZVByb3h5KikgeyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Bl
cm1pc3Npb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhh
bmRsZXIodHJ1ZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmljZU1vdGlvbkFjY2Vz
c1Blcm1pc3Npb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlv
bkhhbmRsZXIodHJ1ZSk7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRpZENsaWNrQXV0
b0ZpbGxCdXR0b24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBPYmplY3QqKSB7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2Uo
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBPYmplY3QqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGE0MTY3NjZlMmIzODNlMWI1MTQ0OGZjOWNjNDAyYzAx
ZjFiZWIzYWEuLjFmZjRjZWI0MzM1YmY0OGFhOTJlNzMyZDgxMDYzMGRkZjM0MzEyZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTE1LDcgKzExNSw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7
CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNl
PiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xp
ZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50
VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50Vjcs
IFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBX
S1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTI+IFZlcnNpb25zOworICAgIHR5cGVk
ZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VV
SUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNs
aWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVu
dFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRW
MTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMz4gVmVyc2lvbnM7CiB9Owog
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0xOTAzLDYgKzE5MDMsMjQgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xp
ZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LnJlcXVlc3RTdG9yYWdlQWNj
ZXNzQ29uZmlybSh0b0FQSSgmcGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkocmVxdWVzdGluZ0Rv
bWFpbi5pbXBsKCkpLCB0b0FQSShjdXJyZW50RG9tYWluLmltcGwoKSksIHRvQVBJKGxpc3RlbmVy
LnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50
YXRpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBmaW5hbAorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnJlcXVl
c3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24pCisgICAgICAgICAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtX2NsaWVudC5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKHRv
QVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOwor
ICAgICAgICB9CisKKyAgICAgICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlz
c2lvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5yZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbikKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
dHJ1ZSk7CisKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fY2xpZW50LnJlcXVlc3RE
ZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiks
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOworICAgICAgICB9CisjZW5kaWYKKwogICAgICAg
ICAvLyBQcmludGluZy4KICAgICAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSYg
cGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUpIGZpbmFsCiAgICAgICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDVlNTk3M2Y5YWIx
OGI0NmE2NWVmZTA4ZWRmNWYzNTA3YTc3NWRmMGIuLjc0NzY4ZDRhMWRlNDFmYzhlMDk2MjY0ZmY4
ZWY2OWY2MzE5NTBhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlVUlDbGllbnQuaApAQCAtMTM0LDYgKzEzNCw4IEBAIHR5cGVkZWYgdm9pZCAoKldLRGlkTG9z
ZVBvaW50ZXJMb2NrQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJ
CiB0eXBlZGVmIHZvaWQgKCpXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBib29sIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLRGlkRXhjZWVkQmFja2dy
b3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgV0tSZXNvdXJjZUxpbWl0IGxpbWl0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFy
YW5jZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldLUGFnZVJlcXVlc3REZXZpY2VPcmll
bnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJp
dHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlw
ZWRlZiBib29sICgqV0tQYWdlUmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFn
ZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZp
ZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKQEAgLTExNDAsNiArMTE0MiwxMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQ
YWdlVUlDbGllbnRWMTIgewogICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25m
aXJtOwogfSBXS1BhZ2VVSUNsaWVudFYxMjsKIAordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGll
bnRWMTMgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBX
S1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAg
ICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1Bh
Z2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZv
Y3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7
CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMCAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjAgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjA7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAg
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1Bh
Z2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7
CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RI
YW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp
ZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7
CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVu
dUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAg
ICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJ
c1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1
c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNl
dElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBX
S1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjYgICAgcnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjY7CisgICAgV0tQYWdlVUlDbGllbnRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRE
cmF3OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VFeGNlZWRlZERh
dGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsKKyAgICBXS1Bh
Z2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAg
ICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAg
V0tQYWdlSGVhZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVySGVpZ2h0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJIZWlnaHQ7Cisg
ICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFnZURyYXdGb290ZXJDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zvb3RlcjsKKyAg
ICBXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKKyAgICB2
b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9y
TWFpbkZyYW1lCisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVy
OworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZTsK
KworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMSAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMTsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3Q7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VTaG93
Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNob3dDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKKyAgICBX
S1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsKKworICAgIC8vIFZlcnNp
b24gMy4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVy
c2lvbiA0LgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsgLy8gVXNlZCB0byBiZSBkaWRCZWdpblRy
YWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQzOyAv
LyBVc2VkIHRvIGJlIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzLgorICAgIHZvaWQqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW51c2VkNDsgLy8gVXNlZCB0byBiZSBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3Vz
ZVByZXNzLgorICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7CisKKyAgICAv
LyBWZXJzaW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENsaWNrQXV0b0ZpbGxCdXR0b247Cisg
ICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
NSAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsK
KyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjUgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjUgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjU7CisgICAgV0tQYWdlTWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZTsKKwor
ICAgIC8vIFZlcnNpb24gNi4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQ
YWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZp
cm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0
Q29uZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9u
IDcuCisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tG
dWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDgu
CisgICAgV0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRl
ckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRM
b3NlUG9pbnRlckxvY2s7CisKKyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxh
eUV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5k
bGVBdXRvcGxheUV2ZW50OworCisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5Q
aWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhh
c1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dy
b3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhj
ZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZl
cnNpb24gMTEuCisgICAgV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRB
cHBlYXJhbmNlQ2FsbGJhY2sgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNz
d29yZEFwcGVhcmFuY2U7CisKKyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RT
dG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1Bh
Z2VSZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uQ2FsbGJhY2sgICAgICAg
ICAgICAgIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb247CisgICAgV0tQ
YWdlUmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbjsKK30gV0tQYWdlVUlD
bGllbnRWMTM7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKaW5kZXggZGEwMzE0YWUz
ZjU4Y2JkZTk4MDI4ZTI3Mjg5ZWFkNDRkNmQzNDJiYi4uM2E3NTU4N2RhMmY5YzYzNmUyMzlhY2Nh
MWM1MTFmODNhYmEyZGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGUuaApAQCAtMzQsNiArMzQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgogQGNsYXNzIFdLTmF2aWdhdGlvbkFjdGlvbjsKIEBjbGFzcyBXS09wZW5QYW5lbFBhcmFt
ZXRlcnM7CiBAY2xhc3MgV0tQcmV2aWV3RWxlbWVudEluZm87CitAY2xhc3MgV0tTZWN1cml0eU9y
aWdpbjsKIEBjbGFzcyBXS1dlYlZpZXc7CiBAY2xhc3MgV0tXZWJWaWV3Q29uZmlndXJhdGlvbjsK
IEBjbGFzcyBXS1dpbmRvd0ZlYXR1cmVzOwpAQCAtMTUxLDYgKzE1MiwyMiBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
Y29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmll
d2luZ1ZpZXdDb250cm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIAorLyohIEBh
YnN0cmFjdCBBbGxvd3MgeW91IGFwcCB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIGdp
dmVuIHNlY3VyaXR5IG9yaWdpbiBzaG91bGQgaGF2ZSBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9y
aWVudGF0aW9uLgorIEBwYXJhbSBzZWN1cml0eU9yaWdpbiBUaGUgc2VjdXJpdHkgb3JpZ2luIHdo
aWNoIHJlcXVlc3RlZCBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9yaWVudGF0aW9uLgorIEBwYXJh
bSBkZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCBvbmNlIHRoZSBh
cHAgaGFzIG1hZGUgaXRzIGRlY2lzaW9uLiBQYXNzIFlFUyB0byBhbGxvdyB0byBvcmlnaW4gYWNj
ZXNzLCBOTyBvdGhlcndpc2UuCisKKyBJZiB5b3UgZG8gbm90IGltcGxlbWVudCB0aGlzIG1ldGhv
ZCwgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBvcmllbnRhdGlvbiB3aWxsIGJlIGdyYW50ZWQuCisg
Ki8KKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46KFdLU2VjdXJpdHlPcmln
aW4gKilzZWN1cml0eU9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lz
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKKy8qISBAYWJz
dHJhY3QgQWxsb3dzIHlvdSBhcHAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZl
biBzZWN1cml0eSBvcmlnaW4gc2hvdWxkIGhhdmUgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBtb3Rp
b24uCisgQHBhcmFtIHNlY3VyaXR5T3JpZ2luIFRoZSBzZWN1cml0eSBvcmlnaW4gd2hpY2ggcmVx
dWVzdGVkIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3MgbW90aW9uLgorIEBwYXJhbSBkZWNpc2lvbkhh
bmRsZXIgVGhlIGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCBvbmNlIHRoZSBhcHAgaGFzIG1hZGUg
aXRzIGRlY2lzaW9uLiBQYXNzIFlFUyB0byBhbGxvdyB0byBvcmlnaW4gYWNjZXNzLCBOTyBvdGhl
cndpc2UuCisKKyBJZiB5b3UgZG8gbm90IGltcGxlbWVudCB0aGlzIG1ldGhvZCwgYWNjZXNzIHRv
IHRoZSBkZXZpY2UncyBtb3Rpb24gd2lsbCBiZSBncmFudGVkLgorICovCistICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Np
b25Gb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKwogI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKIAog
I2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLmgKaW5kZXggY2NiNzhhMjllMmE0YzJmZjE2ZDQyNTI1YWU1ZTQ2MGE3ODliYjdhMy4u
ZWY3MTY4YTNhNTAyNGVkZTE4ODY5ZDY4M2I4OTNlMTI3YTQ0NThhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTE5LDYgKzExOSwxMCBAQCBwcml2
YXRlOgogICAgICAgICBib29sIHJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVBy
b3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVuUGFuZWxQ
YXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIGZpbmFsOwogICAg
ICAgICB2b2lkIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91
bmQoV2ViUGFnZVByb3h5JiwgV0tSZXNvdXJjZUxpbWl0KSBmaW5hbDsKICAgICAgICAgdm9pZCBz
YXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6
U3RyaW5nJiwgY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBVUkwmLCBBUEk6OkRhdGEmKSBmaW5h
bDsKKyNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIHZvaWQg
cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlz
c2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICNlbmRpZgogICAgICAgICBib29sIG5l
ZWRzRm9udEF0dHJpYnV0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VpRGVsZWdhdGUubV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOyB9CiAgICAgICAg
IHZvaWQgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0
ZXMmKSBmaW5hbDsKQEAgLTE4Nyw2ICsxOTEsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3
ZWJWaWV3U2F2ZURhdGFUb0ZpbGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdV
UkwgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0lu
aXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmll
d1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhh
bmRsZXIgOiAxOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAg
ICAgYm9vbCB3ZWJWaWV3UmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbkZv
clNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3
UmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lz
aW9uSGFuZGxlciA6IDE7CiAjZW5kaWYKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJh
c2VRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3Vy
cmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAg
ICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJh
c2VOYW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0
YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgOiAxOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggYjVhMGE1MDhiYzk5NmQzYzlh
OTdmOTNhZjNlYTNmOTI1MDk3ZjY2NS4uOTMzMDcwY2UzNGI3M2M2ZDNhNmY0NmZkNzFlMWE4MTAy
N2FlNDQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CkBAIC0xMzIsNiArMTMyLDEwIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdL
VUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1NhdmVE
YXRhVG9GaWxlU3VnZ2VzdGVkRmlsZW5hbWVNaW1lVHlwZU9yaWdpbmF0aW5nVVJMID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2F2ZURhdGFUb0ZpbGU6
c3VnZ2VzdGVkRmlsZW5hbWU6bWltZVR5cGU6b3JpZ2luYXRpbmdVUkw6KV07CiAgICAgbV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld1J1bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzSW5pdGlhdGVkQnlG
cmFtZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3Iod2ViVmlldzpydW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyczppbml0aWF0ZWRCeUZyYW1l
OmNvbXBsZXRpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1
ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVz
dE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6
KV07CisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9u
Rm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Bl
cm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRm9y
U2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
Rm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOildOwogI2VuZGlmCiAgICAgbV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1
cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRV
c2FnZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OmRlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpjdXJyZW50
UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4cGVjdGVkVXNh
Z2U6ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNp
ZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5EYXRhYmFzZU5hbWVEaXNwbGF5TmFtZUN1
cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRV
c2FnZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OmRlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFz
ZU5hbWU6ZGlzcGxheU5hbWU6Y3VycmVudFF1b3RhOmN1cnJlbnRPcmlnaW5Vc2FnZTpjdXJyZW50
RGF0YWJhc2VVc2FnZTpleHBlY3RlZFVzYWdlOmRlY2lzaW9uSGFuZGxlcjopXTsKQEAgLTg0NCw2
ICs4NDgsNDUgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuT3BlblBhbmVsKFdlYlBh
Z2VQcm94eSosIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHIKIH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKwordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVx
dWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV91aURlbGVn
YXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nl
c3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIpCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21w
bGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rv
cih3ZWJWaWV3OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1
cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pZGVsZWdhdGUgd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IHJlcXVlc3REZXZp
Y2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjp3cmFwcGVyKHNl
Y3VyaXR5T3JpZ2luKSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVj
a2VyKV0gKEJPT0wgZ3JhbnRlZCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChjaGVja2VyLT5jb21w
bGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGdyYW50ZWQpOworICAgIH0pLmdldCgpXTsKK30KKwordm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViS2l0OjpX
ZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAo
IW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdERldmljZU1vdGlv
bkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcikKKyAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgYXV0byBkZWxlZ2F0ZSA9
IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8gY2hlY2tlciA9
IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNl
bGVjdG9yKHdlYlZpZXc6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25Gb3JTZWN1
cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pZGVsZWdhdGUgd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IHJlcXVlc3REZXZp
Y2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46d3JhcHBlcihzZWN1cml0
eU9yaWdpbikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcild
IChCT09MIGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlv
bkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNo
ZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihncmFudGVkKTsKKyAgICB9KS5nZXQoKV07Cit9CisjZW5kaWYKKwogdm9pZCBVSURlbGVn
YXRlOjpVSUNsaWVudDo6ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9u
dEF0dHJpYnV0ZXMmIGZvbnRBdHRyaWJ1dGVzKQogewogICAgIGlmICghbmVlZHNGb250QXR0cmli
dXRlcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMjQ1
NTBlNDlkOGNmMWRlNDg4Yjk3NTJlMTJhYjMwM2YxY2YzNTMwMC4uMWQxMmU1MWNiY2RlNGM0ZDUx
YjRiYTdjNjI3YzYwMjc3ZmRkMGQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC03MTY4LDYgKzcxNjgsMjggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFy
VXNlck1lZGlhU3RhdGUoKQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Bl
cm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgdWludDY0
X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShvcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpOworICAgIG1fdWlDbGllbnQtPnJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oKnRoaXMsIG9yaWdpbi5nZXQo
KSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjYWxsYmFja0lEXShib29s
IGdyYW50ZWQpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhaXNWYWxpZCgpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbk1vdGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lv
bihjYWxsYmFja0lELCBncmFudGVkKSwgbV9wYWdlSUQpOworICAgIH0pOworfQorCit2b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sK
KyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRh
LnNlY3VyaXR5T3JpZ2luKCkpOworICAgIG1fdWlDbGllbnQtPnJlcXVlc3REZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uKCp0aGlzLCBvcmlnaW4uZ2V0KCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2tJRF0oYm9vbCBncmFudGVkKSB7CisgICAgICAgIGlm
ICghd2Vha1RoaXMgfHwgIWlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
bV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlRGV2aWNlT3JpZW50
YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRGVjaXNpb24oY2FsbGJhY2tJRCwgZ3JhbnRlZCks
IG1fcGFnZUlEKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJp
bmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElE
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjE1NWQxNDJlNDRm
YmE1NDQ1OGJjNzFmNTM5MWJlNmUwOWI0ZTgwMy4uMzI3NDMyZDljZjg1OGM1YjVmNWRjZjZmYTc2
YzZkZThkMTU4YWNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTE0MDEsNiArMTQwMSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWlu
LCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2
NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgcmVxdWVzdERldmljZU9y
aWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwg
dWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNz
UGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CisjZW5kaWYKKwogICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJhbFdl
YlBhZ2VQcm94eSgpOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBlODY0
ZDRhOTZmYjY3ZjlhNTNmMWQ2MDljNjlmNzc2NTIxMzg0YTAwLi5hMDU5N2U5YzA4YjYzNjI5NjNi
ZGI1NWQyZDM2MWYzOTI0OWZlNzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01MzIsNiArNTMyLDExIEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAgICAgU3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklk
ZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKQogICAgIExvYWRTeW5jaHJvbm91c1VS
TFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMgcGFyYW1l
dGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZXJyb3IsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKSBEZWxheWVkCiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFJlcXVlc3REZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1Blcm1pc3Npb24oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmln
aW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIFJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVO
VCkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJvbURhdGEoU3RyaW5nIGlkZW50
aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIHByZWZlcnJlZEZpbGVOYW1lLCBJUEM6
OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJ
ZGVudGlmaWVyRnJvbUZpbGVQYXRoKFN0cmluZyBpZGVudGlmaWVyLCBTdHJpbmcgY29udGVudFR5
cGUsIFN0cmluZyBmaWxlUGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNjdmZDdhNzIw
Y2UyZjMzOTc3MDM1MTQ4YmRiZDJjZWZhN2M3ZmQzNS4uN2Y1MDU3MGRjNGEzZDBmZTFkMDU5ZmZk
OTVlODJjYjFjNjM5NWM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEzMjAsNCArMTMy
MCwxNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5n
JiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3REZXZpY2VP
cmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3BhZ2Uu
cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUo
Y2FsbGJhY2spKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3REZXZpY2VNb3Rp
b25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7CisgICAgbV9wYWdlLnJlcXVlc3RE
ZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKG9yaWdpbiwgV1RGTW92ZShjYWxsYmFjaykpOwor
fQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IGY5MjZhMjU4YWQ4NWFiMDc3OTE2ZDBjYjIzNTI4NGQ4ZWIzYmRhYTcuLjMwMzQzZGVmMWVmNWZm
Mjk1OWM0MDBlM2Y0OGE0NjU3YWU3ZGI5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Niw2
ICszNjYsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmlu
ZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBwYWdlSUQsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYp
IGZpbmFsOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZv
aWQgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFs
OworICAgIHZvaWQgcmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBm
aW5hbDsKKyNlbmRpZgorCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxl
IFJlZlB0cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKICAgICBtdXRh
YmxlIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
ODk2ODc2MGY5ZTRlNjZmYTFmNGQ1OTE2NmE3MmU3MDkxMjg0OWUwZS4uYjViZTcwMzJkZjMzNWUz
NzNhYTllNThkZGI4Y2UyMTdkMGNjMTIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYzNTQsNiArNjM1NCwzOSBAQCB2b2lkIFdlYlBhZ2U6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9w
RnJhbWVIb3N0LAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNz
aW9uSUQoKSwgUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHN1YkZy
YW1lSG9zdCksIFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdCh0b3BG
cmFtZUhvc3QpLCBmcmFtZUlELCBtX3BhZ2VJRCwgcHJvbXB0RW5hYmxlZCksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KICNlbmRpZgorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKK3N0YXRpYyB1aW50NjRfdCBuZXh0RGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJtaXNz
aW9uQ2FsbGJhY2tJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IG5leHRDYWxsYmFja0lEID0g
MDsKKyAgICByZXR1cm4gKytuZXh0Q2FsbGJhY2tJRDsKK30KKwordm9pZCBXZWJQYWdlOjpyZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJh
Y2spCit7CisgICAgYXV0byBjYWxsYmFja0lEID0gbmV4dERldmljZU9yaWVudGF0aW9uTW90aW9u
UGVybWlzc2lvbkNhbGxiYWNrSUQoKTsKKyAgICBBU1NFUlQoIW1fZGV2aWNlT3JpZW50YXRpb25N
b3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tNYXAuY29udGFpbnMoY2FsbGJhY2tJRCkpOworICAgIG1f
ZGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tNYXAuYWRkKGNhbGxiYWNr
SUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihvcmlnaW4uZGF0YSgp
LCBjYWxsYmFja0lEKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdERldmljZU1vdGlvbkFj
Y2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvIGNhbGxi
YWNrSUQgPSBuZXh0RGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCgp
OworICAgIEFTU0VSVCghbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFj
a01hcC5jb250YWlucyhjYWxsYmFja0lEKSk7CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlv
blBlcm1pc3Npb25DYWxsYmFja01hcC5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykp
OworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0RGV2aWNlTW90aW9u
QWNjZXNzUGVybWlzc2lvbihvcmlnaW4uZGF0YSgpLCBjYWxsYmFja0lEKSk7Cit9CisKK3ZvaWQg
V2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9uQWNjZXNzUGVybWlzc2lv
bkRlY2lzaW9uKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCkKK3sKKyAgICBhdXRv
IGNhbGxiYWNrID0gbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01h
cC50YWtlKGNhbGxiYWNrSUQpOworICAgIEFTU0VSVChjYWxsYmFjayk7CisgICAgY2FsbGJhY2so
Z3JhbnRlZCk7Cit9CisjZW5kaWYKICAgICAKIHN0YXRpYyBTaGFyZVNoZWV0Q2FsbGJhY2tJRCBu
ZXh0U2hhcmVTaGVldENhbGxiYWNrSUQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IGQyMWVhZmJjNTIzNTJjMjU3Mjc5ZjhmMzJlYTY1NjM5MDhl
YjZhOTIuLjQ0ODdiMDE2MjgxMGViNGJjZjI5ZjBkYWVmNGUxNWE3ZTUwNmZkM2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTExMTEsNiArMTExMSwx
MSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJG
cmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25B
Y2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2VuZGlmCisKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0
KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIHZvaWQgZGlkQ29tcGxldGVTaGFyZVNoZWV0
KGJvb2wgd2FzQ29tcGxldGVkLCBTaGFyZVNoZWV0Q2FsbGJhY2tJRCBjb250ZXh0SWQpOwogICAg
IApAQCAtMTIwNyw2ICsxMjEyLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0QWRkaXRp
b25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24pOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgZGlkUmVjZWl2ZURl
dmljZU9yaWVudGF0aW9uTW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGNh
bGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCk7CisjZW5kaWYKKwogI2lmICFQTEFURk9STShDT0NPQSkg
JiYgIVBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZl
bnQoY29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwogI2VuZGlmCkBAIC0xODM3LDYgKzE4
NDYsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZv
aWQoYm9vbCBncmFudGVkKT4+IG1fc3RvcmFnZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tNYXA7CiAg
ICAgSGFzaE1hcDxTaGFyZVNoZWV0Q2FsbGJhY2tJRCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wg
Y29tcGxldGVkKT4+IG1fc2hhcmVTaGVldFJlc3BvbnNlQ2FsbGJhY2tNYXA7CiAKKyNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sIGdyYW50ZWQpPj4gbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlv
blBlcm1pc3Npb25DYWxsYmFja01hcDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9O
X01BTklGRVNUKQogICAgIEhhc2hNYXA8dWludDY0X3QsIHVpbnQ2NF90PiBtX2FwcGxpY2F0aW9u
TWFuaWZlc3RGZXRjaENhbGxiYWNrTWFwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBjYjBiNTcwOTMz
NjRjMGU1NTQyNDNmOTMwOWMzOTI1ZDU0OGFmNGYwLi42ZGM5YmU0OTczMWFmMmJlMmE1ZGQzMDBk
MjA0OTA3YWExNTFjMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM2NCw2ICszNjQsMTAgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklELCBib29sIGFsbG93ZWQpCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IERpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbk1vdGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lv
bih1aW50NjRfdCBjYWxsYmFja0lELCBib29sIGdyYW50ZWQpCisjZW5kaWYKKwogICAgICMgUHJp
bnRpbmcuCiAgICAgQmVnaW5QcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvKQogICAgIEVuZFByaW50aW5nKCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMWQwNjEwZDExOWY2NTMxNzUw
NWNmYTdiN2M4ZDk5Y2M2NDEzNzUzLi43MjQwNjEyODlkYTJjMDllZDRlMjYzY2VhZjcwODkxYzZk
ZGE4ZTBhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDMtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90
aW9uIHBlcm1pc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTUzMjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NjQ1MzY3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IGlu
ZnJhc3RydWN0dXJlIHRvIGhlbHAgdGVzdCB0aGUgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9u
IHBlcm1pc3Npb24gQVBJLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVy
OjpzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKToKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpyZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKFdUUjo6cmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6aGFuZGxlRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVx
dWVzdCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpoYW5kbGVEZXZpY2VNb3Rpb25B
Y2Nlc3NQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpzZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9u
OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTktMDMtMDQgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3Qgc2hhcmUgV2Vi
UHJvY2Vzc2VzIGJldHdlZW4gcHJpdmF0ZSBhbmQgcmVndWxhciBzZXNzaW9ucwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVu
bmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKaW5kZXggMGU3OWQ4MGI2MDFmMzI5NWU4YjgxNWJhMTAwOGI5OTdkMWI4
MGM2Zi4uZWVlMzhkNjllZmIwNDEwNTY1OWQxYmRlYzIxNzVlMmUzOTFiMWIyNiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVu
bmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0xMDQsNiArMTA0LDEwIEBAIGludGVyZmFjZSBUZXN0UnVu
bmVyIHsKICAgICBib29sZWFuIGlzQ29tbWFuZEVuYWJsZWQoRE9NU3RyaW5nIG5hbWUpOwogICAg
IHVuc2lnbmVkIGxvbmcgd2luZG93Q291bnQoKTsKIAorICAgIC8vIERldmljZSBPcmllbnRhdGlv
biBNb3Rpb24uCisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNz
KGJvb2xlYW4gdmFsdWUpOworICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nl
c3MoYm9vbGVhbiB2YWx1ZSk7CisKICAgICAvLyBTcGVjaWFsIERPTSB2YXJpYWJsZXMuCiAgICAg
YXR0cmlidXRlIGJvb2xlYW4gZ2xvYmFsRmxhZzsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZDQ2MjI0NmNkYjlj
MThmNzdjZTQ1ZDczMTM3MjgwNGE2NTFkZDMwMi4uNWEwMjIwZTM5YjE4YjE0ZDhlNzgyM2EzYzY4
NGM2NjM2M2VlMDBlYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjk0LDYgKzEyOTQsMjAgQEAgdm9pZCBUZXN0
UnVubmVyOjpzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1
ZSkKICAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7
CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFj
Y2Vzcyhib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdl
TmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0U2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcyIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5S
ZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOworICAgIFdL
QnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCkt
PnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwordm9p
ZCBUZXN0UnVubmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyhib29sIHZhbHVl
KQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25B
Y2Nlc3MiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keShBZG9w
dFdLLCBXS0Jvb2xlYW5DcmVhdGUodmFsdWUpKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1l
LmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6dGVybWlu
YXRlTmV0d29ya1Byb2Nlc3MoKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNz
YWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGVybWluYXRl
TmV0d29ya1Byb2Nlc3MiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDcxM2E5NDMzNjM5MDVmMGM5Yjc2MGQ1NzRhYzhm
MzI0ZDhkNTE2ZmMuLmExMGFjMDg5NTc5MDhhMWE3ZTcyMzMzMjRhMjU3NGZiYWU1ZGE0YzQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCkBAIC0zNDgsNiArMzQ4LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0TmF2aWdhdGlvbkdl
c3R1cmVzRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGlt
aXRzKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5
cGVzKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vz
cyhib29sKTsKKyAgICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKGJvb2wp
OwogCiAgICAgYm9vbCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q7IH0KICAgICB2b2lkIHNldERpZENhbmNlbENsaWVudFJl
ZGlyZWN0KGJvb2wgdmFsdWUpIHsgbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA9IHZhbHVlOyB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDg1YTlkYzMw
YTljYjhmNjkyNGQwNzI1YjBiYzRhZDQyM2U2ZGRkNjYuLjIwZWZjYzc1YzU0ODY4ZWY0MjkzYzFj
MDQ4MGM5ZDI5YzIyNmE4OTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC0yNjEsNiArMjYxLDE2IEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RQb2ludGVyTG9j
ayhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCopCiAgICAgV0tQYWdlRGlkQWxsb3dQb2ludGVy
TG9jayhwYWdlKTsKIH0KIAorc3RhdGljIGJvb2wgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvbihXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25z
dCB2b2lkKikKK3sKKyAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRs
ZURldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3Qob3JpZ2luKTsKK30KKwor
c3RhdGljIGJvb2wgcmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oV0tQYWdlUmVm
LCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgY29uc3Qgdm9pZCopCit7CisgICAgcmV0dXJu
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5oYW5kbGVEZXZpY2VNb3Rpb25BY2Nlc3NQZXJt
aXNzaW9uUmVxdWVzdChvcmlnaW4pOworfQorCiBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNy
ZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJh
dGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVh
dHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAg
UGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3
Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwpAQCAtNTY5LDggKzU3OSw4IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0
aW9ucyYgb3B0aW9ucykKICAgICByZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKG9w
dGlvbnMpOwogCiAgICAgcGxhdGZvcm1DcmVhdGVXZWJWaWV3KGNvbmZpZ3VyYXRpb24uZ2V0KCks
IG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50VjggcGFnZVVJQ2xpZW50ID0gewotICAgICAg
ICB7IDgsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBXS1BhZ2VVSUNsaWVudFYxMyBwYWdl
VUlDbGllbnQgPSB7CisgICAgICAgIHsgMTMsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKICAgICAg
ICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIDAs
IC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBAIC02MzYsNyArNjQ2LDE0IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0
aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
CiAgICAgICAgIDAsIC8vIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZQogICAgICAgICByZXF1
ZXN0UG9pbnRlckxvY2ssCi0gICAgICAgIDAsCisgICAgICAgIDAsIC8vIGRpZExvc2VQb2ludGVy
TG9jaworICAgICAgICAwLCAvLyBoYW5kbGVBdXRvcGxheUV2ZW50CisgICAgICAgIDAsIC8vIGhh
c1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlCisgICAgICAgIDAsIC8vIGRpZEV4Y2Vl
ZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQKKyAgICAgICAgMCwgLy8g
ZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlCisgICAgICAgIDAs
IC8vIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybQorICAgICAgICByZXF1ZXN0RGV2aWNlT3Jp
ZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uLAorICAgICAgICByZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbgogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldl
YlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudC5iYXNlKTsKIApAQCAtOTQyLDYgKzk1OSw5IEBA
IGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3Qg
VGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAKICAgICBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5
YWJsZU1JTUVUeXBlcyA9IGZhbHNlOwogCisgICAgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQWNjZXNzID0gZmFsc2U7CisgICAgbV9zaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyA9
IGZhbHNlOworCiAgICAgbV93b3JrUXVldWVNYW5hZ2VyLmNsZWFyV29ya1F1ZXVlKCk7CiAKICAg
ICBtX3JlamVjdHNQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZUZvckF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlcyA9IGZhbHNlOwpAQCAtMjU0Nyw2ICsyNTY3LDE4IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmhhbmRsZUNoZWNrT2ZVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdLRnJhbWVSZWYg
ZnJhbWUsCiAgICAgV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tTZXRVc2VyTWVkaWFBY2Nlc3NJ
bmZvKGNoZWNrUmVxdWVzdCwgc2FsdFN0cmluZy5nZXQoKSwgc2V0dGluZ3NGb3JPcmlnaW4ob3Jp
Z2luSGFzaCkucGVyc2lzdGVudFBlcm1pc3Npb24oKSk7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xs
ZXI6OmhhbmRsZURldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1
cml0eU9yaWdpblJlZiBvcmlnaW4pCit7CisgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0
VGV4dChtYWtlU3RyaW5nKCJSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzIHBlcm1p
c3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luIFwiIiwgb3JpZ2luVXNlclZpc2libGVO
YW1lKG9yaWdpbiksICJcIi5cbiIpKTsKKyAgICByZXR1cm4gbV9zaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQWNjZXNzOworfQorCitib29sIFRlc3RDb250cm9sbGVyOjpoYW5kbGVEZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikK
K3sKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1ha2VTdHJpbmcoIlJlY2Vp
dmVkIGRldmljZSBtb3Rpb24gYWNjZXNzIHBlcm1pc3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkg
b3JpZ2luIFwiIiwgb3JpZ2luVXNlclZpc2libGVOYW1lKG9yaWdpbiksICJcIi5cbiIpKTsKKyAg
ICByZXR1cm4gbV9zaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzczsKK30KKwogdm9pZCBUZXN0
Q29udHJvbGxlcjo6aGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tGcmFtZVJlZiBm
cmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV0tTZWN1
cml0eU9yaWdpblJlZiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UmVmIHJlcXVlc3QpCiB7CiAgICAgYXV0byBvcmlnaW5IYXNoID0gdXNlck1lZGlh
T3JpZ2luSGFzaCh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggYTBjM2E3MmU3
ODIwMzBjODYyZWQzYjA0MDY4OGY3ZWE0N2ZiYWMwNy4uZDk2ZmRkMGZmYmY1ZjFkNjQ4ODQzYmRk
NmE4YWIzMTM4YmQ5MDE1ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aApAQCAtMTUwLDYgKzE1MCwxMCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgdXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihXS1N0cmluZ1JlZiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7
CiAgICAgdm9pZCByZXNldFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4o
V0tTdHJpbmdSZWYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5TdHJpbmcsIFdLU3RyaW5nUmVmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcpOwogCisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9u
IC8gTW90aW9uLgorICAgIGJvb2wgaGFuZGxlRGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNz
aW9uUmVxdWVzdChXS1NlY3VyaXR5T3JpZ2luUmVmKTsKKyAgICBib29sIGhhbmRsZURldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYpOworCiAgICAg
Ly8gQ29udGVudCBFeHRlbnNpb25zLgogICAgIHZvaWQgY29uZmlndXJlQ29udGVudEV4dGVuc2lv
bkZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKTsKICAgICB2b2lkIHJlc2V0Q29udGVudEV4
dGVuc2lvbnMoKTsKQEAgLTE5OSw2ICsyMDMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJZ25v
cmVzVmlld3BvcnRTY2FsZUxpbWl0cyhib29sKTsKIAogICAgIHZvaWQgc2V0U2hvdWxkRG93bmxv
YWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGREb3dubG9hZFVu
ZGlzcGxheWFibGVNSU1FVHlwZXMgPSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFjY2Vzcyhib29sIHZhbHVlKSB7IG1fc2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFjY2VzcyA9IHZhbHVlOyB9CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0Rldmlj
ZU1vdGlvbkFjY2Vzcyhib29sIHZhbHVlKSB7IG1fc2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nl
c3MgPSB2YWx1ZTsgfQogCiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFs
dWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2Rl
KFdLU3RyaW5nUmVmIGhvc3ROYW1lKTsKQEAgLTUwOCw2ICs1MTQsOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9wb2xp
Y3lEZWxlZ2F0ZVBlcm1pc3NpdmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGREb3dubG9h
ZFVuZGlzcGxheWFibGVNSU1FVHlwZXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQWNjZXNzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkQWxs
b3dEZXZpY2VNb3Rpb25BY2Nlc3MgeyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX3JlamVjdHNQcm90
ZWN0aW9uU3BhY2VBbmRDb250aW51ZUZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2hhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA2NjYwY2Rj
OTIxZjg5N2NjZTJmNzcxZDhkNTNhNWMyNmYyMTI0OGY5Li4yNWZkZTU2ZmQ1ZWZjYzhlMjEyMWM2
ZWEzM2RmZTlhZWQ3MDUzN2EyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcApAQCAtNzQ3LDYgKzc0NywyMCBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNl
aXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcobWVzc2FnZU5hbWUsICJTZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzIikp
IHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5H
ZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdL
Qm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcyhXS0Jvb2xlYW5HZXRW
YWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKFdLU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTaG91bGRBbGxvd0RldmljZU1v
dGlvbkFjY2VzcyIpKSB7CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkg
PT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBz
dGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLnNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKFdLQm9v
bGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlJ1blVJUHJvY2Vzc1Nj
cmlwdCIpKSB7CiAgICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkg
PSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNjcmlwdEtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiU2NyaXB0IikpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI1M2U5M2ZkNmJjYjU0Nzc3ZWY0OTg3
OThlMGQ4ZTg3MzRmNzg0YjUuLjNkNTlkMDRiMWU3MjRiNDYyNmYwYTlhZjNkYjNjOGNhNWE4NWFl
MDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wMy0wNSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRp
b24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NTMyOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2NDUz
Njc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rldmlj
ZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlv
bi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNz
aW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3Jp
ZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rldmlj
ZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRp
b25zOgorCiAyMDE5LTAzLTAzICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBQcmVwYXJlIHRvIGltcHJvdmUgaGFuZGxpbmcgb2YgY29udmVyc2lvbiBvZiBmbG9hdCB0
byBzdHJpbmdzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyMjk3ZjVhYjFiM2ViNDllNWNmZDMwZDg1
YjI2N2Q0ZDY4YmE2YzQyLi4xNmUyNTQ2ODIzZWEzMjczZTBlODVmMDE1ZjRmY2EwMWVkODA2NTQw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMyLDYgKzMyLDcgQEAgZmFzdC96b29taW5nL2lvcyBb
IFNraXAgXQogZmFzdC9mb3Jtcy9pb3MgWyBTa2lwIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgU2tp
cCBdCiBmYXN0L3Zpc3VhbC12aWV3cG9ydC9pb3MvIFsgU2tpcCBdCitmYXN0L2RldmljZS1vcmll
bnRhdGlvbiBbIFNraXAgXQogZmFzdC9ldmVudHMvaW9zIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy93
YXRjaG9zIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9wb2ludGVyL2lvcyBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmll
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1ODU5YzYzZDM3NDA5YjQzMjIzMmI3YWQxNjJh
OTg0MjQ1OGYyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZp
Y2Vtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiBy
ZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBwZXJt
aXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAxODogTm8gZGV2aWNlbW90aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVy
bWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2
aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJkZW5pZWQiCitQQVNTIHJlc3VsdCBpcyAiZGVu
aWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1t
b3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWZkMjM5ODE5NWEzMTRmZGYwNWUzY2Y2YTllMjJiYzA0NDhiZmZi
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCkBAIC0wLDAgKzEs
MjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IkJhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
Iik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MoZmFsc2UpOworCith
ZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKK0RldmljZU1vdGlv
bkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3Vs
dCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVk
Iik7CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisK
KyAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQp
ID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDhlYTE3ZjUzY2Q1MWRhMzZlNTBmYWFkOGZhYmNkNWVjNzZmYWY3
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogTm8gZGV2aWNlbW90aW9u
IGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVk
IGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNlIG1vdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiBy
ZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VN
b3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRl
ZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90
aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTU0MjE0N2Q4MTg1OGYxZTA5NGViZTEwZmRmM2VhYmMyMDYxZWVi
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApAQCAtMCwwICsx
LDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigp
LiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKHRydWUpOworCith
ZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKK0RldmljZU1vdGlv
bkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3Vs
dCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRl
ZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgKCkgPT4ge30pOwor
CisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0
KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5p
ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhMDMwZjEwZGJhZmZiMzY3YjcxYmFmYmQ5OTRl
NzQ0MzIxY2Y4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBO
byBkZXZpY2VvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9u
IGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRh
dGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IE5vIGRldmljZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxs
IGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLgor
QmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lv
bigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImRl
bmllZCIKK1BBU1MgcmVzdWx0IGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1k
ZW5pZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1v
cmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg2
ZjFiOTYxNTRiODE3ZmJkYTJkZGJjOTMxYThkNmFkYTVlMjBiYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBm
b3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0
SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3MoZmFsc2UpOworCithZGRFdmVu
dExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworRGV2aWNlT3JpZW50
YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICBy
ZXN1bHQgPSBfcmVzdWx0OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRl
bmllZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9
PiB7fSk7CisKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
dGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKyAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVu
dGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQyYzkwYzQyZDUyNDU1
ZTU2ZTcyZjg4ODRkY2ZjNjM5NmM4YmU0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEyOiBObyBkZXZpY2VvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1
bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVk
IGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0
eSBvcmlnaW4gIiIuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJl
cXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTYwMDFjY2UwZWYzYmU0NGVlMzQ4OTIwOTBhMGQxNjFlNWQ4ZTRhOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sCkBAIC0wLDAg
KzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIkJhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1p
c3Npb24oKS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNz
KHRydWUpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9
KTsKKworRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9y
ZXN1bHQpID0+IHsKKyAgICByZXN1bHQgPSBfcmVzdWx0OworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKworICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmlj
ZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCisgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5y
ZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0g
X3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRl
ZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50
cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24t
c2VjdXJlLWNvbnRleHQuaHRtbAppbmRleCBlZDJkZDIwMzc3YzU3MzY1ZTFhNWY3ZmZjNTI1NGY3
MjdkNzFiNWRjLi5mMzE0NGIzNWFlMDBlNTljZTQwODZhZTYyN2NjZmE0ZWViZTcxOWVlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24t
bW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0
bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gcnVuRGV2aWNlTW90aW9uVGVzdCgpCiAgICAg
ZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2
ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKICAgICBpbnRlcm5h
bHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RD
b25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBv
ciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5v
dCBzZWN1cmUuIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVN
ZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZlbnQgbGlz
dGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIpOwogICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsKIH0KQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rpb24g
cnVuRGV2aWNlT3JpZW50YXRpb25UZXN0KCkKICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZp
Y2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsKICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vv
cmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkg
PT4gewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RDb25zb2xlTWVzc2FnZSIs
ICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBs
aXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2Nr
ZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2VvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVh
c29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CiAgICAgICAgIHJ1bkRldmlj
ZU1vdGlvblRlc3QoKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0
aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKaW5kZXggMGZiN2Q3ZWJmMmQ4
NDJkN2JiNzM0YWE4NDMzMThkODk2ODBkNDM0Ni4uODZlMTg4MTg0OGNkYzIxODgzM2ZhMjdmNmY2
ZGVjNzc2YzY3ZTRmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMv
ZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlv
bi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTEgQEAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAzNzogRGV2aWNlIE9yaWVudGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVk
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IERldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBw
b3J0ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MTogRGV2aWNlIE9yaWVudGF0aW9uIEFQSSBp
cyBub3Qgc3VwcG9ydGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjg6IERldmljZSBNb3Rpb24g
QVBJIGlzIG5vdCBzdXBwb3J0ZWQKIFRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBs
aXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMg
bm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCisKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNl
LW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5o
dG1sCmluZGV4IDRlNTRkMTFkOTk0MWU3NThlMDI3NTBiODZkNDNlMzJiYzk0MzNlZWUuLmM4YTEx
ZjVjNTlmNzA0NTZjNzM3OTA3MjlkMjQ3YjI4NWNmZjk2MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNv
bnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3Jp
ZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKQEAgLTYsNiArNiwxNCBAQAogZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3Ig
ZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBl
cnJvciBpbiBzZWN1cmUgY29udGV4dHMuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgaWYgKHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFjY2VzcykKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQWNjZXNzKHRydWUpOworCisgICAgaWYgKHRlc3RSdW5uZXIuc2V0
U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U2hv
dWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3ModHJ1ZSk7Cit9CisKIC8vIGxvY2FsaG9zdCBpcyBz
ZWN1cmUgYnkgZGVmYXVsdC4KIAogbGV0IGxhc3RDb25zb2xlTWVzc2FnZSA9IG51bGw7CkBAIC0x
NSwxOSArMjMsMjUgQEAgaW50ZXJuYWxzLnNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoKG1lc3Nh
Z2UpID0+IHsKIAogZnVuY3Rpb24gcnVuRGV2aWNlTW90aW9uVGVzdCgpCiB7CisgICAgZGVidWco
IiIpOwogICAgIGlmICghd2luZG93LkRldmljZU1vdGlvbkV2ZW50KSB7CiAgICAgICAgIGNvbnNv
bGUubG9nKCJEZXZpY2UgTW90aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkIik7CiAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVN
ZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIiogUmVnaXN0ZXJpbmcg
ZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciIpOwotICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1v
dGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewot
ICAgICAgICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICBkZWJ1ZygiKiBSZXF1ZXN0aW5nIGRldmljZSBtb3Rpb24gYWNjZXNz
Li4uIik7CisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChf
cmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKworICAgICAgICBsYXN0Q29uc29s
ZU1lc3NhZ2UgPSBudWxsOworICAgICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90
aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIs
IGZ1bmN0aW9uKCkgeyB9KTsKKyAgICAgICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKKyAg
ICAgICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNzYWdlIik7CisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5LDEyICs1
MywxOSBAQCBmdW5jdGlvbiBydW5EZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1Zygi
KiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsKLSAgICBhZGRFdmVu
dExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRl
cm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xl
TWVzc2FnZSIpOwotICAgICAgICBydW5EZXZpY2VNb3Rpb25UZXN0KCk7CisgICAgZGVidWcoIiog
UmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNlT3Jp
ZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAg
ICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24KKyAgICAgICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKKyAgICAg
ICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7Cisg
ICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7
IH0pOworICAgICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4geworICAgICAgICAgICAgc2hv
dWxkQmVOdWxsKCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKKyAgICAgICAgICAgIHJ1bkRldmljZU1v
dGlvblRlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2OWM4Mzg0ZTJjODE4NjUyZjA0
NWFjZjQ5NTU0Y2I2MmUyNzllZWFiLi4wYjhlODRkODA2OTc2NTlhNTQwOGVjYTA3YjgwYjg1NTMx
Mzc4MDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRp
b25zCkBAIC03LDYgKzcsNyBAQAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwog
CiBjb21wb3NpdGluZy9pb3MgWyBQYXNzIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFz
cyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNz
IF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1u
b24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1j
b250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA4Njc3OWFmNDY1MTExMWIxODcxNWE1M2U3YjExZTNi
MTFiOTczYTExLi45ZTk3YTViNWYwNWY4ZTEyNDI2ZDlkMjk1M2UzMzc5MWRlNTNlMjRmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNl
LW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50
YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTUgKzEs
MTUgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NTogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBh
IGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3Np
bmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBCbG9j
a2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5l
ciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNDU6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2VvcmllbnRhdGlv
biBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUu
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjg6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZp
Y2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qg
c2VjdXJlLgogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBk
ZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gbG9ncyBhbiBlcnJvciBpbiBu
b24tc2VjdXJlIGNvbnRleHRzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAogKiBS
ZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVN
ZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmll
bnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1
cmUuIgorUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQg
YSBkZXZpY2VvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250
ZXh0IGlzIG5vdCBzZWN1cmUuIgogCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVu
ZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEg
ZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2lu
ZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJs
b2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNv
bjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2Vj
dXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAv
dGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhw
ZWN0ZWQudHh0CmluZGV4IDMxYjg1ZjVkN2Q0NWYzN2Y5ZDZiMTY1ZjY3MzdkZmU1OTIyZWRmNWMu
LmFiMmI0MzNlZjk0M2M0MmFlMmE4MzU5ODM4ODk1MTIwM2M5OTFiOWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRp
b24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1z
ZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTcgQEAKK1JlY2VpdmVkIGRl
dmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBv
cmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIuCitSZWNlaXZlZCBkZXZpY2UgbW90aW9uIGFj
Y2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIi4KIFRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBm
b3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBh
biBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAogCisqIFJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2Vzcy4uLgorUEFTUyByZXN1
bHQgaXMgImdyYW50ZWQiCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5l
cgogUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgbnVsbAogCisqIFJlcXVlc3RpbmcgZGV2aWNl
IG1vdGlvbiBhY2Nlc3MuLi4KK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgogKiBSZWdpc3Rlcmlu
ZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyCiBQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyBudWxs
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363693</attachid>
            <date>2019-03-05 15:00:50 -0800</date>
            <delta_ts>2019-03-05 15:28:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190305150049.patch</filename>
            <type>text/plain</type>
            <size>95539</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2NTk5ZTMzMzQxZjUz
NzBlNTAwNzRlNGM5MWZhZjUyOWNmNTJkOC4uNGE3MDJkZTIzY2IzY2MzZjVlMGFmM2JjOTc4ZTk3
OWFjZjY0M2ExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTAzLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9E
ZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVz
dFBlcm1pc3Npb24pOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmg6Cisg
ICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0
aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLnlhbWw6CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBJbXByb3ZlIG91ciBmaWxlIHBpY2tlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA4NzZlY2Q1ZDQxMGEzZTVhODRkOWIxMTRkYTY2ZWRkZjUxMTM3MDFmLi5iNDQzNTAyZDUyY2Ri
YTRiOWFiNTg0YmI2NzFiYzY4N2UwMzY2NmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0
aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNv
bS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgVGhpcyBhZGRzIG5l
dyBwdWJsaWMgQVBJIG9uIFdLVUlEZWxlZ2F0ZS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAg
ICAgICAgKEFQSTo6VUlDbGllbnQ6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1p
c3Npb24pOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vz
c1Blcm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAg
ICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVs
ZWdhdGU6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAo
V2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Bl
cm1pc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Bl
cm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3REZXZpY2VN
b3Rpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVz
dERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpuZXh0RGV2aWNlT3JpZW50YXRpb25N
b3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbk1vdGlvbkFjY2Vz
c1Blcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KwogMjAxOS0wMy0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IERvIG5vdCBzaGFyZSBXZWJQcm9jZXNzZXMgYmV0d2VlbiBwcml2YXRlIGFuZCByZWd1bGFyIHNl
c3Npb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcAppbmRleCA5MGQ3
MDJkYzM5MDUyZDBmYzc2ZGUwODQxNWRhNDdiODM3M2IyZDk2Li41ODA4YzM1YmU2NzQ3OGYwOGI3
OTY2ZTlhMTAxYzUzZGY1ZGZhMjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlTW90aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5jcHAKQEAgLTI2LDcgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRGV2aWNlTW90aW9uRXZlbnQuaCIKIAorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUg
IkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMTIyLDQgKzEyNiwzMiBAQCBFdmVudEludGVyZmFjZSBEZXZpY2VNb3Rp
b25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1p
c3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHByb21pc2UpCit7
CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCk7CisgICAgaWYgKCF3aW5k
b3cpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lvblN0YXRlOjpEZW5p
ZWQpOworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIXdpbmRvdy0+aXNBbGxv
d2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAg
IGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2
ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkNhbGwgdG8gRGV2aWNlTW90aW9uRXZlbnQucmVxdWVz
dFBlcm1pc3Npb24oKSBmYWlsZWQsIHJlYXNvbjogIiwgZXJyb3JNZXNzYWdlLCAiLiIpKTsKKyAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7Cisg
ICAgfQorCisgICAgaWYgKGF1dG8gcGVybWlzc2lvblN0YXRlID0gZG9jdW1lbnQuZGV2aWNlTW90
aW9uQWNjZXNzU3RhdGUoKSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZSgqcGVybWlz
c2lvblN0YXRlID8gUGVybWlzc2lvblN0YXRlOjpHcmFudGVkIDogUGVybWlzc2lvblN0YXRlOjpE
ZW5pZWQpOworCisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lvblN0YXRlOjpEZW5p
ZWQpOworCisgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkucmVxdWVzdERldmljZU1vdGlvbkFj
Y2Vzc1Blcm1pc3Npb24oZG9jdW1lbnQudG9wT3JpZ2luKCksIFtkb2N1bWVudCA9IG1ha2VXZWFr
UHRyKGRvY3VtZW50KSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJvb2wgZ3JhbnRlZCkg
bXV0YWJsZSB7CisgICAgICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgICAgIGRvY3VtZW50LT5z
ZXREZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZShncmFudGVkKTsKKyAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKGdyYW50ZWQgPyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6
OkRlbmllZCk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaAppbmRleCAzZWNjNWJkNGMwYzdlZWMx
OGU5ZmI4ZTQxNTZmMThiZjNlZjQ1MzNkLi42NGE5NDlkMGZmYzI0MjRiYTk0MjdiZTNjYzFkZDQ0
Y2EwNjYxMjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaApAQCAtMjYs
MTAgKzI2LDEyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEZXZpY2VNb3Rpb25EYXRhOworY2xhc3MgRG9jdW1lbnQ7CiAKIGNsYXNzIERldmljZU1vdGlv
bkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKQEAgLTY2LDYgKzY4LDEyIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgaW5pdERldmljZU1vdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUsIE9wdGlvbmFsPEFjY2Vs
ZXJhdGlvbj4mJiwgT3B0aW9uYWw8QWNjZWxlcmF0aW9uPiYmLCBPcHRpb25hbDxSb3RhdGlvblJh
dGU+JiYsIE9wdGlvbmFsPGRvdWJsZT4pOwogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKyAgICBlbnVtIGNsYXNzIFBlcm1pc3Npb25TdGF0ZSB7IEdyYW50ZWQsIERlbmllZCB9Owor
ICAgIHVzaW5nIFBlcm1pc3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEVudW1l
cmF0aW9uPFBlcm1pc3Npb25TdGF0ZT4+OworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKERvY3VtZW50JiwgUGVybWlzc2lvblByb21pc2UmJik7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICBEZXZpY2VNb3Rpb25FdmVudCgpOwogICAgIERldmljZU1vdGlvbkV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VNb3Rpb25EYXRhKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbAppbmRleCBmMmY1ZGYyMGZjZTUzYmMxM2I1YWJlNmQ0
MThlMjBiZDVhNGZkMzg2Li4zMmFkNmU3NWMwYzM0ZTE4NDYyMThhZDY4YTRlZGU2MTdhNWQyOWYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKQEAgLTMxLDYgKzMx
LDggQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgUm90YXRpb25SYXRlPyByb3RhdGlvblJhdGU7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/IGludGVydmFsOwog
CisgICAgW0NhbGxXaXRoPURvY3VtZW50LCBFbmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVudGF0
aW9uUGVybWlzc2lvbkFQSV0gc3RhdGljIFByb21pc2U8UGVybWlzc2lvblN0YXRlPiByZXF1ZXN0
UGVybWlzc2lvbigpOworCiAgICAgdm9pZCBpbml0RGV2aWNlTW90aW9uRXZlbnQob3B0aW9uYWwg
RE9NU3RyaW5nIHR5cGUgPSAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRp
b25hbCBib29sZWFuIGJ1YmJsZXMgPSBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSwKQEAgLTU3LDMgKzU5LDUg
QEAKICAgICBkb3VibGU/IGJldGE7CiAgICAgZG91YmxlPyBnYW1tYTsKIH07CisKK2VudW0gUGVy
bWlzc2lvblN0YXRlIHsgImdyYW50ZWQiLCAiZGVuaWVkIiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCmluZGV4IGU4MjFiNjU1MzEwOGExMjBjMGZi
MjcxMjdiYTU3NTUxOTBlNzFlMWUuLmE4OTMyOTBjZWQ4NTVkNTI1YTc2NTQ1NzYwYjVjNzMyZDNi
OTk1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5j
cHAKQEAgLTI2LDcgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb25FdmVudC5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25EYXRhLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTEwOSw0ICsxMTMsMzIgQEAgRXZlbnRJbnRlcmZhY2UgRGV2aWNl
T3JpZW50YXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAogI2VuZGlmCiB9CiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
OjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNl
JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5kb3coKTsK
KyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNz
aW9uU3RhdGU6OkRlbmllZCk7CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICgh
d2luZG93LT5pc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2Fn
ZSkpIHsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246ICIsIGVycm9y
TWVzc2FnZSwgIi4iKSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lv
blN0YXRlOjpEZW5pZWQpOworICAgIH0KKworICAgIGlmIChhdXRvIHBlcm1pc3Npb25TdGF0ZSA9
IGRvY3VtZW50LmRldmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoKSkKKyAgICAgICAgcmV0dXJu
IHByb21pc2UucmVzb2x2ZSgqcGVybWlzc2lvblN0YXRlID8gUGVybWlzc2lvblN0YXRlOjpHcmFu
dGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworCisgICAgYXV0byogcGFnZSA9IGRvY3Vt
ZW50LnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29s
dmUoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworCisgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkucmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihkb2N1bWVudC50b3BP
cmlnaW4oKSwgW2RvY3VtZW50ID0gbWFrZVdlYWtQdHIoZG9jdW1lbnQpLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50KQorICAgICAgICAgICAgZG9jdW1lbnQtPnNldERldmljZU9yaWVudGF0aW9uQWNjZXNzU3Rh
dGUoZ3JhbnRlZCk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShncmFudGVkID8gUGVybWlzc2lv
blN0YXRlOjpHcmFudGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0pOworfQor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlT3JpZW50YXRpb25FdmVudC5oCmluZGV4IDAyNWIyZTMyYTc1MWU0MmY2NTBiYjUzYjUxNWEx
MGJkYjUyN2Y0NzguLjE2ZTMzYWY5MTk4NDYxZjZlYzI2MTRmNmEzZjU4MjE5ZmRmNmQ0MjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaApAQCAtMjYsMTAg
KzI2LDEyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAi
SlNET01Qcm9taXNlRGVmZXJyZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
ZXZpY2VPcmllbnRhdGlvbkRhdGE7CitjbGFzcyBEb2N1bWVudDsKIAogY2xhc3MgRGV2aWNlT3Jp
ZW50YXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJsaWM6CkBAIC02MCw2ICs2
MiwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0RGV2aWNlT3JpZW50YXRpb25FdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywgYm9vbCBjYW5jZWxhYmxlLCBPcHRp
b25hbDxkb3VibGU+IGFscGhhLCBPcHRpb25hbDxkb3VibGU+IGJldGEsIE9wdGlvbmFsPGRvdWJs
ZT4gZ2FtbWEsIE9wdGlvbmFsPGJvb2w+IGFic29sdXRlKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICBlbnVtIGNsYXNzIFBlcm1pc3Npb25TdGF0ZSB7IEdy
YW50ZWQsIERlbmllZCB9OworICAgIHVzaW5nIFBlcm1pc3Npb25Qcm9taXNlID0gRE9NUHJvbWlz
ZURlZmVycmVkPElETEVudW1lcmF0aW9uPFBlcm1pc3Npb25TdGF0ZT4+OworICAgIHN0YXRpYyB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiwgUGVybWlzc2lvblByb21pc2UmJik7Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KCk7CiAgICAgRGV2
aWNlT3JpZW50YXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNl
T3JpZW50YXRpb25EYXRhKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
T3JpZW50YXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25FdmVudC5pZGwKaW5kZXggMTNmZjdiYWRjMGU1OTExNjYzNTk1ZDE1ZDExZGJkNjBhMzMzOWZk
Yi4uNjkyOTlmYzVlNjI4MGVjMTEzZmMzMmM2NjAxOWIzZWNiZjQ3ZGIyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbApAQCAtMzAsNiArMzAsOCBA
QAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBiZXRhOwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBnYW1tYTsKIAorICAgIFtD
YWxsV2l0aD1Eb2N1bWVudCwgRW5hYmxlZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1p
c3Npb25BUEldIHN0YXRpYyBQcm9taXNlPFBlcm1pc3Npb25TdGF0ZT4gcmVxdWVzdFBlcm1pc3Np
b24oKTsKKwogICAgIC8vIEZJWE1FOiBDb25zaWRlciBkZWZpbmluZyBhbiBFTkFCTEUgbWFjcm8g
Zm9yIGlPUyBkZXZpY2Ugb3JpZW50YXRpb24gY29kZSBhbmQvb3IgbW9kaWZ5aW5nCiAgICAgLy8g
dGhlIGJpbmRpbmdzIHNjcmlwdHMgdG8gc3VwcG9ydCBnZW5lcmF0aW5nIG1vcmUgY29tcGxpY2F0
ZWQgY29uZGl0aW9uYWwgY29kZS4KICNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9JT1NfRkFNSUxZ
KSAmJiBXVEZfUExBVEZPUk1fSU9TX0ZBTUlMWQpAQCAtNTUsMyArNTcsNCBAQAogI2VuZGlmCiB9
OwogCitlbnVtIFBlcm1pc3Npb25TdGF0ZSB7ICJncmFudGVkIiwgImRlbmllZCIgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDE0MjkyNzg2Y2M4ZWZlZWY1YjFhMmZjMTVkYzcxMGJmZWMx
YzMxMTAuLjRmOGJkODJlZDcwNGNhYTBhODc2MzkxN2RmYTBhNjkxNWFjY2ZjODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtODYzOCw2ICs4NjM4LDU4IEBAIHZvaWQgRG9jdW1lbnQ6OmZy
YW1lV2FzRGlzY29ubmVjdGVkRnJvbU93bmVyKCkKICAgICBkZXRhY2hGcm9tRnJhbWUoKTsKIH0K
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKK2NvbnN0IE9wdGlvbmFsPGJvb2w+
JiBEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpIGNvbnN0Cit7CisgICAg
aWYgKCZ0b3BEb2N1bWVudCgpICE9IHRoaXMpCisgICAgICAgIHJldHVybiB0b3BEb2N1bWVudCgp
LmRldmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoKTsKKworICAgIHJldHVybiBtX2RldmljZU9y
aWVudGF0aW9uQWNjZXNzU3RhdGU7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnNldERldmljZU9yaWVu
dGF0aW9uQWNjZXNzU3RhdGUoYm9vbCBncmFudGVkKQoreworICAgIGlmICgmdG9wRG9jdW1lbnQo
KSAhPSB0aGlzKSB7CisgICAgICAgIHRvcERvY3VtZW50KCkuc2V0RGV2aWNlT3JpZW50YXRpb25B
Y2Nlc3NTdGF0ZShncmFudGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSA9IGdyYW50ZWQ7CisKKyAgICBpZiAoIWdyYW50ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byogZnJhbWUgPSBtX2ZyYW1lOyBmcmFt
ZSAmJiBmcmFtZS0+d2luZG93KCk7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQo
bV9mcmFtZSkpCisgICAgICAgIGZyYW1lLT53aW5kb3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZp
Y2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7Cit9CisKK2NvbnN0IE9wdGlvbmFsPGJvb2w+JiBE
b2N1bWVudDo6ZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdAoreworICAgIGlmICgmdG9w
RG9jdW1lbnQoKSAhPSB0aGlzKQorICAgICAgICByZXR1cm4gdG9wRG9jdW1lbnQoKS5kZXZpY2VN
b3Rpb25BY2Nlc3NTdGF0ZSgpOworCisgICAgcmV0dXJuIG1fZGV2aWNlTW90aW9uQWNjZXNzU3Rh
dGU7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKGJvb2wg
Z3JhbnRlZCkKK3sKKyAgICBpZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykgeworICAgICAgICB0
b3BEb2N1bWVudCgpLnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbV9kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSA9IGdyYW50
ZWQ7CisKKyAgICBpZiAoIWdyYW50ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0
byogZnJhbWUgPSBtX2ZyYW1lOyBmcmFtZSAmJiBmcmFtZS0+d2luZG93KCk7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS50cmF2ZXJzZU5leHQobV9mcmFtZSkpCisgICAgICAgIGZyYW1lLT53aW5kb3co
KS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworfQorCisjZW5k
aWYKKwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQogV29ya2xldCYgRG9jdW1lbnQ6OmVu
c3VyZVBhaW50V29ya2xldCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc3OGMyMTMzYzU0
MzU3ZGQ2NzcxOTlkZjcxOTQxN2IzZWRlOTMxMWEuLmI4YjQ2OTFkMTU1MmQ4MTBiN2ZlYTM4Mzkw
MGZkOTgxMGIxZjFmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjE0LDEyICsxMjE0LDE5
IEBAIHB1YmxpYzoKICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvRG9jdW1lbnRJT1MuaD4KICNl
bmRpZgogCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciYgZGV2aWNlTW90aW9uQ29udHJvbGxl
cigpIGNvbnN0OwogICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciYgZGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzaW11bGF0
ZURldmljZU9yaWVudGF0aW9uQ2hhbmdlKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJs
ZSBnYW1tYSk7CiAjZW5kaWYKIAorICAgIGNvbnN0IE9wdGlvbmFsPGJvb2w+JiBkZXZpY2VPcmll
bnRhdGlvbkFjY2Vzc1N0YXRlKCkgY29uc3Q7CisgICAgdm9pZCBzZXREZXZpY2VPcmllbnRhdGlv
bkFjY2Vzc1N0YXRlKGJvb2wgZ3JhbnRlZCk7CisgICAgY29uc3QgT3B0aW9uYWw8Ym9vbD4mIGRl
dmljZU1vdGlvbkFjY2Vzc1N0YXRlKCkgY29uc3Q7CisgICAgdm9pZCBzZXREZXZpY2VNb3Rpb25B
Y2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpOworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisKICAgICBjb25zdCBEb2N1bWVudFRpbWluZyYgdGltaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9kb2N1bWVudFRpbWluZzsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIG1vbm90
b25pY1RpbWVzdGFtcCgpIGNvbnN0OwpAQCAtMTgzMSw2ICsxODM4LDExIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2FyZUZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbiB7IGZhbHNlIH07CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgT3B0aW9uYWw8Ym9vbD4gbV9k
ZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlOworICAgIE9wdGlvbmFsPGJvb2w+IG1fZGV2aWNl
TW90aW9uQWNjZXNzU3RhdGU7CisjZW5kaWYKKwogICAgIEhhc2hTZXQ8SFRNTFBpY3R1cmVFbGVt
ZW50Kj4gbV92aWV3cG9ydERlcGVuZGVudFBpY3R1cmVzOwogICAgIEhhc2hTZXQ8SFRNTFBpY3R1
cmVFbGVtZW50Kj4gbV9hcHBlYXJhbmNlRGVwZW5kZW50UGljdHVyZXM7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCmluZGV4IDNhMGRjM2JiMDNkY2Q3MGJlOTRlZjRiOTg2MjFkOTc5NTYw
ZTdlYmEuLmQwMDlhODRkMmNiNzk4ZGFhOWU0YjkzOGRmMzZjMTNiZTJlNGViN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNDgyLDYgKzQ4MiwxMSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgLypzdWJGcmFtZUhvc3QqLywg
U3RyaW5nJiYgLyp0b3BGcmFtZUhvc3QqLywgdWludDY0X3QgLypmcmFtZUlEKi8sIHVpbnQ2NF90
IC8qcGFnZUlEKi8sIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJh
Y2spIHsgY2FsbGJhY2soZmFsc2UpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKFN0cmluZyYmIC8qc3ViRnJhbWVIb3N0Ki8sIFN0cmluZyYmIC8qdG9wRnJhbWVIb3N0
Ki8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCB1aW50NjRfdCAvKnBhZ2VJRCovLCBXVEY6OkNvbXBs
ZXRpb25IYW5kbGVyPHZvaWQgKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKGZhbHNlKTsg
fQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBTZWN1cml0eU9yaWdp
biYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxs
YmFjayh0cnVlKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNz
UGVybWlzc2lvbihjb25zdCBTZWN1cml0eU9yaWdpbiYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayh0cnVlKTsgfQorI2VuZGlmCisKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkSW5zZXJ0TWVudUVsZW1lbnQoSFRNTE1lbnVFbGVtZW50JikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZU1lbnVFbGVtZW50KEhUTUxNZW51RWxlbWVudCYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRNZW51SXRlbUVsZW1lbnQoSFRNTE1lbnVJ
dGVtRWxlbWVudCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGRmYTExMjQ4
NGEzYTQ3N2UzZGMwMjJhMzRjYTM0ZGYzZmZhOTNlMzIuLmE4MzU1ZDgyYmZiOGZlNWE3MjUyMmZj
NzRjOGE5NzI3NzMxYzBkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE4MjYs
NTAgKzE4MjYsMTM0IEBAIGJvb2wgRE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lCiAgICAgZWxzZSBpZiAoZXZl
bnROYW1lcygpLmlzR2FtZXBhZEV2ZW50VHlwZShldmVudFR5cGUpKQogICAgICAgICBpbmNyZW1l
bnRHYW1lcGFkRXZlbnRMaXN0ZW5lckNvdW50KCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2
aWNlb3JpZW50YXRpb25FdmVudCkKKyAgICAgICAgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmll
bnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkKKyAgICAgICAgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VN
b3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+
c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpICYmIGRvY3VtZW50KCkg
JiYgZG9jdW1lbnQoKS0+bG9hZGVyKCkgJiYgZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRldmljZU9y
aWVudGF0aW9uRXZlbnRFbmFibGVkKCkpIHsKKworRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
KiBET01XaW5kb3c6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0Cit7CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgaWYgKChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRldmljZW1vdGlvbkV2ZW50IHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNl
b3JpZW50YXRpb25FdmVudCkpIHsKLSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdp
bkFzTWFpbkZyYW1lKCkgJiYgaXNTZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQotICAg
ICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIo
KS5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS5h
ZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9j
dW1lbnQoKSkgewotICAgICAgICAgICAgICAgIGlmIChpc1NlY3VyZUNvbnRleHQoKSkKLSAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBk
ZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGZyb20gY2hpbGQgZnJhbWUgdGhh
dCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UuIl9zKTsK
LSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcs
ICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBs
aXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIl9zKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIHJldHVybiBkb2N1bWVudCgpID8gJmRvY3Vt
ZW50KCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIDogbnVsbHB0cjsKICNlbHNlCi0g
ICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSB7
Ci0gICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpICYmIGlz
U2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKERldmljZU1vdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkp
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIo
KnRoaXMpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIGZyb20g
Y2hpbGQgZnJhbWUgdGhhdCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBt
YWluIHBhZ2UuIl9zKTsKLSAgICAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpIHsKLSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1
cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkgJiYgaXNTZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNTZWN1cmVDb250ZXh0KCkpCi0gICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEg
ZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIGZyb20gY2hpbGQgZnJhbWUgdGhhdCB3YXNuJ3Qg
dGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UuIl9zKTsKLSAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2Vk
IGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBi
ZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIl9zKTsKLSAgICAgICAg
ICAgIH0KKyAgICByZXR1cm4gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2Uo
KSk7CisjZW5kaWYKK30KKworRGV2aWNlTW90aW9uQ29udHJvbGxlciogRE9NV2luZG93OjpkZXZp
Y2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3QKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIHJldHVybiBkb2N1bWVudCgpID8gJmRvY3VtZW50KCktPmRldmljZU1vdGlvbkNvbnRyb2xs
ZXIoKSA6IG51bGxwdHI7CisjZWxzZQorICAgIHJldHVybiBEZXZpY2VNb3Rpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSk7CisjZW5kaWYKK30KKworYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRv
VXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAoreworICAg
IGlmICghZnJhbWUoKSB8fCAhZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2
ZW50RW5hYmxlZCgpIHx8ICFkb2N1bWVudCgpIHx8ICFkb2N1bWVudCgpLT5sb2FkZXIoKSB8fCAh
ZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkpIHsK
KyAgICAgICAgbWVzc2FnZSA9ICJBUEkgaXMgZGlzYWJsZWQiX3M7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAgICAgIG1l
c3NhZ2UgPSAiQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlIl9zOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZy
YW1lKCkpIHsKKyAgICAgICAgbWVzc2FnZSA9ICJTb3VyY2UgZnJhbWUgZGlkIG5vdCBoYXZlIHRo
ZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlIl9zOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitib29sIERPTVdpbmRvdzo6
aXNBbGxvd2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKGNvbnN0IFN0cmlu
ZyYgZXZlbnRUeXBlLCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Cit7CisgICAgU3RyaW5nIGlubmVy
TWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24o
aW5uZXJNZXNzYWdlKSkgeworICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiQmxvY2tlZCBh
dHRlbXB0IHRvIGFkZCBhICIsIGV2ZW50VHlwZSwgIiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiAi
LCBpbm5lck1lc3NhZ2UsICIuIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICBpZiAoZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElF
bmFibGVkKCkpIHsKKyAgICAgICAgYXV0byBwZXJtaXNzaW9uU3RhdGUgPSAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSA/IGRvY3VtZW50KCktPmRldmlj
ZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoKSA6IGRvY3VtZW50KCktPmRldmljZU1vdGlvbkFjY2Vz
c1N0YXRlKCk7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgJiYgISpwZXJtaXNzaW9uU3Rh
dGUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJObyAiLCBldmVudFR5cGUs
ICIgZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJ
IHdhcyBkZW5pZWQuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KLSNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkKLSAgICAgICAgZmFpbGVkVG9SZWdpc3Rl
ckRldmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKLSNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorICAgICAgICBpZiAoIXBlcm1pc3Npb25TdGF0ZSkgeworICAgICAgICAgICAg
bWVzc2FnZSA9IG1ha2VTdHJpbmcoIk5vICIsIGV2ZW50VHlwZSwgIiBldmVudHMgd2lsbCBiZSBm
aXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4iKTsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHJldHVy
biB0cnVlOwogfQogCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgRE9NV2lu
ZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQorewor
ICAgIGlmICghaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9u
RXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkZXZpY2VDb250cm9sbGVyID0g
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCk7CisgICAgaWYgKCFkZXZpY2VDb250cm9sbGVy
IHx8IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghaXNBbGxv
d2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKGV2ZW50TmFtZXMoKS5kZXZp
Y2VvcmllbnRhdGlvbkV2ZW50LCBlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGlmIChhdXRvKiBk
b2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJy
b3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xs
ZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6
c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQoreworICAgIGlm
IChoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkpCisgICAgICAgIGRldmljZUNvbnRyb2xsZXItPnJl
bW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3Rh
cnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKCFoYXNF
dmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2aWNlTW90aW9uQ29udHJv
bGxlcigpOworICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5o
YXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3Jp
ZW50YXRpb25MaXN0ZW5lcihldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQsIGVycm9yTWVz
c2FnZSkpIHsKKyAgICAgICAgZmFpbGVkVG9SZWdpc3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVu
ZXIoKTsKKyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKKyAg
ICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywg
TWVzc2FnZUxldmVsOjpXYXJuaW5nLCBlcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZGV2aWNlQ29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhp
cyk7Cit9CisKK3ZvaWQgRE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZO
ZWNlc3NhcnkoKQoreworICAgIGlmIChoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2
aWNlbW90aW9uRXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogZGV2aWNl
Q29udHJvbGxlciA9IGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSkKKyAgICAgICAgZGV2aWNlQ29u
dHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9CiAKIHZvaWQgRE9N
V2luZG93OjpmYWlsZWRUb1JlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpCiB7CkBA
IC0xOTQxLDIyICsyMDI1LDYgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICAgICAgcmVt
b3ZlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLmJlZm9yZXVubG9hZEV2ZW50ICYmIGFsbG93c0JlZm9yZVVubG9hZExpc3Rl
bmVycyh0aGlzKSkKICAgICAgICAgcmVtb3ZlQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlz
KTsKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25F
dmVudCAmJiBkb2N1bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250
cm9sbGVyKCkucmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgZWxzZSBpZiAo
ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYmIGRvY3Vt
ZW50KCkpCi0gICAgICAgIGRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigp
LnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotI2Vsc2UKLSAgICBlbHNlIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSB7Ci0gICAgICAgIGlm
IChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNl
RXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnRO
YW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpIHsKLSAgICAgICAgaWYgKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZl
bnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xsRXZl
bnQpCiAgICAgICAgIGRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKTsKQEAgLTE5
NzcsNiArMjA0NSwxMiBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogICAgIGVsc2UgaWYgKGV2
ZW50TmFtZXMoKS5pc0dhbWVwYWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgZGVjcmVt
ZW50R2FtZXBhZEV2ZW50TGlzdGVuZXJDb3VudCgpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRl
dmljZW9yaWVudGF0aW9uRXZlbnQpCisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmll
bnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1v
dGlvbklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjA1
OSwxOCArMjEzMyw5IEBAIHZvaWQgRE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygp
CiAgICAgRXZlbnRUYXJnZXQ6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYg
KERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgZG9jdW1l
bnQtPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVy
cygqdGhpcyk7Ci0gICAgICAgIGRvY3VtZW50LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIo
KS5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycygqdGhpcyk7Ci0gICAgfQotI2Vsc2UKLSAg
ICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNv
bnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2
aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFn
ZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMo
KnRoaXMpOwotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8gRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVu
dGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlv
bklmTmVjZXNzYXJ5KCk7CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
aWYgKG1fc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApp
bmRleCBiYmJmYTk1ODcyZTRhMzNlNzM0MjUyODFlNGFjY2I0ZjcwNTliMWM0Li5iZjQzM2Q2OTM4
ZmNmZTNiZmQ1NDEyMDRlOGQ3NTM3ZWZjMzYwMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
QEAgLTgyLDYgKzgyLDExIEBAIGNsYXNzIFZpc3VhbFZpZXdwb3J0OwogY2xhc3MgV2ViS2l0TmFt
ZXNwYWNlOwogY2xhc3MgV2ViS2l0UG9pbnQ7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorY2xhc3MgRGV2aWNlTW90aW9uQ29udHJvbGxlcjsKK2NsYXNzIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcjsKKyNlbmRpZgorCiBzdHJ1Y3QgSW1hZ2VCaXRtYXBPcHRpb25zOwogc3Ry
dWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0zMTEsNiArMzE2LDE5IEBAIHB1YmxpYzoKICAgICB1
bnNpZ25lZCBzY3JvbGxFdmVudExpc3RlbmVyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9s
bEV2ZW50TGlzdGVuZXJDb3VudDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVj
ZXNzYXJ5KCk7CisgICAgdm9pZCBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5l
Y2Vzc2FyeSgpOworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vz
c2FyeSgpOworICAgIHZvaWQgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5
KCk7CisKKyAgICBib29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3Ry
aW5nJiBtZXNzYWdlKSBjb25zdDsKKyAgICBib29sIGlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9u
T3JpZW50YXRpb25MaXN0ZW5lcihjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgU3RyaW5nJiBtZXNz
YWdlKSBjb25zdDsKKworICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKCkgY29uc3Q7CisgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciog
ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0OworI2VuZGlmCisKICAgICB2b2lkIHJlc2V0
QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9uKCk7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5U
UykgfHwgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuY3BwCmluZGV4IDMzNjdkM2RiZjU5ZmMzMzU3MjQ5NzU4YWM2M2RkMTcyNWUw
NzYzNjYuLjg0MmI4NTRlZTI1MTI1OGE0MTA2MmJmZTBkMDY1NDRlZGIzYzZmYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcApAQCAtNjksNiArNjksMTEgQEAgdm9p
ZCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyhET01XaW5k
b3cmIHdpbmRvdykKICAgICAgICAgbV9jbGllbnQuc3RvcFVwZGF0aW5nKCk7CiB9CiAKK2Jvb2wg
RGV2aWNlQ29udHJvbGxlcjo6aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRv
dykgY29uc3QKK3sKKyAgICByZXR1cm4gbV9saXN0ZW5lcnMuY29udGFpbnMoJndpbmRvdyk7Cit9
CisKIHZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudChFdmVudCYgZXZl
bnQpCiB7CiAgICAgZm9yIChhdXRvJiBsaXN0ZW5lciA6IGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVy
cy52YWx1ZXMoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKaW5kZXgg
ZTE2MDM4NWFmZTJmOTczNTNjMGVhMjJmMjllODU2ZjE4ZTIwYjFhOC4uM2Q1ZjkwYzUwZWU0YTU0
ZmMwYWQxN2M2NDczNWRkNjkzODczZmZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EZXZpY2VDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250
cm9sbGVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkRGV2aWNlRXZl
bnRMaXN0ZW5lcihET01XaW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZURldmljZUV2ZW50TGlzdGVu
ZXIoRE9NV2luZG93Jik7CiAgICAgdm9pZCByZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyhE
T01XaW5kb3cmKTsKKyAgICBib29sIGhhc0RldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jikg
Y29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQoRXZlbnQmKTsKICAgICBib29s
IGlzQWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy55YW1sCmluZGV4IDMwM2Q3ZjgyZDRiMzdmZGJhMWI3ZjJkZDRhOGRhMjU3ZThh
Yjk3N2MuLmU4MjRkZjc2YTg0MmYzMjA3ZmFlMGVjZTY0NDRlOWUyZjI0NWVmZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTc2NCw2ICs3NjQsMTEgQEAgZGV2aWNlT3JpZW50YXRp
b25FdmVudEVuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKICAgY29uZGl0aW9uYWw6IERFVklDRV9P
UklFTlRBVElPTgogCitkZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkOgorICB0
eXBlOiBib29sCisgIGluaXRpYWw6IGZhbHNlCisgIGNvbmRpdGlvbmFsOiBERVZJQ0VfT1JJRU5U
QVRJT04KKwogc2hvdWxkRW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdDoKICAgdHlwZTogYm9vbAog
ICBpbml0aWFsOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
aW5kZXggZjU1ODQzMjU5MGZiZGViNjg5NzkzZTBiNDliMjY3Nzg0MTY3ZDJlYS4uODQ5MzFhZGY5
MjIyNmRhMDQyNmQ3MTJhMzE0ZGNlOGM4YWY2M2ZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMiw2ICsxMiwxNSBAQCBEZXZpY2VPcmllbnRhdGlvbkV2
ZW50RW5hYmxlZDoKICAgY29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICB3
ZWJjb3JlTmFtZTogZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQKIAorRGV2aWNlT3JpZW50
YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6
IGZhbHNlCisgIGNvbmRpdGlvbjogRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgd2ViY29y
ZU5hbWU6IGRldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQKKyAgaHVtYW5SZWFk
YWJsZU5hbWU6ICJQZXJtaXNzaW9uIEFQSSBmb3IgZGV2aWNlIG9yaWVudGF0aW9uIC8gbW90aW9u
IGFjY2Vzcy4iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkRldmljZU9yaWVudGF0aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSAvIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogSmF2YVNjcmlwdEVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDNlYzZmMDBkMjRmYzkzOTQyNjkwYTNlNzI5ZmQw
N2VkN2EzYWE2YzcuLmZhOTlkYzVhNjkzOGM2YWYxZDdjNTQzOWMwZGJkZjI0NTRhMzlmNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0xNzMsNiArMTcz
LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKFdlYktp
dDo6V2ViUGFnZVByb3h5KikgeyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Bl
cm1pc3Npb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhh
bmRsZXIodHJ1ZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmljZU1vdGlvbkFjY2Vz
c1Blcm1pc3Npb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlv
bkhhbmRsZXIodHJ1ZSk7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRpZENsaWNrQXV0
b0ZpbGxCdXR0b24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBPYmplY3QqKSB7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2Uo
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBPYmplY3QqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGE0MTY3NjZlMmIzODNlMWI1MTQ0OGZjOWNjNDAyYzAx
ZjFiZWIzYWEuLjFmZjRjZWI0MzM1YmY0OGFhOTJlNzMyZDgxMDYzMGRkZjM0MzEyZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTE1LDcgKzExNSw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7
CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNl
PiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xp
ZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50
VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50Vjcs
IFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBX
S1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTI+IFZlcnNpb25zOworICAgIHR5cGVk
ZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VV
SUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNs
aWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVu
dFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRW
MTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMz4gVmVyc2lvbnM7CiB9Owog
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0xOTAzLDYgKzE5MDMsMjQgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xp
ZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LnJlcXVlc3RTdG9yYWdlQWNj
ZXNzQ29uZmlybSh0b0FQSSgmcGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkocmVxdWVzdGluZ0Rv
bWFpbi5pbXBsKCkpLCB0b0FQSShjdXJyZW50RG9tYWluLmltcGwoKSksIHRvQVBJKGxpc3RlbmVy
LnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgdm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50
YXRpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBmaW5hbAorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnJlcXVl
c3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24pCisgICAgICAgICAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtX2NsaWVudC5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKHRv
QVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOwor
ICAgICAgICB9CisKKyAgICAgICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlz
c2lvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5yZXF1ZXN0RGV2aWNlTW90aW9uQWNj
ZXNzUGVybWlzc2lvbikKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
dHJ1ZSk7CisKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fY2xpZW50LnJlcXVlc3RE
ZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiks
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOworICAgICAgICB9CisjZW5kaWYKKwogICAgICAg
ICAvLyBQcmludGluZy4KICAgICAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSYg
cGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUpIGZpbmFsCiAgICAgICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDVlNTk3M2Y5YWIx
OGI0NmE2NWVmZTA4ZWRmNWYzNTA3YTc3NWRmMGIuLjc0NzY4ZDRhMWRlNDFmYzhlMDk2MjY0ZmY4
ZWY2OWY2MzE5NTBhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlVUlDbGllbnQuaApAQCAtMTM0LDYgKzEzNCw4IEBAIHR5cGVkZWYgdm9pZCAoKldLRGlkTG9z
ZVBvaW50ZXJMb2NrQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJ
CiB0eXBlZGVmIHZvaWQgKCpXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBib29sIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLRGlkRXhjZWVkQmFja2dy
b3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgV0tSZXNvdXJjZUxpbWl0IGxpbWl0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFy
YW5jZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldLUGFnZVJlcXVlc3REZXZpY2VPcmll
bnRhdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJp
dHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlw
ZWRlZiBib29sICgqV0tQYWdlUmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFn
ZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZp
ZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKQEAgLTExNDAsNiArMTE0MiwxMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQ
YWdlVUlDbGllbnRWMTIgewogICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25m
aXJtOwogfSBXS1BhZ2VVSUNsaWVudFYxMjsKIAordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGll
bnRWMTMgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBX
S1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAg
ICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1Bh
Z2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZv
Y3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7
CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMCAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjAgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjA7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAg
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1Bh
Z2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7
CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RI
YW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp
ZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7
CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVu
dUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAg
ICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJ
c1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1
c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNl
dElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBX
S1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjYgICAgcnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjY7CisgICAgV0tQYWdlVUlDbGllbnRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRE
cmF3OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VFeGNlZWRlZERh
dGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsKKyAgICBXS1Bh
Z2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAg
ICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAg
V0tQYWdlSGVhZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVySGVpZ2h0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJIZWlnaHQ7Cisg
ICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFnZURyYXdGb290ZXJDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zvb3RlcjsKKyAg
ICBXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKKyAgICB2
b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9y
TWFpbkZyYW1lCisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVy
OworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZTsK
KworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMSAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMTsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3Q7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VTaG93
Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNob3dDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKKyAgICBX
S1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsKKworICAgIC8vIFZlcnNp
b24gMy4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVy
c2lvbiA0LgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsgLy8gVXNlZCB0byBiZSBkaWRCZWdpblRy
YWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQzOyAv
LyBVc2VkIHRvIGJlIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzLgorICAgIHZvaWQqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW51c2VkNDsgLy8gVXNlZCB0byBiZSBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3Vz
ZVByZXNzLgorICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7CisKKyAgICAv
LyBWZXJzaW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENsaWNrQXV0b0ZpbGxCdXR0b247Cisg
ICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
NSAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsK
KyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjUgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjUgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjU7CisgICAgV0tQYWdlTWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZTsKKwor
ICAgIC8vIFZlcnNpb24gNi4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQ
YWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZp
cm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0
Q29uZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9u
IDcuCisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tG
dWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDgu
CisgICAgV0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRl
ckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRM
b3NlUG9pbnRlckxvY2s7CisKKyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxh
eUV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5k
bGVBdXRvcGxheUV2ZW50OworCisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5Q
aWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhh
c1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dy
b3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhj
ZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZl
cnNpb24gMTEuCisgICAgV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRB
cHBlYXJhbmNlQ2FsbGJhY2sgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNz
d29yZEFwcGVhcmFuY2U7CisKKyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RT
dG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1Bh
Z2VSZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uQ2FsbGJhY2sgICAgICAg
ICAgICAgIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb247CisgICAgV0tQ
YWdlUmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbjsKK30gV0tQYWdlVUlD
bGllbnRWMTM7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKaW5kZXggZGEwMzE0YWUz
ZjU4Y2JkZTk4MDI4ZTI3Mjg5ZWFkNDRkNmQzNDJiYi4uYjFkMjllYjJhYzcyZjJkMGU5MGE4NTA4
OTk0YmMzZDE3YzRlMWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGUuaApAQCAtMzQsNiArMzQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgogQGNsYXNzIFdLTmF2aWdhdGlvbkFjdGlvbjsKIEBjbGFzcyBXS09wZW5QYW5lbFBhcmFt
ZXRlcnM7CiBAY2xhc3MgV0tQcmV2aWV3RWxlbWVudEluZm87CitAY2xhc3MgV0tTZWN1cml0eU9y
aWdpbjsKIEBjbGFzcyBXS1dlYlZpZXc7CiBAY2xhc3MgV0tXZWJWaWV3Q29uZmlndXJhdGlvbjsK
IEBjbGFzcyBXS1dpbmRvd0ZlYXR1cmVzOwpAQCAtMTUxLDYgKzE1MiwyMiBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
Y29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmll
d2luZ1ZpZXdDb250cm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIAorLyohIEBh
YnN0cmFjdCBBbGxvd3MgeW91IGFwcCB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIGdp
dmVuIHNlY3VyaXR5IG9yaWdpbiBzaG91bGQgaGF2ZSBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9y
aWVudGF0aW9uLgorIEBwYXJhbSBzZWN1cml0eU9yaWdpbiBUaGUgc2VjdXJpdHkgb3JpZ2luIHdo
aWNoIHJlcXVlc3RlZCBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9yaWVudGF0aW9uLgorIEBwYXJh
bSBkZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCBvbmNlIHRoZSBh
cHAgaGFzIG1hZGUgaXRzIGRlY2lzaW9uLiBQYXNzIFlFUyB0byBhbGxvdyB0byBvcmlnaW4gYWNj
ZXNzLCBOTyBvdGhlcndpc2UuCisKKyBJZiB5b3UgZG8gbm90IGltcGxlbWVudCB0aGlzIG1ldGhv
ZCwgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBvcmllbnRhdGlvbiB3aWxsIGJlIGdyYW50ZWQuCisg
Ki8KKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilz
ZWN1cml0eU9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKKy8qISBAYWJzdHJhY3Qg
QWxsb3dzIHlvdSBhcHAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBzZWN1
cml0eSBvcmlnaW4gc2hvdWxkIGhhdmUgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBtb3Rpb24uCisg
QHBhcmFtIHNlY3VyaXR5T3JpZ2luIFRoZSBzZWN1cml0eSBvcmlnaW4gd2hpY2ggcmVxdWVzdGVk
IGFjY2VzcyB0byB0aGUgZGV2aWNlJ3MgbW90aW9uLgorIEBwYXJhbSBkZWNpc2lvbkhhbmRsZXIg
VGhlIGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCBvbmNlIHRoZSBhcHAgaGFzIG1hZGUgaXRzIGRl
Y2lzaW9uLiBQYXNzIFlFUyB0byBhbGxvdyB0byBvcmlnaW4gYWNjZXNzLCBOTyBvdGhlcndpc2Uu
CisKKyBJZiB5b3UgZG8gbm90IGltcGxlbWVudCB0aGlzIG1ldGhvZCwgYWNjZXNzIHRvIHRoZSBk
ZXZpY2UncyBtb3Rpb24gd2lsbCBiZSBncmFudGVkLgorICovCistICh2b2lkKXdlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3NGb3JTZWN1cml0
eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKKwogI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKIAogI2lmICFUQVJHRVRf
T1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5k
ZXggY2NiNzhhMjllMmE0YzJmZjE2ZDQyNTI1YWU1ZTQ2MGE3ODliYjdhMy4uNWViMjU3YTJhN2Q2
ZDQzNzY3ODA5NDI5YmU4OThjNTczZTUwNGUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTE5LDYgKzExOSwxMCBAQCBwcml2YXRlOgogICAgICAg
ICBib29sIHJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwg
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIGZpbmFsOwogICAgICAgICB2b2lkIGRp
ZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQoV2ViUGFnZVBy
b3h5JiwgV0tSZXNvdXJjZUxpbWl0KSBmaW5hbDsKICAgICAgICAgdm9pZCBzYXZlRGF0YVRvRmls
ZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgY29u
c3QgV1RGOjpTdHJpbmcmLCBjb25zdCBVUkwmLCBBUEk6OkRhdGEmKSBmaW5hbDsKKyNlbmRpZgor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIHZvaWQgcmVxdWVzdERldmlj
ZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsK
KyAgICAgICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKSBmaW5hbDsKICNlbmRpZgogICAgICAgICBib29sIG5lZWRzRm9udEF0dHJp
YnV0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOyB9CiAgICAgICAgIHZvaWQgZGlkQ2hh
bmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmKSBmaW5hbDsK
QEAgLTE4Nyw2ICsxOTEsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3U2F2ZURh
dGFUb0ZpbGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0luaXRpYXRlZEJ5RnJh
bWVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3ROb3Rp
ZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOwor
I2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgYm9vbCB3ZWJW
aWV3U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luRGVj
aXNpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3U2hvdWxkQWxsb3dEZXZpY2VN
b3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7CiAjZW5kaWYK
ICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2lu
Q3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3Rl
ZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0
YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVDdXJyZW50
UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VE
ZWNpc2lvbkhhbmRsZXIgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUubW0KaW5kZXggYjVhMGE1MDhiYzk5NmQzYzlhOTdmOTNhZjNlYTNmOTI1MDk3ZjY2NS4u
OGZlYzgyNGM3ZDNlZWUzOTg4NTMwZmZmY2NkYmFlYzBlNzdhZmE5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMzIsNiArMTMyLDEwIEBAIHZv
aWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAg
ICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1NhdmVEYXRhVG9GaWxlU3VnZ2VzdGVkRmlsZW5h
bWVNaW1lVHlwZU9yaWdpbmF0aW5nVVJMID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6c2F2ZURhdGFUb0ZpbGU6c3VnZ2VzdGVkRmlsZW5hbWU6bWltZVR5
cGU6b3JpZ2luYXRpbmdVUkw6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1J1bk9w
ZW5QYW5lbFdpdGhQYXJhbWV0ZXJzSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5PcGVuUGFu
ZWxXaXRoUGFyYW1ldGVyczppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOildOwog
ICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lv
bkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25G
b3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CisjZW5kaWYKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRs
ZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnNob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhh
bmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1Nob3VsZEFsbG93RGV2aWNl
TW90aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnNob3VsZEFsbG93RGV2aWNlTW90
aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOildOwogI2VuZGlmCiAg
ICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0
eU9yaWdpbkN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdl
RXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdp
bjpjdXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4
cGVjdGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5EYXRhYmFzZU5hbWVEaXNw
bGF5TmFtZUN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdl
RXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdp
bjpkYXRhYmFzZU5hbWU6ZGlzcGxheU5hbWU6Y3VycmVudFF1b3RhOmN1cnJlbnRPcmlnaW5Vc2Fn
ZTpjdXJyZW50RGF0YWJhc2VVc2FnZTpleHBlY3RlZFVzYWdlOmRlY2lzaW9uSGFuZGxlcjopXTsK
QEAgLTg0NCw2ICs4NDgsNDUgQEAgYm9vbCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuT3BlblBh
bmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHIKIH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKwordm9pZCBVSURlbGVnYXRlOjpVSUNs
aWVudDo6cmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICgh
bV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdTaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIpCisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBt
X3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRvIGNoZWNrZXIgPSBD
b21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxl
Y3Rvcih3ZWJWaWV3OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NGb3JTZWN1cml0
eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4pZGVsZWdhdGUgd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IHNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjp3cmFwcGVyKHNlY3VyaXR5T3Jp
Z2luKSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0gKEJP
T0wgZ3JhbnRlZCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFu
ZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tl
ci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGdyYW50ZWQpOworICAgIH0pLmdldCgpXTsKK30KKwordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVu
dDo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViS2l0OjpXZWJQYWdlUHJv
eHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fdWlEZWxl
Z2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nl
c3NGb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5t
X2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5k
bGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKHdlYlZpZXc6
c2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhh
bmRsZXI6KSk7CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgd2ViVmll
dzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IHNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzRm9y
U2VjdXJpdHlPcmlnaW46d3JhcHBlcihzZWN1cml0eU9yaWdpbikgZGVjaXNpb25IYW5kbGVyOm1h
a2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildIChCT09MIGdyYW50ZWQpIG11dGFibGUgewor
ICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFu
ZGxlcigpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihncmFudGVkKTsKKyAgICB9KS5nZXQo
KV07Cit9CisjZW5kaWYKKwogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQ2hhbmdlRm9u
dEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmIGZvbnRBdHRyaWJ1dGVz
KQogewogICAgIGlmICghbmVlZHNGb250QXR0cmlidXRlcygpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMjQ1NTBlNDlkOGNmMWRlNDg4Yjk3NTJlMTJhYjMw
M2YxY2YzNTMwMC4uMWQxMmU1MWNiY2RlNGM0ZDUxYjRiYTdjNjI3YzYwMjc3ZmRkMGQ0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MTY4LDYgKzcxNjgs
MjggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNlck1lZGlhU3RhdGUoKQogI2VuZGlmCiB9
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRv
IG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnNlY3VyaXR5
T3JpZ2luKCkpOworICAgIG1fdWlDbGllbnQtPnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vz
c1Blcm1pc3Npb24oKnRoaXMsIG9yaWdpbi5nZXQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpLCBjYWxsYmFja0lEXShib29sIGdyYW50ZWQpIHsKKyAgICAgICAgaWYgKCF3
ZWFrVGhpcyB8fCAhaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlv
bk1vdGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lvbihjYWxsYmFja0lELCBncmFudGVkKSwgbV9w
YWdlSUQpOworICAgIH0pOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2lu
RGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpOworICAgIG1f
dWlDbGllbnQtPnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKCp0aGlzLCBvcmln
aW4uZ2V0KCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2tJ
RF0oYm9vbCBncmFudGVkKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIWlzVmFsaWQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
RGVjaXNpb24oY2FsbGJhY2tJRCwgZ3JhbnRlZCksIG1fcGFnZUlEKTsKKyAgICB9KTsKK30KKyNl
bmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
dWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBp
ZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggMjE1NWQxNDJlNDRmYmE1NDQ1OGJjNzFmNTM5MWJlNmUwOWI0ZTgw
My4uMzI3NDMyZDljZjg1OGM1YjVmNWRjZjZmYTc2YzZkZThkMTU4YWNjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0MDEsNiArMTQwMSwxMSBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgIHZvaWQgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisjZW5kaWYKKwogICAgIHN0YXRp
YyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJhbFdlYlBhZ2VQcm94eSgpOwogCiAjaWYgRU5BQkxF
KEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBlODY0ZDRhOTZmYjY3ZjlhNTNmMWQ2MDljNjlmNzc2
NTIxMzg0YTAwLi5hMDU5N2U5YzA4YjYzNjI5NjNiZGI1NWQyZDM2MWYzOTI0OWZlNzI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBA
IC01MzIsNiArNTMyLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU3RvcFVS
TFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVu
dGlmaWVyKQogICAgIExvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6
VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIElQQzo6RGF0
YVJlZmVyZW5jZSBkYXRhKSBEZWxheWVkCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQorICAgIFJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwor
ICAgIFJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgor
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJ
ZGVudGlmaWVyRnJvbURhdGEoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwg
U3RyaW5nIHByZWZlcnJlZEZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Ug
ZGF0YSkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJvbUZpbGVQYXRoKFN0cmlu
ZyBpZGVudGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBmaWxlUGF0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKaW5kZXggNjdmZDdhNzIwY2UyZjMzOTc3MDM1MTQ4YmRiZDJjZWZhN2M3
ZmQzNS4uN2Y1MDU3MGRjNGEzZDBmZTFkMDU5ZmZkOTVlODJjYjFjNjM5NWM5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKQEAgLTEzMjAsNCArMTMyMCwxNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24o
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3BhZ2UucmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2Fs
bGJhY2spCit7CisgICAgbV9wYWdlLnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
KG9yaWdpbiwgV1RGTW92ZShjYWxsYmFjaykpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGY5MjZhMjU4YWQ4NWFiMDc3OTE2ZDBjYjIz
NTI4NGQ4ZWIzYmRhYTcuLjMwMzQzZGVmMWVmNWZmMjk1OWM0MDBlM2Y0OGE0NjU3YWU3ZGI5NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Niw2ICszNjYsMTEgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYpIGZpbmFsOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgcmVxdWVzdERldmljZU9yaWVudGF0aW9u
QWNjZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyNlbmRpZgorCiAgICAgU3RyaW5n
IG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJGcmFtZT4gbV9jYWNoZWRG
cmFtZVNldExhcmdlc3RGcmFtZTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVI
YXNIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODk2ODc2MGY5ZTRlNjZmYTFmNGQ1OTE2NmE3
MmU3MDkxMjg0OWUwZS4uYjViZTcwMzJkZjMzNWUzNzNhYTllNThkZGI4Y2UyMTdkMGNjMTIxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYz
NTQsNiArNjM1NCwzOSBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmlu
ZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LAogICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVEb21haW46
OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHN1YkZyYW1lSG9zdCksIFJlZ2lzdHJhYmxlRG9tYWlu
Ojp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdCh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBtX3BhZ2VJ
RCwgcHJvbXB0RW5hYmxlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICNlbmRp
ZgorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3N0YXRpYyB1aW50NjRfdCBuZXh0
RGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCgpCit7CisgICAgc3Rh
dGljIHVpbnQ2NF90IG5leHRDYWxsYmFja0lEID0gMDsKKyAgICByZXR1cm4gKytuZXh0Q2FsbGJh
Y2tJRDsKK30KKwordm9pZCBXZWJQYWdlOjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7CisgICAgYXV0byBjYWxsYmFja0lE
ID0gbmV4dERldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrSUQoKTsKKyAg
ICBBU1NFUlQoIW1fZGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tNYXAu
Y29udGFpbnMoY2FsbGJhY2tJRCkpOworICAgIG1fZGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJt
aXNzaW9uQ2FsbGJhY2tNYXAuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKwor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdERldmljZU9yaWVudGF0aW9u
QWNjZXNzUGVybWlzc2lvbihvcmlnaW4uZGF0YSgpLCBjYWxsYmFja0lEKSk7Cit9CisKK3ZvaWQg
V2ViUGFnZTo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjYWxsYmFjaykKK3sKKyAgICBhdXRvIGNhbGxiYWNrSUQgPSBuZXh0RGV2aWNlT3JpZW50YXRp
b25Nb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCgpOworICAgIEFTU0VSVCghbV9kZXZpY2VPcmll
bnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5jb250YWlucyhjYWxsYmFja0lEKSk7
CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5hZGQo
Y2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihvcmlnaW4uZGF0
YSgpLCBjYWxsYmFja0lEKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9y
aWVudGF0aW9uTW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIGJvb2wgZ3JhbnRlZCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9kZXZpY2VPcmllbnRh
dGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC50YWtlKGNhbGxiYWNrSUQpOworICAgIEFT
U0VSVChjYWxsYmFjayk7CisgICAgY2FsbGJhY2soZ3JhbnRlZCk7Cit9CisjZW5kaWYKICAgICAK
IHN0YXRpYyBTaGFyZVNoZWV0Q2FsbGJhY2tJRCBuZXh0U2hhcmVTaGVldENhbGxiYWNrSUQoKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGQyMWVh
ZmJjNTIzNTJjMjU3Mjc5ZjhmMzJlYTY1NjM5MDhlYjZhOTIuLjQ0ODdiMDE2MjgxMGViNGJjZjI5
ZjBkYWVmNGUxNWE3ZTUwNmZkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKQEAgLTExMTEsNiArMTExMSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1
ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1l
SG9zdCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
YWxsYmFjayk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2Vu
ZGlmCisKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJz
ZWRVUkwmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwog
ICAgIHZvaWQgZGlkQ29tcGxldGVTaGFyZVNoZWV0KGJvb2wgd2FzQ29tcGxldGVkLCBTaGFyZVNo
ZWV0Q2FsbGJhY2tJRCBjb250ZXh0SWQpOwogICAgIApAQCAtMTIwNyw2ICsxMjEyLDEwIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24pOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorICAgIHZvaWQgZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9uQWNjZXNz
UGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCk7Cisj
ZW5kaWYKKwogI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKICAgICBzdGF0
aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRF
dmVudCopOwogI2VuZGlmCkBAIC0xODM3LDYgKzE4NDYsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBncmFudGVkKT4+IG1fc3RvcmFn
ZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tNYXA7CiAgICAgSGFzaE1hcDxTaGFyZVNoZWV0Q2FsbGJh
Y2tJRCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgY29tcGxldGVkKT4+IG1fc2hhcmVTaGVldFJl
c3BvbnNlQ2FsbGJhY2tNYXA7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IEhhc2hNYXA8dWludDY0X3QsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGdyYW50
ZWQpPj4gbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcDsKKyNl
bmRpZgorCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIHVpbnQ2NF90PiBtX2FwcGxpY2F0aW9uTWFuaWZlc3RGZXRjaENhbGxiYWNrTWFwOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgppbmRleCBjYjBiNTcwOTMzNjRjMGU1NTQyNDNmOTMwOWMzOTI1ZDU0OGFm
NGYwLi42ZGM5YmU0OTczMWFmMmJlMmE1ZGQzMDBkMjA0OTA3YWExNTFjMjNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
QEAgLTM2NCw2ICszNjQsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7
CiAgICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKKyNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIERpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlv
bk1vdGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBjYWxsYmFja0lELCBib29s
IGdyYW50ZWQpCisjZW5kaWYKKwogICAgICMgUHJpbnRpbmcuCiAgICAgQmVnaW5QcmludGluZyh1
aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQogICAg
IEVuZFByaW50aW5nKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBlMWQwNjEwZDExOWY2NTMxNzUwNWNmYTdiN2M4ZDk5Y2M2NDEzNzUzLi43MjQw
NjEyODlkYTJjMDllZDRlMjYzY2VhZjcwODkxYzZkZGE4ZTBhIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDMt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzMjkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ3NjQ1MzY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIGhlbHAgdGVzdCB0
aGUgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQWNjZXNzKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dE
ZXZpY2VNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKFdUUjo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1p
c3Npb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhP
cHRpb25zKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aGFuZGxlRGV2aWNl
T3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpoYW5kbGVEZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzcyk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTaG91bGRBbGxvd0RldmljZU1vdGlv
bkFjY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZSk6CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBEbyBub3Qgc2hhcmUgV2ViUHJvY2Vzc2VzIGJldHdlZW4gcHJpdmF0ZSBh
bmQgcmVndWxhciBzZXNzaW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggMGU3OWQ4
MGI2MDFmMzI5NWU4YjgxNWJhMTAwOGI5OTdkMWI4MGM2Zi4uZWVlMzhkNjllZmIwNDEwNTY1OWQx
YmRlYzIxNzVlMmUzOTFiMWIyNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0xMDQs
NiArMTA0LDEwIEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICBib29sZWFuIGlzQ29tbWFu
ZEVuYWJsZWQoRE9NU3RyaW5nIG5hbWUpOwogICAgIHVuc2lnbmVkIGxvbmcgd2luZG93Q291bnQo
KTsKIAorICAgIC8vIERldmljZSBPcmllbnRhdGlvbiBNb3Rpb24uCisgICAgdm9pZCBzZXRTaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2xlYW4gdmFsdWUpOworICAgIHZvaWQg
c2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MoYm9vbGVhbiB2YWx1ZSk7CisKICAgICAv
LyBTcGVjaWFsIERPTSB2YXJpYWJsZXMuCiAgICAgYXR0cmlidXRlIGJvb2xlYW4gZ2xvYmFsRmxh
ZzsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKaW5kZXggZDQ2MjI0NmNkYjljMThmNzdjZTQ1ZDczMTM3MjgwNGE2NTFkZDMw
Mi4uNWEwMjIwZTM5YjE4YjE0ZDhlNzgyM2EzYzY4NGM2NjM2M2VlMDBlYyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBA
IC0xMjk0LDYgKzEyOTQsMjAgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGREb3dubG9hZFVu
ZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkKICAgICBXS0J1bmRsZVBhZ2VQb3N0TWVz
c2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VO
YW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0
U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzcyhib29sIHZhbHVlKQoreworICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiU2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcyIp
KTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdL
Qm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCks
IG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRBbGxv
d0RldmljZU1vdGlvbkFjY2Vzcyhib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiU2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MiKSk7CisgICAgV0tSZXRhaW5QdHI8
V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS0Jvb2xlYW5DcmVhdGUodmFsdWUp
KTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7
Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKQogewogICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGVybWluYXRlTmV0d29ya1Byb2Nlc3MiKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4
IDcxM2E5NDMzNjM5MDVmMGM5Yjc2MGQ1NzRhYzhmMzI0ZDhkNTE2ZmMuLmExMGFjMDg5NTc5MDhh
MWE3ZTcyMzMzMjRhMjU3NGZiYWU1ZGE0YzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0zNDgsNiArMzQ4LDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKTsKICAgICB2
b2lkIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogICAgIHZvaWQgc2V0U2hv
dWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJvb2wpOworICAgIHZvaWQgc2V0U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzcyhib29sKTsKKyAgICB2b2lkIHNldFNob3Vs
ZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKGJvb2wpOwogCiAgICAgYm9vbCBkaWRDYW5jZWxDbGll
bnRSZWRpcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q7IH0K
ICAgICB2b2lkIHNldERpZENhbmNlbENsaWVudFJlZGlyZWN0KGJvb2wgdmFsdWUpIHsgbV9kaWRD
YW5jZWxDbGllbnRSZWRpcmVjdCA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCmluZGV4IDg1YTlkYzMwYTljYjhmNjkyNGQwNzI1YjBiYzRhZDQyM2U2
ZGRkNjYuLjIwZWZjYzc1YzU0ODY4ZWY0MjkzYzFjMDQ4MGM5ZDI5YzIyNmE4OTIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yNjEsNiArMjYxLDE2IEBA
IHN0YXRpYyB2b2lkIHJlcXVlc3RQb2ludGVyTG9jayhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9p
ZCopCiAgICAgV0tQYWdlRGlkQWxsb3dQb2ludGVyTG9jayhwYWdlKTsKIH0KIAorc3RhdGljIGJv
b2wgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihXS1BhZ2VSZWYsIFdL
U2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2b2lkKikKK3sKKyAgICByZXR1cm4gVGVz
dENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRsZURldmljZU9yaWVudGF0aW9uQWNjZXNzUGVy
bWlzc2lvblJlcXVlc3Qob3JpZ2luKTsKK30KKworc3RhdGljIGJvb2wgcmVxdWVzdERldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb24oV0tQYWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdp
biwgY29uc3Qgdm9pZCopCit7CisgICAgcmV0dXJuIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5oYW5kbGVEZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChvcmlnaW4pOworfQor
CiBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVm
IG5hdmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3
ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpOwpAQCAtNTY5LDggKzU3OSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdl
YlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICByZXNldFBy
ZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMpOwogCiAgICAgcGxhdGZvcm1DcmVh
dGVXZWJWaWV3KGNvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xp
ZW50VjggcGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDgsIG1fbWFpbldlYlZpZXcuZ2V0KCkg
fSwKKyAgICBXS1BhZ2VVSUNsaWVudFYxMyBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgMTMs
IG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8v
IGNsb3NlCkBAIC02MzYsNyArNjQ2LDE0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdl
YlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwg
Ly8gcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsCiAgICAgICAgIDAsIC8vIGZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZQogICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2ssCi0gICAgICAgIDAs
CisgICAgICAgIDAsIC8vIGRpZExvc2VQb2ludGVyTG9jaworICAgICAgICAwLCAvLyBoYW5kbGVB
dXRvcGxheUV2ZW50CisgICAgICAgIDAsIC8vIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlk
Q2hhbmdlCisgICAgICAgIDAsIC8vIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hp
bGVJbkZvcmVncm91bmQKKyAgICAgICAgMCwgLy8gZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25n
UGFzc3dvcmRBcHBlYXJhbmNlCisgICAgICAgIDAsIC8vIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29u
ZmlybQorICAgICAgICByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uLAor
ICAgICAgICByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbgogICAgIH07CiAgICAg
V0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVu
dC5iYXNlKTsKIApAQCAtOTQyLDYgKzk1OSw5IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAK
ICAgICBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IGZhbHNlOwogCisg
ICAgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzID0gZmFsc2U7CisgICAgbV9z
aG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyA9IGZhbHNlOworCiAgICAgbV93b3JrUXVldWVN
YW5hZ2VyLmNsZWFyV29ya1F1ZXVlKCk7CiAKICAgICBtX3JlamVjdHNQcm90ZWN0aW9uU3BhY2VB
bmRDb250aW51ZUZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyA9IGZhbHNlOwpAQCAtMjU0Nyw2
ICsyNTY3LDE4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmhhbmRsZUNoZWNrT2ZVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKFdLRnJhbWVSZWYgZnJhbWUsCiAgICAgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tTZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGNoZWNrUmVxdWVzdCwgc2FsdFN0cmlu
Zy5nZXQoKSwgc2V0dGluZ3NGb3JPcmlnaW4ob3JpZ2luSGFzaCkucGVyc2lzdGVudFBlcm1pc3Np
b24oKSk7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU9yaWVudGF0aW9u
QWNjZXNzUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pCit7Cisg
ICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChtYWtlU3RyaW5nKCJSZWNlaXZlZCBk
ZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzIHBlcm1pc3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkg
b3JpZ2luIFwiIiwgb3JpZ2luVXNlclZpc2libGVOYW1lKG9yaWdpbiksICJcIi5cbiIpKTsKKyAg
ICByZXR1cm4gbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzOworfQorCitib29s
IFRlc3RDb250cm9sbGVyOjpoYW5kbGVEZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVz
dChXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKK3sKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9u
LT5vdXRwdXRUZXh0KG1ha2VTdHJpbmcoIlJlY2VpdmVkIGRldmljZSBtb3Rpb24gYWNjZXNzIHBl
cm1pc3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luIFwiIiwgb3JpZ2luVXNlclZpc2li
bGVOYW1lKG9yaWdpbiksICJcIi5cbiIpKTsKKyAgICByZXR1cm4gbV9zaG91bGRBbGxvd0Rldmlj
ZU1vdGlvbkFjY2VzczsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCiB7CiAg
ICAgYXV0byBvcmlnaW5IYXNoID0gdXNlck1lZGlhT3JpZ2luSGFzaCh1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggYTBjM2E3MmU3ODIwMzBjODYyZWQzYjA0MDY4OGY3ZWE0N2Zi
YWMwNy4uZDk2ZmRkMGZmYmY1ZjFkNjQ4ODQzYmRkNmE4YWIzMTM4YmQ5MDE1ZSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTUwLDYgKzE1MCwxMCBAQCBwdWJs
aWM6CiAgICAgdW5zaWduZWQgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdp
bihXS1N0cmluZ1JlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7CiAgICAgdm9pZCByZXNldFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4oV0tTdHJpbmdSZWYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW5TdHJpbmcsIFdLU3RyaW5nUmVmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcp
OwogCisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uLgorICAgIGJvb2wgaGFuZGxl
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChXS1NlY3VyaXR5T3JpZ2lu
UmVmKTsKKyAgICBib29sIGhhbmRsZURldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0
KFdLU2VjdXJpdHlPcmlnaW5SZWYpOworCiAgICAgLy8gQ29udGVudCBFeHRlbnNpb25zLgogICAg
IHZvaWQgY29uZmlndXJlQ29udGVudEV4dGVuc2lvbkZvclRlc3QoY29uc3QgVGVzdEludm9jYXRp
b24mKTsKICAgICB2b2lkIHJlc2V0Q29udGVudEV4dGVuc2lvbnMoKTsKQEAgLTE5OSw2ICsyMDMs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyhib29s
KTsKIAogICAgIHZvaWQgc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJv
b2wgdmFsdWUpIHsgbV9zaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMgPSB2YWx1
ZTsgfQorICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzcyhib29s
IHZhbHVlKSB7IG1fc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcyA9IHZhbHVlOyB9
CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyhib29sIHZhbHVlKSB7
IG1fc2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MgPSB2YWx1ZTsgfQogCiAgICAgdm9pZCBz
ZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLU3RyaW5nUmVmIGhvc3ROYW1lKTsKQEAg
LTUwOCw2ICs1MTQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJs
ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmUgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9zaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MgeyBmYWxz
ZSB9OwogCiAgICAgYm9vbCBtX3JlamVjdHNQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZUZvckF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhbmRsZXNBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZXMgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcAppbmRleCA2NjYwY2RjOTIxZjg5N2NjZTJmNzcxZDhkNTNhNWMyNmYy
MTI0OGY5Li4yNWZkZTU2ZmQ1ZWZjYzhlMjEyMWM2ZWEzM2RmZTlhZWQ3MDUzN2EyIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtNzQ3LDYgKzc0NywyMCBA
QCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRs
ZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlw
ZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9v
bGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOwor
ICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFjY2VzcyhXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2Fn
ZU5hbWUsICJTZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyIpKSB7CisgICAgICAgIEFT
U0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOwor
ICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1l
c3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFNob3Vs
ZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhtZXNzYWdlTmFtZSwgIlJ1blVJUHJvY2Vzc1NjcmlwdCIpKSB7CiAgICAgICAgIFdLRGljdGlv
bmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlS
ZWY+KG1lc3NhZ2VCb2R5KTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNjcmlw
dEtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2NyaXB0IikpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGI1M2U5M2ZkNmJjYjU0Nzc3ZWY0OTg3OThlMGQ4ZTg3MzRmNzg0YjUuLjNkNTlkMDRi
MWU3MjRiNDYyNmYwYTlhZjNkYjNjOGNhNWE4NWFlMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAxOS0wMy0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTMyOQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRl
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9u
LWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50
YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTAzLTAzICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVwYXJlIHRvIGltcHJvdmUgaGFu
ZGxpbmcgb2YgY29udmVyc2lvbiBvZiBmbG9hdCB0byBzdHJpbmdzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAyMjk3ZjVhYjFiM2ViNDllNWNmZDMwZDg1YjI2N2Q0ZDY4YmE2YzQyLi4xNmUyNTQ2ODIz
ZWEzMjczZTBlODVmMDE1ZjRmY2EwMWVkODA2NTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMy
LDYgKzMyLDcgQEAgZmFzdC96b29taW5nL2lvcyBbIFNraXAgXQogZmFzdC9mb3Jtcy9pb3MgWyBT
a2lwIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgU2tpcCBdCiBmYXN0L3Zpc3VhbC12aWV3cG9ydC9p
b3MvIFsgU2tpcCBdCitmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFNraXAgXQogZmFzdC9ldmVu
dHMvaW9zIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy93YXRjaG9zIFsgU2tpcCBdCiBmYXN0L2V2ZW50
cy9wb2ludGVyL2lvcyBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1t
b3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDM1ODU5YzYzZDM3NDA5YjQzMjIzMmI3YWQxNjJhOTg0MjQ1OGYyZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2Vtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmly
ZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNl
aXZlZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5
IG9yaWdpbiAiIi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogTm8gZGV2aWNlbW90aW9uIGV2
ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMg
ZGVuaWVkLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1p
c3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlz
ICJkZW5pZWQiCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRl
bmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZkMjM5ODE5
NWEzMTRmZGYwNWUzY2Y2YTllMjJiYzA0NDhiZmZiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWRlbmllZC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIERldmljZU1v
dGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dE
ZXZpY2VNb3Rpb25BY2Nlc3MoZmFsc2UpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rp
b24iLCAoKSA9PiB7fSk7CisKK0RldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
dGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisKKyAgICBhZGRFdmVudExpc3RlbmVy
KCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1
ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jl
c3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhlYTE3ZjUz
Y2Q1MWRhMzZlNTBmYWFkOGZhYmNkNWVjNzZmYWY3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxMjogTm8gZGV2aWNlbW90aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGls
IHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2
aWNlIG1vdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4g
IiIuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lv
bigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImdy
YW50ZWQiCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFu
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90
aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU0MjE0N2Q4
MTg1OGYxZTA5NGViZTEwZmRmM2VhYmMyMDYxZWViMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWdyYW50ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VN
b3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93
RGV2aWNlTW90aW9uQWNjZXNzKHRydWUpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rp
b24iLCAoKSA9PiB7fSk7CisKK0RldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
dGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5l
cigiZGV2aWNlbW90aW9uIiwgKCkgPT4ge30pOworCisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9y
ZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQi
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVu
dGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRhMDMwZjEwZGJhZmZiMzY3YjcxYmFmYmQ5OTRlNzQ0MzIxY2Y4ZjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBA
QAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2VvcmllbnRhdGlvbiBldmVudHMg
d2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3Jh
bnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1
ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IE5v
IGRldmljZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lv
biB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3Jp
ZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1MgcmVzdWx0IGlzICJkZW5p
ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Np
b24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg2ZjFiOTYxNTRiODE3ZmJkYTJkZGJjOTMxYThk
NmFkYTVlMjBiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0
bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5y
ZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BY2Nlc3MoZmFsc2UpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlv
biIsICgpID0+IHt9KTsKKworRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lv
bigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICByZXN1bHQgPSBfcmVzdWx0OworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOworCisgICAgYWRkRXZlbnRMaXN0
ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAg
ICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3Vs
dCIsICJkZW5pZWQiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1n
cmFudGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjQyYzkwYzQyZDUyNDU1ZTU2ZTcyZjg4ODRkY2ZjNjM5NmM4YmU0NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2Vvcmll
bnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJl
cXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3Mg
cGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCitCYXNpYyB0ZXN0aW5n
IGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BBU1Mg
cmVzdWx0IGlzICJncmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYwMDFjY2UwZWYz
YmU0NGVlMzQ4OTIwOTBhMGQxNjFlNWQ4ZTRhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZ3JhbnRlZC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIERldmlj
ZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4iKTsKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKHRydWUpOworCithZGRFdmVudExpc3RlbmVy
KCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworRGV2aWNlT3JpZW50YXRpb25FdmVu
dC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICByZXN1bHQgPSBf
cmVzdWx0OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsK
KworICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOwor
CisgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9y
ZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9u
LW5vbi1zZWN1cmUtY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMv
ZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRtbAppbmRleCBl
ZDJkZDIwMzc3YzU3MzY1ZTFhNWY3ZmZjNTI1NGY3MjdkNzFiNWRjLi5mMzE0NGIzNWFlMDBlNTlj
ZTQwODZhZTYyN2NjZmE0ZWViZTcxOWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlv
bi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rp
b24gcnVuRGV2aWNlTW90aW9uVGVzdCgpCiAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNl
IG1vdGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIs
IGZ1bmN0aW9uKCkgeyB9KTsKICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RDb25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0
dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNh
dXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0
byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29u
dGV4dCBpcyBub3Qgc2VjdXJlLiIpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsK
IH0KQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rpb24gcnVuRGV2aWNlT3JpZW50YXRpb25UZXN0KCkK
ICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsK
ICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9
KTsKICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImxhc3RDb25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEg
ZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2lu
ZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vv
cmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5v
dCBzZWN1cmUuIik7CiAgICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3QoKTsKICAgICB9KTsKIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRh
dGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1l
eHBlY3RlZC50eHQKaW5kZXggMGZiN2Q3ZWJmMmQ4NDJkN2JiNzM0YWE4NDMzMThkODk2ODBkNDM0
Ni4uODZlMTg4MTg0OGNkYzIxODgzM2ZhMjdmNmY2ZGVjNzc2YzY3ZTRmNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1z
ZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9l
dmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50
eHQKQEAgLTEsMTAgKzEsMTEgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzNzogRGV2aWNlIE9y
aWVudGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6
IERldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA1MTogRGV2aWNlIE9yaWVudGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMjg6IERldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKIFRlc3Rz
IHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRp
b24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUg
Y29udGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCisKIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUt
Y29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVu
dGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IDRlNTRkMTFkOTk0MWU3NThl
MDI3NTBiODZkNDNlMzJiYzk0MzNlZWUuLmM4YTExZjVjNTlmNzA0NTZjNzM3OTA3MjlkMjQ3YjI4
NWNmZjk2MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2Rldmlj
ZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250
ZXh0Lmh0bWwKQEAgLTYsNiArNiwxNCBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdHJ5aW5n
IHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmlj
ZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuIik7
CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
aWYgKHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcykKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKHRy
dWUpOworCisgICAgaWYgKHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nl
c3MpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3Mo
dHJ1ZSk7Cit9CisKIC8vIGxvY2FsaG9zdCBpcyBzZWN1cmUgYnkgZGVmYXVsdC4KIAogbGV0IGxh
c3RDb25zb2xlTWVzc2FnZSA9IG51bGw7CkBAIC0xNSwxOSArMjMsMjUgQEAgaW50ZXJuYWxzLnNl
dENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoKG1lc3NhZ2UpID0+IHsKIAogZnVuY3Rpb24gcnVuRGV2
aWNlTW90aW9uVGVzdCgpCiB7CisgICAgZGVidWcoIiIpOwogICAgIGlmICghd2luZG93LkRldmlj
ZU1vdGlvbkV2ZW50KSB7CiAgICAgICAgIGNvbnNvbGUubG9nKCJEZXZpY2UgTW90aW9uIEFQSSBp
cyBub3Qgc3VwcG9ydGVkIik7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1Zygi
Iik7Ci0gICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciIpOwot
ICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAg
ICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZU51bGwoImxhc3RD
b25zb2xlTWVzc2FnZSIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBkZWJ1ZygiKiBS
ZXF1ZXN0aW5nIGRldmljZSBtb3Rpb24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNlTW90aW9uRXZl
bnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3Vs
dCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdy
YW50ZWQiKTsKKworICAgICAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOworICAgICAgICBk
ZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFk
ZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKKyAgICAgICAg
aW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlTnVsbCgibGFz
dENvbnNvbGVNZXNzYWdlIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
fSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5LDEyICs1MywxOSBAQCBmdW5jdGlvbiBydW5EZXZpY2VP
cmllbnRhdGlvblRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNv
bGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50
YXRpb24gbGlzdGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlv
biIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAg
ICAgICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBydW5EZXZp
Y2VNb3Rpb25UZXN0KCk7CisgICAgZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRp
b24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlz
c2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAg
ICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24KKyAgICAgICAgbGFz
dENvbnNvbGVNZXNzYWdlID0gbnVsbDsKKyAgICAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2
aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRl
dmljZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOworICAgICAgICBpbnRlcm5hbHMucG9z
dFRhc2soKCkgPT4geworICAgICAgICAgICAgc2hvdWxkQmVOdWxsKCJsYXN0Q29uc29sZU1lc3Nh
Z2UiKTsKKyAgICAgICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3QoKTsKKyAgICAgICAgfSk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA2OWM4Mzg0ZTJjODE4NjUyZjA0NWFjZjQ5NTU0Y2I2MmUyNzllZWFiLi4wYjhl
ODRkODA2OTc2NTlhNTQwOGVjYTA3YjgwYjg1NTMxMzc4MDgyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC03LDYgKzcsNyBAQAogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBjb21wb3NpdGluZy9pb3MgWyBQYXNzIF0K
K2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFz
cyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgUGFz
cyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVu
dHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1v
cmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA4
Njc3OWFmNDY1MTExMWIxODcxNWE1M2U3YjExZTNiMTFiOTczYTExLi45ZTk3YTViNWYwNWY4ZTEy
NDI2ZDlkMjk1M2UzMzc5MWRlNTNlMjRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2Vj
dXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9o
dHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29u
dGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTUgKzEsMTUgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA0NTogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRp
b24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250
ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDU6IEJsb2NrZWQgYXR0
ZW1wdCB0byBhZGQgYSBkZXZpY2VvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBC
cm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjg6
IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIsIHJl
YXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgogVGVzdHMgdGhhdCB0cnlpbmcg
dG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNl
b3JpZW50YXRpb24gbG9ncyBhbiBlcnJvciBpbiBub24tc2VjdXJlIGNvbnRleHRzLgogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAogKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRp
b24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQg
dG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRo
ZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29sZU1lc3Nh
Z2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2VvcmllbnRhdGlvbiBldmVudCBs
aXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgogCiAqIFJl
Z2lzdGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdl
IGlzICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlv
biBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgor
UEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZp
Y2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qg
c2VjdXJlLiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRz
L2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRh
dGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDMxYjg1ZjVkN2Q0
NWYzN2Y5ZDZiMTY1ZjY3MzdkZmU1OTIyZWRmNWMuLmFiMmI0MzNlZjk0M2M0MmFlMmE4MzU5ODM4
ODk1MTIwM2M5OTFiOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRw
L3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVu
dHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQK
QEAgLTEsMTEgKzEsMTcgQEAKK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVy
bWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIuCitSZWNlaXZlZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9y
IHNlY3VyaXR5IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIi4KIFRlc3RzIHRoYXQgdHJ5
aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRl
dmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMu
CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCisqIFJlcXVlc3RpbmcgZGV2aWNlIG9y
aWVudGF0aW9uIGFjY2Vzcy4uLgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCiAqIFJlZ2lzdGVy
aW5nIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lcgogUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2Ug
aXMgbnVsbAogCisqIFJlcXVlc3RpbmcgZGV2aWNlIG1vdGlvbiBhY2Nlc3MuLi4KK1BBU1MgcmVz
dWx0IGlzICJncmFudGVkIgogKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyCiBQ
QVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363695</attachid>
            <date>2019-03-05 15:28:23 -0800</date>
            <delta_ts>2019-03-05 15:50:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190305152823.patch</filename>
            <type>text/plain</type>
            <size>96394</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2NTk5ZTMzMzQxZjUz
NzBlNTAwNzRlNGM5MWZhZjUyOWNmNTJkOC4uNGE3MDJkZTIzY2IzY2MzZjVlMGFmM2JjOTc4ZTk3
OWFjZjY0M2ExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTAzLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9E
ZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVz
dFBlcm1pc3Npb24pOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmg6Cisg
ICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0RGV2
aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldERldmljZU1vdGlvbkFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU1vdGlvbkNvbnRy
b2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0
aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3Rl
bmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLnlhbWw6CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBJbXByb3ZlIG91ciBmaWxlIHBpY2tlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA4NzZlY2Q1ZDQxMGEzZTVhODRkOWIxMTRkYTY2ZWRkZjUxMTM3MDFmLi5lY2JmMWQ3N2U4OWU5
MzYzYzZlZGQ0MGQ5MzBlNWU1YmRkNzNkMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisy
MDE5LTAzLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0
aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNv
bS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgVGhpcyBhZGRzIG5l
dyBTUEkgdG8gV0tVSURlbGVnYXRlUHJpdmF0ZSwgdW50aWwgd2UgY2FuIG1ha2UgdGhpcyBBUEku
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpyZXF1ZXN0
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKEFQSTo6VUlDbGll
bnQ6OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25B
Y2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpyZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6bmV4dERldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrSUQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERldmljZU1vdGlv
bkFjY2Vzc1Blcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZl
RGV2aWNlT3JpZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3Qgc2hhcmUgV2ViUHJvY2Vzc2VzIGJl
dHdlZW4gcHJpdmF0ZSBhbmQgcmVndWxhciBzZXNzaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VNb3Rpb25FdmVudC5jcHAKaW5kZXggOTBkNzAyZGMzOTA1MmQwZmM3NmRlMDg0MTVkYTQ3Yjgz
NzNiMmQ5Ni4uNTgwOGMzNWJlNjc0NzhmMDhiNzk2NmU5YTEwMWM1M2RmNWRmYTI3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCkBAIC0yNiw3ICsyNiwxMSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkV2ZW50LmgiCiAKKyNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJE
ZXZpY2VNb3Rpb25EYXRhLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyMiw0ICsxMjYsMzIg
QEAgRXZlbnRJbnRlcmZhY2UgRGV2aWNlTW90aW9uRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29u
c3QKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgRGV2
aWNlTW90aW9uRXZlbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUGVy
bWlzc2lvblByb21pc2UmJiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50
LmRvbVdpbmRvdygpOworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIFN0cmluZyBlcnJvck1lc3Nh
Z2U7CisgICAgaWYgKCF3aW5kb3ctPmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRp
b24oZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKCJDYWxs
IHRvIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgZmFpbGVkLCByZWFzb246
ICIsIGVycm9yTWVzc2FnZSwgIi4iKSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUo
UGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0KKworICAgIGlmIChhdXRvIHBlcm1pc3Np
b25TdGF0ZSA9IGRvY3VtZW50LmRldmljZU1vdGlvbkFjY2Vzc1N0YXRlKCkpCisgICAgICAgIHJl
dHVybiBwcm9taXNlLnJlc29sdmUoKnBlcm1pc3Npb25TdGF0ZSA/IFBlcm1pc3Npb25TdGF0ZTo6
R3JhbnRlZCA6IFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIGF1dG8qIHBhZ2UgPSBk
b2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKworICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKGRvY3VtZW50LnRvcE9y
aWdpbigpLCBbZG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShib29sIGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoZG9jdW1l
bnQpCisgICAgICAgICAgICBkb2N1bWVudC0+c2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoZ3Jh
bnRlZCk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShncmFudGVkID8gUGVybWlzc2lvblN0YXRl
OjpHcmFudGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0pOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2
ZW50LmgKaW5kZXggM2VjYzViZDRjMGM3ZWVjMThlOWZiOGU0MTU2ZjE4YmYzZWY0NTMzZC4uNjRh
OTQ5ZDBmZmMyNDI0YmE5NDI3YmUzY2MxZGQ0NGNhMDY2MTIyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU1vdGlvbkV2ZW50LmgKQEAgLTI2LDEwICsyNiwxMiBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsKK2NsYXNzIERv
Y3VtZW50OwogCiBjbGFzcyBEZXZpY2VNb3Rpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7
CiBwdWJsaWM6CkBAIC02Niw2ICs2OCwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXREZXZp
Y2VNb3Rpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywgYm9v
bCBjYW5jZWxhYmxlLCBPcHRpb25hbDxBY2NlbGVyYXRpb24+JiYsIE9wdGlvbmFsPEFjY2VsZXJh
dGlvbj4mJiwgT3B0aW9uYWw8Um90YXRpb25SYXRlPiYmLCBPcHRpb25hbDxkb3VibGU+KTsKIAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZW51bSBjbGFzcyBQZXJtaXNzaW9u
U3RhdGUgeyBHcmFudGVkLCBEZW5pZWQgfTsKKyAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlzZSA9
IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsKKyAg
ICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Qcm9t
aXNlJiYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRGV2aWNlTW90aW9uRXZlbnQoKTsKICAg
ICBEZXZpY2VNb3Rpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNl
TW90aW9uRGF0YSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlv
bkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKaW5k
ZXggZjJmNWRmMjBmY2U1M2JjMTNiNWFiZTZkNDE4ZTIwYmQ1YTRmZDM4Ni4uMzJhZDZlNzVjMGMz
NGUxODQ2MjE4YWQ2OGE0ZWRlNjE3YTVkMjlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
TW90aW9uRXZlbnQuaWRsCkBAIC0zMSw2ICszMSw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFJvdGF0aW9uUmF0ZT8gcm90YXRpb25SYXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlPyBpbnRlcnZhbDsKIAorICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwgRW5h
YmxlZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUEldIHN0YXRpYyBQcm9t
aXNlPFBlcm1pc3Npb25TdGF0ZT4gcmVxdWVzdFBlcm1pc3Npb24oKTsKKwogICAgIHZvaWQgaW5p
dERldmljZU1vdGlvbkV2ZW50KG9wdGlvbmFsIERPTVN0cmluZyB0eXBlID0gIiIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiBjYW5jZWxh
YmxlID0gZmFsc2UsCkBAIC01NywzICs1OSw1IEBACiAgICAgZG91YmxlPyBiZXRhOwogICAgIGRv
dWJsZT8gZ2FtbWE7CiB9OworCitlbnVtIFBlcm1pc3Npb25TdGF0ZSB7ICJncmFudGVkIiwgImRl
bmllZCIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNw
cAppbmRleCBlODIxYjY1NTMxMDhhMTIwYzBmYjI3MTI3YmE1NzU1MTkwZTcxZTFlLi5hODkzMjkw
Y2VkODU1ZDUyNWE3NjU0NTc2MGI1YzczMmQzYjk5NWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCkBAIC0yNiw3ICsyNiwxMSBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZlbnQuaCIKIAorI2lu
Y2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRl
dmljZU9yaWVudGF0aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMDksNCArMTEz
LDMyIEBAIEV2ZW50SW50ZXJmYWNlIERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmV2ZW50SW50ZXJm
YWNlKCkgY29uc3QKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
K3ZvaWQgRGV2aWNlT3JpZW50YXRpb25FdmVudDo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQm
IGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgYXV0byogd2lu
ZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCk7CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJl
dHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworCisgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIXdpbmRvdy0+aXNBbGxvd2VkVG9Vc2VEZXZpY2VN
b3Rpb25PcmllbnRhdGlvbihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGRvY3VtZW50LmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1h
a2VTdHJpbmcoIkNhbGwgdG8gRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lv
bigpIGZhaWxlZCwgcmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOworICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAg
ICBpZiAoYXV0byBwZXJtaXNzaW9uU3RhdGUgPSBkb2N1bWVudC5kZXZpY2VPcmllbnRhdGlvbkFj
Y2Vzc1N0YXRlKCkpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoKnBlcm1pc3Npb25T
dGF0ZSA/IFBlcm1pc3Npb25TdGF0ZTo6R3JhbnRlZCA6IFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVk
KTsKKworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQor
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsK
KworICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFj
Y2Vzc1Blcm1pc3Npb24oZG9jdW1lbnQudG9wT3JpZ2luKCksIFtkb2N1bWVudCA9IG1ha2VXZWFr
UHRyKGRvY3VtZW50KSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJvb2wgZ3JhbnRlZCkg
bXV0YWJsZSB7CisgICAgICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgICAgIGRvY3VtZW50LT5z
ZXREZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAgICBwcm9taXNl
LnJlc29sdmUoZ3JhbnRlZCA/IFBlcm1pc3Npb25TdGF0ZTo6R3JhbnRlZCA6IFBlcm1pc3Npb25T
dGF0ZTo6RGVuaWVkKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAppbmRleCAw
MjViMmUzMmE3NTFlNDJmNjUwYmI1M2I1MTVhMTBiZGI1MjdmNDc4Li4xNmUzM2FmOTE5ODQ2MWY2
ZWMyNjE0ZjZhM2Y1ODIxOWZkZjZkNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmgKQEAgLTI2LDEwICsyNiwxMiBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOworY2xhc3Mg
RG9jdW1lbnQ7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMg
RXZlbnQgewogcHVibGljOgpAQCAtNjAsNiArNjIsMTIgQEAgcHVibGljOgogICAgIHZvaWQgaW5p
dERldmljZU9yaWVudGF0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGJ1
YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSwgT3B0aW9uYWw8ZG91YmxlPiBhbHBoYSwgT3B0aW9uYWw8
ZG91YmxlPiBiZXRhLCBPcHRpb25hbDxkb3VibGU+IGdhbW1hLCBPcHRpb25hbDxib29sPiBhYnNv
bHV0ZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZW51
bSBjbGFzcyBQZXJtaXNzaW9uU3RhdGUgeyBHcmFudGVkLCBEZW5pZWQgfTsKKyAgICB1c2luZyBQ
ZXJtaXNzaW9uUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQZXJt
aXNzaW9uU3RhdGU+PjsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVu
dCYsIFBlcm1pc3Npb25Qcm9taXNlJiYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRGV2aWNl
T3JpZW50YXRpb25FdmVudCgpOwogICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIERldmljZU9yaWVudGF0aW9uRGF0YSopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCmluZGV4IDEzZmY3YmFkYzBl
NTkxMTY2MzU5NWQxNWQxMWRiZDYwYTMzMzlmZGIuLjY5Mjk5ZmM1ZTYyODBlYzExM2ZjMzJjNjYw
MTliM2VjYmY0N2RiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25FdmVudC5pZGwKQEAgLTMwLDYgKzMwLDggQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5y
ZXN0cmljdGVkIGRvdWJsZT8gYmV0YTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmlj
dGVkIGRvdWJsZT8gZ2FtbWE7CiAKKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnQsIEVuYWJsZWRCeVNl
dHRpbmc9RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJXSBzdGF0aWMgUHJvbWlzZTxQZXJt
aXNzaW9uU3RhdGU+IHJlcXVlc3RQZXJtaXNzaW9uKCk7CisKICAgICAvLyBGSVhNRTogQ29uc2lk
ZXIgZGVmaW5pbmcgYW4gRU5BQkxFIG1hY3JvIGZvciBpT1MgZGV2aWNlIG9yaWVudGF0aW9uIGNv
ZGUgYW5kL29yIG1vZGlmeWluZwogICAgIC8vIHRoZSBiaW5kaW5ncyBzY3JpcHRzIHRvIHN1cHBv
cnQgZ2VuZXJhdGluZyBtb3JlIGNvbXBsaWNhdGVkIGNvbmRpdGlvbmFsIGNvZGUuCiAjaWYgZGVm
aW5lZChXVEZfUExBVEZPUk1fSU9TX0ZBTUlMWSkgJiYgV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkK
QEAgLTU1LDMgKzU3LDQgQEAKICNlbmRpZgogfTsKIAorZW51bSBQZXJtaXNzaW9uU3RhdGUgeyAi
Z3JhbnRlZCIsICJkZW5pZWQiIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxNDI5Mjc4
NmNjOGVmZWVmNWIxYTJmYzE1ZGM3MTBiZmVjMWMzMTEwLi40ZjhiZDgyZWQ3MDRjYWEwYTg3NjM5
MTdkZmEwYTY5MTVhY2NmYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTg2MzgsNiAr
ODYzOCw1OCBAQCB2b2lkIERvY3VtZW50OjpmcmFtZVdhc0Rpc2Nvbm5lY3RlZEZyb21Pd25lcigp
CiAgICAgZGV0YWNoRnJvbUZyYW1lKCk7CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorCitjb25zdCBPcHRpb25hbDxib29sPiYgRG9jdW1lbnQ6OmRldmljZU9yaWVudGF0aW9u
QWNjZXNzU3RhdGUoKSBjb25zdAoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAhPSB0aGlzKQor
ICAgICAgICByZXR1cm4gdG9wRG9jdW1lbnQoKS5kZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRl
KCk7CisKKyAgICByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlOworfQorCit2
b2lkIERvY3VtZW50OjpzZXREZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlKGJvb2wgZ3JhbnRl
ZCkKK3sKKyAgICBpZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykgeworICAgICAgICB0b3BEb2N1
bWVudCgpLnNldERldmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUoZ3JhbnRlZCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX2RldmljZU9yaWVudGF0aW9uQWNjZXNzU3RhdGUgPSBn
cmFudGVkOworCisgICAgaWYgKCFncmFudGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3Ig
KGF1dG8qIGZyYW1lID0gbV9mcmFtZTsgZnJhbWUgJiYgZnJhbWUtPndpbmRvdygpOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KG1fZnJhbWUpKQorICAgICAgICBmcmFtZS0+d2lu
ZG93KCktPnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOwor
fQorCitjb25zdCBPcHRpb25hbDxib29sPiYgRG9jdW1lbnQ6OmRldmljZU1vdGlvbkFjY2Vzc1N0
YXRlKCkgY29uc3QKK3sKKyAgICBpZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykKKyAgICAgICAg
cmV0dXJuIHRvcERvY3VtZW50KCkuZGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoKTsKKworICAgIHJl
dHVybiBtX2RldmljZU1vdGlvbkFjY2Vzc1N0YXRlOworfQorCit2b2lkIERvY3VtZW50OjpzZXRE
ZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpCit7CisgICAgaWYgKCZ0b3BEb2N1
bWVudCgpICE9IHRoaXMpIHsKKyAgICAgICAgdG9wRG9jdW1lbnQoKS5zZXREZXZpY2VNb3Rpb25B
Y2Nlc3NTdGF0ZShncmFudGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZGV2
aWNlTW90aW9uQWNjZXNzU3RhdGUgPSBncmFudGVkOworCisgICAgaWYgKCFncmFudGVkKQorICAg
ICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8qIGZyYW1lID0gbV9mcmFtZTsgZnJhbWUgJiYg
ZnJhbWUtPndpbmRvdygpOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KG1fZnJh
bWUpKQorICAgICAgICBmcmFtZS0+d2luZG93KCktPnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90
aW9uSWZOZWNlc3NhcnkoKTsKK30KKworI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5H
X0FQSSkKIFdvcmtsZXQmIERvY3VtZW50OjplbnN1cmVQYWludFdvcmtsZXQoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCA3NzhjMjEzM2M1NDM1N2RkNjc3MTk5ZGY3MTk0MTdiM2VkZTkzMTFh
Li5iOGI0NjkxZDE1NTJkODEwYjdmZWEzODM5MDBmZDk4MTBiMWYxZmI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMTIxNCwxMiArMTIxNCwxOSBAQCBwdWJsaWM6CiAjaW5jbHVkZSA8V2ViS2l0
QWRkaXRpb25zL0RvY3VtZW50SU9TLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIERldmljZU1vdGlvbkNvbnRy
b2xsZXImIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXImIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2ltdWxhdGVEZXZpY2VPcmllbnRhdGlvbkNoYW5nZShkb3Vi
bGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEpOwogI2VuZGlmCiAKKyAgICBjb25z
dCBPcHRpb25hbDxib29sPiYgZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZSgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpOwor
ICAgIGNvbnN0IE9wdGlvbmFsPGJvb2w+JiBkZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpIGNvbnN0
OworICAgIHZvaWQgc2V0RGV2aWNlTW90aW9uQWNjZXNzU3RhdGUoYm9vbCBncmFudGVkKTsKKyNl
bmRpZiAvLyBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAgICAgY29uc3QgRG9jdW1lbnRU
aW1pbmcmIHRpbWluZygpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRUaW1pbmc7IH0KIAogICAg
IFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBtb25vdG9uaWNUaW1lc3RhbXAoKSBjb25zdDsKQEAgLTE4
MzEsNiArMTgzOCwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hcmVGdWxsc2NyZWVuQ29udHJv
bHNIaWRkZW4geyBmYWxzZSB9OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgIE9wdGlvbmFsPGJvb2w+IG1fZGV2aWNlT3JpZW50YXRpb25BY2Nlc3NTdGF0ZTsK
KyAgICBPcHRpb25hbDxib29sPiBtX2RldmljZU1vdGlvbkFjY2Vzc1N0YXRlOworI2VuZGlmCisK
ICAgICBIYXNoU2V0PEhUTUxQaWN0dXJlRWxlbWVudCo+IG1fdmlld3BvcnREZXBlbmRlbnRQaWN0
dXJlczsKICAgICBIYXNoU2V0PEhUTUxQaWN0dXJlRWxlbWVudCo+IG1fYXBwZWFyYW5jZURlcGVu
ZGVudFBpY3R1cmVzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAzYTBkYzNi
YjAzZGNkNzBiZTk0ZWY0Yjk4NjIxZDk3OTU2MGU3ZWJhLi5kMDA5YTg0ZDJjYjc5OGRhYTllNGI5
MzhkZjM2YzEzYmUyZTRlYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQ4
Miw2ICs0ODIsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNz
KFN0cmluZyYmIC8qc3ViRnJhbWVIb3N0Ki8sIFN0cmluZyYmIC8qdG9wRnJhbWVIb3N0Ki8sIHVp
bnQ2NF90IC8qZnJhbWVJRCovLCB1aW50NjRfdCAvKnBhZ2VJRCovLCBXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQgKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKGZhbHNlKTsgfQogICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiAvKnN1YkZyYW1lSG9z
dCovLCBTdHJpbmcmJiAvKnRvcEZyYW1lSG9zdCovLCB1aW50NjRfdCAvKmZyYW1lSUQqLywgdWlu
dDY0X3QgLypwYWdlSUQqLywgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBj
YWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Bl
cm1pc3Npb24oY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2sodHJ1ZSk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgU2VjdXJpdHlPcmln
aW4mLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2Fs
bGJhY2sodHJ1ZSk7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVF
bGVtZW50KEhUTUxNZW51RWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVN
ZW51RWxlbWVudChIVE1MTWVudUVsZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5z
ZXJ0TWVudUl0ZW1FbGVtZW50KEhUTUxNZW51SXRlbUVsZW1lbnQmKSB7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAppbmRleCBkZmExMTI0ODRhM2E0NzdlM2RjMDIyYTM0Y2EzNGRmM2ZmYTkz
ZTMyLi5hODM1NWQ4MmJmYjhmZTVhNzI1MjJmYzc0YzhhOTcyNzczMWMwZDY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xODI2LDUwICsxODI2LDEzNCBAQCBib29sIERPTVdpbmRv
dzo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2
ZW50TGlzdGVuZQogICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc0dhbWVwYWRFdmVudFR5cGUo
ZXZlbnRUeXBlKSkKICAgICAgICAgaW5jcmVtZW50R2FtZXBhZEV2ZW50TGlzdGVuZXJDb3VudCgp
OwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBlbHNlIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpCisgICAgICAg
IHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIGVs
c2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpCisgICAg
ICAgIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKKyNlbmRpZgor
CisgICAgcmV0dXJuIHRydWU7Cit9CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQot
ICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25F
dmVudEVuYWJsZWQoKSAmJiBkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPmxvYWRlcigpICYmIGRv
Y3VtZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CisK
K0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogRE9NV2luZG93OjpkZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIoKSBjb25zdAorewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAg
IGlmICgoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCB8fCBldmVu
dFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpKSB7Ci0gICAgICAg
ICAgICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpICYmIGlzU2VjdXJlQ29u
dGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
ZGV2aWNlb3JpZW50YXRpb25FdmVudCkKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkuYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhp
cyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgp
LT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkuYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoaXNTZWN1cmVDb250ZXh0KCkpCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcs
ICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBs
aXN0ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9y
aWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRl
dmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3Npbmcg
Y29udGV4dCBpcyBub3Qgc2VjdXJlLiJfcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAg
ICByZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIoKSA6IG51bGxwdHI7CiAjZWxzZQotICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNlY3Vy
aXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICAg
ICAgICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90
aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgICAgICAgICBjb250cm9s
bGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEg
ZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBz
YW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgIH0gZWxz
ZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7
Ci0gICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpICYmIGlz
U2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJv
bShwYWdlKCkpKQotICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLT5hZGREZXZpY2VFdmVu
dExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGlzU2VjdXJlQ29udGV4dCgpKQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5n
LCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lciBm
cm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0
aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVz
c2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rp
b24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBp
cyBub3Qgc2VjdXJlLiJfcyk7Ci0gICAgICAgICAgICB9CisgICAgcmV0dXJuIERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpOworI2VuZGlmCit9CisKK0RldmljZU1vdGlv
bkNvbnRyb2xsZXIqIERPTVdpbmRvdzo6ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0Cit7
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1
bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgOiBudWxscHRyOworI2Vsc2UKKyAgICBy
ZXR1cm4gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpOworI2VuZGlmCit9CisK
K2Jvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0
cmluZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnNl
dHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSB8fCAhZG9jdW1lbnQoKSB8
fCAhZG9jdW1lbnQoKS0+bG9hZGVyKCkgfHwgIWRvY3VtZW50KCktPmxvYWRlcigpLT5kZXZpY2VP
cmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiQVBJIGlzIGRp
c2FibGVkIl9zOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFpc1Nl
Y3VyZUNvbnRleHQoKSkgeworICAgICAgICBtZXNzYWdlID0gIkJyb3dzaW5nIGNvbnRleHQgaXMg
bm90IHNlY3VyZSJfczsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICgh
aXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpKSB7CisgICAgICAgIG1lc3NhZ2UgPSAi
U291cmNlIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhl
IG1haW4gcGFnZSJfczsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3Jp
ZW50YXRpb25MaXN0ZW5lcihjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgU3RyaW5nJiBtZXNzYWdl
KSBjb25zdAoreworICAgIFN0cmluZyBpbm5lck1lc3NhZ2U7CisgICAgaWYgKCFpc0FsbG93ZWRU
b1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGlubmVyTWVzc2FnZSkpIHsKKyAgICAgICAgbWVz
c2FnZSA9IG1ha2VTdHJpbmcoIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSAiLCBldmVudFR5cGUs
ICIgZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogIiwgaW5uZXJNZXNzYWdlLCAiLiIpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGZyYW1lKCktPnNldHRpbmdzKCkuZGV2
aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8gcGVy
bWlzc2lvblN0YXRlID0gKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRp
b25FdmVudCkgPyBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1N0YXRlKCkgOiBk
b2N1bWVudCgpLT5kZXZpY2VNb3Rpb25BY2Nlc3NTdGF0ZSgpOworICAgICAgICBpZiAocGVybWlz
c2lvblN0YXRlICYmICEqcGVybWlzc2lvblN0YXRlKSB7CisgICAgICAgICAgICBtZXNzYWdlID0g
bWFrZVN0cmluZygiTm8gIiwgZXZlbnRUeXBlLCAiIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1
c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLiIpOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZl
bnQpCi0gICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7
Ci0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgaWYgKCFwZXJt
aXNzaW9uU3RhdGUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJObyAiLCBl
dmVudFR5cGUsICIgZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVl
biByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCit2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VP
cmllbnRhdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzKGV2
ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigp
OworICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZp
Y2VFdmVudExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGVy
cm9yTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRp
b25MaXN0ZW5lcihldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCwgZXJyb3JNZXNz
YWdlKSkgeworICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQor
ICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIGVycm9yTWVzc2FnZSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBkZXZpY2VDb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0
aGlzKTsKK30KKwordm9pZCBET01XaW5kb3c6OnN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRh
dGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1l
cygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
YXV0byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpKQor
ICAgICAgICBkZXZpY2VDb250cm9sbGVyLT5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlz
KTsKK30KKwordm9pZCBET01XaW5kb3c6OnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZO
ZWNlc3NhcnkoKQoreworICAgIGlmICghaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRl
dmljZW1vdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZGV2aWNlQ29u
dHJvbGxlciA9IGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKTsKKyAgICBpZiAoIWRldmljZUNvbnRy
b2xsZXIgfHwgZGV2aWNlQ29udHJvbGxlci0+aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcykp
CisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCFp
c0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoZXZlbnROYW1lcygp
LmRldmljZW1vdGlvbkV2ZW50LCBlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGZhaWxlZFRvUmVn
aXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CisgICAgICAgIGlmIChhdXRvKiBkb2N1
bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JN
ZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xsZXIt
PmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3Rv
cExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoaGFzRXZl
bnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKGF1dG8qIGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VNb3Rpb25Db250
cm9sbGVyKCkpCisgICAgICAgIGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlz
dGVuZXIoKnRoaXMpOworfQogCiB2b2lkIERPTVdpbmRvdzo6ZmFpbGVkVG9SZWdpc3RlckRldmlj
ZU1vdGlvbkV2ZW50TGlzdGVuZXIoKQogewpAQCAtMTk0MSwyMiArMjAyNSw2IEBAIGJvb2wgRE9N
V2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBFdmVudExpc3RlbmVyCiAgICAgICAgIHJlbW92ZVVubG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7
CiAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmV1bmxvYWRFdmVu
dCAmJiBhbGxvd3NCZWZvcmVVbmxvYWRMaXN0ZW5lcnModGhpcykpCiAgICAgICAgIHJlbW92ZUJl
Zm9yZVVubG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQgJiYgZG9jdW1lbnQoKSkKLSAgICAgICAg
ZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmljZUV2ZW50TGlz
dGVuZXIoKnRoaXMpOwotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2
aWNlb3JpZW50YXRpb25FdmVudCAmJiBkb2N1bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLT5k
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0
aGlzKTsKLSNlbHNlCi0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZp
Y2Vtb3Rpb25FdmVudCkgewotICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29u
dHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAg
ICAgIGNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0g
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50
KSB7Ci0gICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAg
IGNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0KLSNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbHNlIGlmIChldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50KQogICAgICAgICBkZWNyZW1lbnRTY3JvbGxF
dmVudExpc3RlbmVyc0NvdW50KCk7CkBAIC0xOTc3LDYgKzIwNDUsMTIgQEAgYm9vbCBET01XaW5k
b3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2
ZW50TGlzdGVuZXIKICAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBl
KGV2ZW50VHlwZSkpCiAgICAgICAgIGRlY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQo
KTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAo
ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAg
ICBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIGVs
c2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpCisgICAg
ICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTIwNTksMTggKzIxMzMsOSBAQCB2b2lkIERPTVdpbmRv
dzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxF
dmVudExpc3RlbmVycygpOwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpKSB7Ci0gICAgICAgIGRvY3VtZW50LT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCku
cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgICAgICBkb2N1bWVudC0+
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5l
cnMoKnRoaXMpOwotICAgIH0KLSNlbHNlCi0gICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAg
ICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSAg
ICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJl
bW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAg
IHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgICAg
IHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChtX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3Vu
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYmJiZmE5NTg3MmU0YTMzZTczNDI1Mjgx
ZTRhY2NiNGY3MDU5YjFjNC4uYmY0MzNkNjkzOGZjZmUzYmZkNTQxMjA0ZThkNzUzN2VmYzM2MDJh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC04Miw2ICs4MiwxMSBAQCBjbGFzcyBWaXN1
YWxWaWV3cG9ydDsKIGNsYXNzIFdlYktpdE5hbWVzcGFjZTsKIGNsYXNzIFdlYktpdFBvaW50Owog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK2NsYXNzIERldmljZU1vdGlvbkNvbnRy
b2xsZXI7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CisjZW5kaWYKKwogc3Ry
dWN0IEltYWdlQml0bWFwT3B0aW9uczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIApAQCAtMzEx
LDYgKzMxNiwxOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgc2Nyb2xsRXZlbnRMaXN0ZW5lckNv
dW50KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxFdmVudExpc3RlbmVyQ291bnQ7IH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHN0YXJ0TGlzdGVu
aW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgc3RvcExpc3Rl
bmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0YXJ0TGlz
dGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0b3BMaXN0ZW5p
bmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworCisgICAgYm9vbCBpc0FsbG93ZWRUb1Vz
ZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisgICAgYm9v
bCBpc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoY29uc3QgU3Ry
aW5nJiBldmVudFR5cGUsIFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisKKyAgICBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0Owor
ICAgIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25z
dDsKKyNlbmRpZgorCiAgICAgdm9pZCByZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbigpOwog
CiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHx8IEVOQUJMRShJT1NfR0VTVFVSRV9FVkVO
VFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcAppbmRleCAzMzY3ZDNk
YmY1OWZjMzM1NzI0OTc1OGFjNjNkZDE3MjVlMDc2MzY2Li44NDJiODU0ZWUyNTEyNThhNDEwNjJi
ZmUwZDA2NTQ0ZWRiM2M2ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxl
ci5jcHAKQEAgLTY5LDYgKzY5LDExIEBAIHZvaWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxs
RGV2aWNlRXZlbnRMaXN0ZW5lcnMoRE9NV2luZG93JiB3aW5kb3cpCiAgICAgICAgIG1fY2xpZW50
LnN0b3BVcGRhdGluZygpOwogfQogCitib29sIERldmljZUNvbnRyb2xsZXI6Omhhc0RldmljZUV2
ZW50TGlzdGVuZXIoRE9NV2luZG93JiB3aW5kb3cpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbGlz
dGVuZXJzLmNvbnRhaW5zKCZ3aW5kb3cpOworfQorCiB2b2lkIERldmljZUNvbnRyb2xsZXI6OmRp
c3BhdGNoRGV2aWNlRXZlbnQoRXZlbnQmIGV2ZW50KQogewogICAgIGZvciAoYXV0byYgbGlzdGVu
ZXIgOiBjb3B5VG9WZWN0b3IobV9saXN0ZW5lcnMudmFsdWVzKCkpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGV2aWNlQ29udHJvbGxlci5oCmluZGV4IGUxNjAzODVhZmUyZjk3MzUzYzBlYTIyZjI5ZTg1
NmYxOGUyMGIxYTguLjNkNWY5MGM1MGVlNGE1NGZjMGFkMTdjNjQ3MzVkZDY5Mzg3M2ZmZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCkBAIC00Niw2ICs0Niw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jik7CiAgICAg
dm9pZCByZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYpOwogICAgIHZvaWQgcmVt
b3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoRE9NV2luZG93Jik7CisgICAgYm9vbCBoYXNEZXZp
Y2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYpIGNvbnN0OwogCiAgICAgdm9pZCBkaXNwYXRjaERl
dmljZUV2ZW50KEV2ZW50Jik7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0dXJuICFtX2xpc3Rl
bmVycy5pc0VtcHR5KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAzMDNkN2Y4
MmQ0YjM3ZmRiYTFiN2YyZGQ0YThkYTI1N2U4YWI5NzdjLi5lODI0ZGY3NmE4NDJmMzIwN2ZhZTBl
Y2U2NDQ0ZTllMmYyNDVlZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC03NjQs
NiArNzY0LDExIEBAIGRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkOgogICBpbml0aWFsOiB0
cnVlCiAgIGNvbmRpdGlvbmFsOiBERVZJQ0VfT1JJRU5UQVRJT04KIAorZGV2aWNlT3JpZW50YXRp
b25QZXJtaXNzaW9uQVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBpbml0aWFsOiBmYWxzZQor
ICBjb25kaXRpb25hbDogREVWSUNFX09SSUVOVEFUSU9OCisKIHNob3VsZEVuYWJsZVRleHRBdXRv
c2l6aW5nQm9vc3Q6CiAgIHR5cGU6IGJvb2wKICAgaW5pdGlhbDogZmFsc2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGY1NTg0MzI1OTBmYmRlYjY4OTc5M2Uw
YjQ5YjI2Nzc4NDE2N2QyZWEuLjg0OTMxYWRmOTIyMjZkYTA0MjZkNzEyYTMxNGRjZThjOGFmNjNm
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTIsNiAr
MTIsMTUgQEAgRGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6CiAgIGNvbmRpdGlvbjogRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKICAgd2ViY29yZU5hbWU6IGRldmljZU9yaWVudGF0aW9u
RXZlbnRFbmFibGVkCiAKK0RldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQ6Cisg
IHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBjb25kaXRpb246IEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisgIHdlYmNvcmVOYW1lOiBkZXZpY2VPcmllbnRhdGlvblBlcm1p
c3Npb25BUElFbmFibGVkCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiUGVybWlzc2lvbiBBUEkgZm9y
IGRldmljZSBvcmllbnRhdGlvbiAvIG1vdGlvbiBhY2Nlc3MuIgorICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgLyBE
ZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIgorICBjYXRlZ29yeTogZXhwZXJp
bWVudGFsCisKIEphdmFTY3JpcHRFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1
ZTogdHJ1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCAz
ZWM2ZjAwZDI0ZmM5Mzk0MjY5MGEzZTcyOWZkMDdlZDdhM2FhNmM3Li5mYTk5ZGM1YTY5MzhjNmFm
MWQ3YzU0MzljMGRiZGYyNDU0YTM5ZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaApAQCAtMTczLDYgKzE3MywxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRpZExvc2VQb2ludGVyTG9jayhXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgU2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYktpdDo6V2ViUGFnZVBy
b3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9CisjZW5kaWYKKwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDbGlja0F1dG9GaWxsQnV0dG9uKFdlYktpdDo6V2ViUGFnZVBy
b3h5JiwgT2JqZWN0KikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzaWduSW5wdXRFbGVt
ZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgT2JqZWN0
KikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBhNDE2
NzY2ZTJiMzgzZTFiNTE0NDhmYzljYzQwMmMwMWYxYmViM2FhLi4xZmY0Y2ViNDMzNWJmNDhhYTky
ZTczMmQ4MTA2MzBkZGYzNDMxMmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFp
dHM8V0tQYWdlUG9saWN5Q2xpZW50QmFzZT4gewogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xp
ZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxX
S1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1Bh
Z2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VV
SUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNs
aWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xp
ZW50VjEyPiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRW
MCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywg
V0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQ
YWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdl
VUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMiwgV0tQYWdl
VUlDbGllbnRWMTM+IFZlcnNpb25zOwogfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpA
QCAtMTkwMyw2ICsxOTAzLDI0IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJl
ZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgICAg
ICBtX2NsaWVudC5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0odG9BUEkoJnBhZ2UpLCB0b0FQ
SShmcmFtZSksIHRvQVBJKHJlcXVlc3RpbmdEb21haW4uaW1wbCgpKSwgdG9BUEkoY3VycmVudERv
bWFpbi5pbXBsKCkpLCB0b0FQSShsaXN0ZW5lci5wdHIoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CiAgICAgICAgIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAg
ICAgIHZvaWQgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJQYWdl
UHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5yZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJt
aXNzaW9uKQorICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsK
KworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobV9jbGllbnQucmVxdWVzdERldmljZU9y
aWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbih0b0FQSSgmcGFnZSksIHRvQVBJKCZvcmlnaW4pLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgcmVx
dWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9j
bGllbnQucmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24pCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihtX2NsaWVudC5yZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbih0
b0FQSSgmcGFnZSksIHRvQVBJKCZvcmlnaW4pLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pKTsK
KyAgICAgICAgfQorI2VuZGlmCisKICAgICAgICAgLy8gUHJpbnRpbmcuCiAgICAgICAgIGZsb2F0
IGhlYWRlckhlaWdodChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lKSBm
aW5hbAogICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
VUlDbGllbnQuaAppbmRleCA1ZTU5NzNmOWFiMThiNDZhNjVlZmUwOGVkZjVmMzUwN2E3NzVkZjBi
Li43NDc2OGQ0YTFkZTQxZmM4ZTA5NjI2NGZmOGVmNjlmNjMxOTUwYTUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTEzNCw2ICsxMzQs
OCBAQCB0eXBlZGVmIHZvaWQgKCpXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxiYWNrKShXS1BhZ2VS
ZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SQogdHlwZWRlZiB2b2lkICgqV0tIYXNWaWRlb0lu
UGljdHVyZUluUGljdHVyZURpZENoYW5nZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgYm9vbCBo
YXNWaWRlb0luUGljdHVyZUluUGljdHVyZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBl
ZGVmIHZvaWQgKCpXS0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVn
cm91bmRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUmVzb3VyY2VMaW1pdCBsaW1pdCwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZXNpZ25JbnB1
dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIGJv
b2wgKCpXS1BhZ2VSZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHNlY3VyaXR5T3JpZ2luLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldLUGFnZVJlcXVlc3REZXZp
Y2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3Vy
aXR5T3JpZ2luUmVmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAog
Ly8gRGVwcmVjYXRlZAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2Fs
bGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFy
eVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1
dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0xMTQwLDYgKzEx
NDIsMTExIEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjEyIHsKICAgICBXS1BhZ2VS
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybTsKIH0gV0tQYWdlVUlDbGllbnRWMTI7CiAK
K3R5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjEzIHsKKyAgICBXS1BhZ2VVSUNsaWVudEJh
c2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7
CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93UGFnZTsKKyAgICBXS1BhZ2VV
SUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNsb3NlOworICAgIFdLUGFnZVRha2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZUZvY3VzOworICAgIFdLUGFnZUZvY3VzQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9j
dXM7CisgICAgV0tQYWdlVW5mb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bmZvY3VzOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVy
dENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgcnVuSmF2YVNjcmlw
dEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENv
bmZpcm1DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICBydW5KYXZhU2Ny
aXB0Q29uZmlybV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3Jp
cHRQcm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgcnVuSmF2
YVNjcmlwdFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVNldFN0YXR1
c1RleHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
U3RhdHVzVGV4dDsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50X2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlTWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRD
YWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICBtaXNzaW5nUGx1Z2luQnV0dG9uQ2xp
Y2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZURpZE5vdEhhbmRsZUtleUV2
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxl
S2V5RXZlbnQ7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlV2hlZWxFdmVudENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50OworICAgIFdL
UGFnZUdldFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdG9vbGJhcnNBcmVWaXNpYmxlOworICAgIFdLUGFnZVNldFRvb2xiYXJzQXJlVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9vbGJhcnNB
cmVWaXNpYmxlOworICAgIFdLUGFnZUdldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VT
ZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldE1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0U3RhdHVzQmFySXNWaXNpYmxl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNCYXJJc1Zpc2li
bGU7CisgICAgV0tQYWdlU2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0
SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VTZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzUmVzaXphYmxlOworICAgIFdLUGFn
ZUdldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlU2V0V2luZG93RnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRXaW5kb3dGcmFtZTsKKyAg
ICBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFja19kZXByZWNhdGVkRm9y
VXNlV2l0aFY2ICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbF9kZXByZWNhdGVkRm9yVXNl
V2l0aFY2OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRT
Y3JvbGw7CisgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQYWdl
UnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0OworICAg
IFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKKyAg
ICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOworICAg
IFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRv
IGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2
ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHRfdW5hdmFpbGFibGU7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tQ
YWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgICAgICAgICAg
ICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisgICAgV0tQYWdl
TW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZVVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgdW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisKKyAgICAv
LyBWZXJzaW9uIDIuCisgICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CisgICAgV0tQYWdl
SGlkZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoaWRlQ29sb3JQaWNrZXI7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQ7CisKKyAgICAvLyBWZXJzaW9uIDMuCisgICAgV0tQYWdlUGlubmVkU3RhdGVE
aWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5uZWRT
dGF0ZURpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNC4KKyAgICB2b2lkKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNl
ZDI7IC8vIFVzZWQgdG8gYmUgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
LgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW51c2VkMzsgLy8gVXNlZCB0byBiZSBkaWRSZWNvZ25pemVMb25n
TW91c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDQ7IC8vIFVzZWQgdG8gYmUgZGlkQ2Fu
Y2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICBXS1BhZ2VJc1BsYXlpbmdB
dWRpb0RpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGxh
eWluZ0F1ZGlvRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA1LgorICAgIFdLUGFnZURlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgICAg
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlRGlk
Q2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWRDbGlja0F1dG9GaWxsQnV0dG9uOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdEFs
ZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZp
cm1DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICBydW5KYXZhU2NyaXB0
Q29uZmlybV9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQ
cm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgcnVuSmF2YVNj
cmlwdFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZU1lZGlhU2Vzc2lv
bk1ldGFkYXRhRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWFT
ZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDYuCisgICAgV0tQYWdl
Q3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0Owor
ICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm07CisgICAgV0tQYWdlUnVuSmF2YVNj
cmlwdFByb21wdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5K
YXZhU2NyaXB0UHJvbXB0OworICAgIFdLQ2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yT3JpZ2luOworCisgICAgLy8gVmVyc2lvbiA3LgorICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsOworICAgIFdLRnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lOworCisgICAgLy8gVmVyc2lvbiA4LgorICAgIFdLUmVxdWVzdFBvaW50ZXJMb2NrQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFBvaW50
ZXJMb2NrOworICAgIFdLRGlkTG9zZVBvaW50ZXJMb2NrQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkTG9zZVBvaW50ZXJMb2NrOworCisgICAgLy8gVmVy
c2lvbiA5LgorICAgIFdLSGFuZGxlQXV0b3BsYXlFdmVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQXV0b3BsYXlFdmVudDsKKworICAgIC8vIFZl
cnNpb24gMTAuCisgICAgV0tIYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENo
YW5nZTsKKyAgICBXS0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVn
cm91bmRDYWxsYmFjayAgICAgICAgIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hp
bGVJbkZvcmVncm91bmQ7CisKKyAgICAvLyBWZXJzaW9uIDExLgorICAgIFdLUGFnZURpZFJlc2ln
bklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxiYWNrICAgICAgICAgZGlk
UmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlOworCisgICAgLy8gVmVy
c2lvbiAxMi4KKyAgICBXS1BhZ2VSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm1DYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybTsKKwor
ICAgIC8vIFZlcnNpb24gMTMuCisgICAgV0tQYWdlUmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvbkNhbGxiYWNrICAgICAgICAgICAgICByZXF1ZXN0RGV2aWNlT3JpZW50YXRp
b25BY2Nlc3NQZXJtaXNzaW9uOworICAgIFdLUGFnZVJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQ
ZXJtaXNzaW9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgcmVxdWVzdERldmljZU1vdGlvbkFj
Y2Vzc1Blcm1pc3Npb247Cit9IFdLUGFnZVVJQ2xpZW50VjEzOworCiAjaWZkZWYgX19jcGx1c3Bs
dXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZS5oCmluZGV4IGRhMDMxNGFlM2Y1OGNiZGU5ODAyOGUyNzI4OWVhZDQ0ZDZkMzQy
YmIuLjgxNWU4MDE4ODhlNWQ2NjRkNjVhZTNjYmFhZDY2NzJhMjVmZDdkY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKQEAgLTM0LDYg
KzM0LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBjbGFzcyBXS05hdmlnYXRpb25BY3Rp
b247CiBAY2xhc3MgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzOwogQGNsYXNzIFdLUHJldmlld0VsZW1l
bnRJbmZvOworQGNsYXNzIFdLU2VjdXJpdHlPcmlnaW47CiBAY2xhc3MgV0tXZWJWaWV3OwogQGNs
YXNzIFdLV2ViVmlld0NvbmZpZ3VyYXRpb247CiBAY2xhc3MgV0tXaW5kb3dGZWF0dXJlczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCmluZGV4IGRiZDA1M2U3ZmJkMGEwOTVmMDg4OGE3ZWRhMGJjMmJiYTczZTI1MzIu
LjI2MGQxZjRmZDE4MTE5MjIzNGVmMjUyNDEyNzNlZTk1OWQ2MWM0OGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aApAQCAtMTcxLDYgKzE3MSwyMyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRDaGFuZ2VTYWZlQXJlYVNob3VsZEFmZmVjdE9i
c2N1cmVkSW5zZXRzOihCT09MKXNhZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHMgV0tf
QVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRQcmVzZW50Rm9jdXNlZEVsZW1lbnRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29u
dHJvbGxlciAqKWNvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWREaXNtaXNzRm9jdXNlZEVsZW1lbnRW
aWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTIuMCkpOworCisvKiEgQGFic3RyYWN0IEFsbG93cyB5b3VyIGFwcCB0byBkZXRl
cm1pbmUgd2hldGhlciBvciBub3QgdGhlIGdpdmVuIHNlY3VyaXR5IG9yaWdpbiBzaG91bGQgaGF2
ZSBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9yaWVudGF0aW9uLgorIEBwYXJhbSBzZWN1cml0eU9y
aWdpbiBUaGUgc2VjdXJpdHkgb3JpZ2luIHdoaWNoIHJlcXVlc3RlZCBhY2Nlc3MgdG8gdGhlIGRl
dmljZSdzIG9yaWVudGF0aW9uLgorIEBwYXJhbSBkZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9u
IGhhbmRsZXIgdG8gY2FsbCBvbmNlIHRoZSBhcHAgaGFzIG1hZGUgaXRzIGRlY2lzaW9uLiBQYXNz
IFlFUyB0byBhbGxvdyB0byBvcmlnaW4gYWNjZXNzLCBOTyBvdGhlcndpc2UuCisKKyBJZiB5b3Ug
ZG8gbm90IGltcGxlbWVudCB0aGlzIG1ldGhvZCwgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBvcmll
bnRhdGlvbiB3aWxsIGJlIGdyYW50ZWQuCisgKi8KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzc0ZvclNlY3VyaXR5
T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tf
SU9TX1RCQSkpOworCisvKiEgQGFic3RyYWN0IEFsbG93cyB5b3VyIGFwcCB0byBkZXRlcm1pbmUg
d2hldGhlciBvciBub3QgdGhlIGdpdmVuIHNlY3VyaXR5IG9yaWdpbiBzaG91bGQgaGF2ZSBhY2Nl
c3MgdG8gdGhlIGRldmljZSdzIG1vdGlvbi4KKyBAcGFyYW0gc2VjdXJpdHlPcmlnaW4gVGhlIHNl
Y3VyaXR5IG9yaWdpbiB3aGljaCByZXF1ZXN0ZWQgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBtb3Rp
b24uCisgQHBhcmFtIGRlY2lzaW9uSGFuZGxlciBUaGUgZGVjaXNpb24gaGFuZGxlciB0byBjYWxs
IG9uY2UgdGhlIGFwcCBoYXMgbWFkZSBpdHMgZGVjaXNpb24uIFBhc3MgWUVTIHRvIGFsbG93IHRv
IG9yaWdpbiBhY2Nlc3MsIE5PIG90aGVyd2lzZS4KKworIElmIHlvdSBkbyBub3QgaW1wbGVtZW50
IHRoaXMgbWV0aG9kLCBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG1vdGlvbiB3aWxsIGJlIGdyYW50
ZWQuCisgKi8KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkQWxs
b3dEZXZpY2VNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAq
KXNlY3VyaXR5T3JpZ2luIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKwogI2Vsc2UgLy8gVEFS
R0VUX09TX0lQSE9ORQogLSAodm9pZClfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlv
bkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMuNCkpOwogLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggY2Ni
NzhhMjllMmE0YzJmZjE2ZDQyNTI1YWU1ZTQ2MGE3ODliYjdhMy4uNWViMjU3YTJhN2Q2ZDQzNzY3
ODA5NDI5YmU4OThjNTczZTUwNGUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaApAQCAtMTE5LDYgKzExOSwxMCBAQCBwcml2YXRlOgogICAgICAgICBib29s
IHJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIGZpbmFsOwogICAgICAgICB2b2lkIGRpZEV4Y2Vl
ZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQoV2ViUGFnZVByb3h5Jiwg
V0tSZXNvdXJjZUxpbWl0KSBmaW5hbDsKICAgICAgICAgdm9pZCBzYXZlRGF0YVRvRmlsZUluRG93
bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV1RG
OjpTdHJpbmcmLCBjb25zdCBVUkwmLCBBUEk6OkRhdGEmKSBmaW5hbDsKKyNlbmRpZgorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIHZvaWQgcmVxdWVzdERldmljZU9yaWVu
dGF0aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICAg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKSBmaW5hbDsKICNlbmRpZgogICAgICAgICBib29sIG5lZWRzRm9udEF0dHJpYnV0ZXMo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOyB9CiAgICAgICAgIHZvaWQgZGlkQ2hhbmdlRm9u
dEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmKSBmaW5hbDsKQEAgLTE4
Nyw2ICsxOTEsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3U2F2ZURhdGFUb0Zp
bGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21w
bGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOworI2VuZGlm
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgYm9vbCB3ZWJWaWV3U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25I
YW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25B
Y2Nlc3NGb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7CiAjZW5kaWYKICAgICAg
ICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVu
dFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdl
RGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VR
dW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFD
dXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lv
bkhhbmRsZXIgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0KaW5kZXggYjVhMGE1MDhiYzk5NmQzYzlhOTdmOTNhZjNlYTNmOTI1MDk3ZjY2NS4uMmEyNjg1
YjhkYTk5Zjg0YjEzMGY1MzM0MGY0M2I4OWEwYWZkN2M3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMzIsNiArMTMyLDEwIEBAIHZvaWQgVUlE
ZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1NhdmVEYXRhVG9GaWxlU3VnZ2VzdGVkRmlsZW5hbWVNaW1l
VHlwZU9yaWdpbmF0aW5nVVJMID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6c2F2ZURhdGFUb0ZpbGU6c3VnZ2VzdGVkRmlsZW5hbWU6bWltZVR5cGU6b3Jp
Z2luYXRpbmdVUkw6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1J1bk9wZW5QYW5l
bFdpdGhQYXJhbWV0ZXJzSW5pdGlhdGVkQnlGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5PcGVuUGFuZWxXaXRo
UGFyYW1ldGVyczppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOildOwogICAgIG1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNl
Y3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1
cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdTaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVy
OildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdTaG91bGRBbGxvd0RldmljZU1vdGlv
bkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25B
Y2Nlc3NGb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAjZW5kaWYKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3Jp
Z2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBl
Y3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmN1
cnJlbnRRdW90YTpjdXJyZW50T3JpZ2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6ZXhwZWN0
ZWRVc2FnZTpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlO
YW1lQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBl
Y3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRh
dGFiYXNlTmFtZTpkaXNwbGF5TmFtZTpjdXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1
cnJlbnREYXRhYmFzZVVzYWdlOmV4cGVjdGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwpAQCAt
ODQ0LDYgKzg0OCw0NSBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwo
V2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1Nob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcikKKyAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlE
ZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8gY2hlY2tlciA9IENvbXBs
ZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9y
KF93ZWJWaWV3OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NGb3JTZWN1cml0eU9y
aWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4p
ZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBzaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW46d3JhcHBlcihzZWN1cml0eU9yaWdp
bikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildIChCT09M
IGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRs
ZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNoZWNrZXIt
PmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihn
cmFudGVkKTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3VpRGVsZWdh
dGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1Nob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNz
Rm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIpCisgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9k
ZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxl
ckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpz
aG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFu
ZGxlcjopKTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmll
dzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IHNob3VsZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzRm9y
U2VjdXJpdHlPcmlnaW46d3JhcHBlcihzZWN1cml0eU9yaWdpbikgZGVjaXNpb25IYW5kbGVyOm1h
a2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildIChCT09MIGdyYW50ZWQpIG11dGFibGUgewor
ICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFu
ZGxlcigpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihncmFudGVkKTsKKyAgICB9KS5nZXQo
KV07Cit9CisjZW5kaWYKKwogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQ2hhbmdlRm9u
dEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmIGZvbnRBdHRyaWJ1dGVz
KQogewogICAgIGlmICghbmVlZHNGb250QXR0cmlidXRlcygpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMjQ1NTBlNDlkOGNmMWRlNDg4Yjk3NTJlMTJhYjMw
M2YxY2YzNTMwMC4uMWQxMmU1MWNiY2RlNGM0ZDUxYjRiYTdjNjI3YzYwMjc3ZmRkMGQ0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MTY4LDYgKzcxNjgs
MjggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNlck1lZGlhU3RhdGUoKQogI2VuZGlmCiB9
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRv
IG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnNlY3VyaXR5
T3JpZ2luKCkpOworICAgIG1fdWlDbGllbnQtPnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vz
c1Blcm1pc3Npb24oKnRoaXMsIG9yaWdpbi5nZXQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpLCBjYWxsYmFja0lEXShib29sIGdyYW50ZWQpIHsKKyAgICAgICAgaWYgKCF3
ZWFrVGhpcyB8fCAhaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlv
bk1vdGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lvbihjYWxsYmFja0lELCBncmFudGVkKSwgbV9w
YWdlSUQpOworICAgIH0pOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdERldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2lu
RGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpOworICAgIG1f
dWlDbGllbnQtPnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKCp0aGlzLCBvcmln
aW4uZ2V0KCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2tJ
RF0oYm9vbCBncmFudGVkKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIWlzVmFsaWQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25Nb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
RGVjaXNpb24oY2FsbGJhY2tJRCwgZ3JhbnRlZCksIG1fcGFnZUlEKTsKKyAgICB9KTsKK30KKyNl
bmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
dWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBp
ZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggMjE1NWQxNDJlNDRmYmE1NDQ1OGJjNzFmNTM5MWJlNmUwOWI0ZTgw
My4uMzI3NDMyZDljZjg1OGM1YjVmNWRjZjZmYTc2YzZkZThkMTU4YWNjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0MDEsNiArMTQwMSwxMSBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgIHZvaWQgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisjZW5kaWYKKwogICAgIHN0YXRp
YyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJhbFdlYlBhZ2VQcm94eSgpOwogCiAjaWYgRU5BQkxF
KEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBlODY0ZDRhOTZmYjY3ZjlhNTNmMWQ2MDljNjlmNzc2
NTIxMzg0YTAwLi5hMDU5N2U5YzA4YjYzNjI5NjNiZGI1NWQyZDM2MWYzOTI0OWZlNzI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBA
IC01MzIsNiArNTMyLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU3RvcFVS
TFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVu
dGlmaWVyKQogICAgIExvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6
VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIElQQzo6RGF0
YVJlZmVyZW5jZSBkYXRhKSBEZWxheWVkCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQorICAgIFJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24oc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwor
ICAgIFJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgor
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJ
ZGVudGlmaWVyRnJvbURhdGEoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwg
U3RyaW5nIHByZWZlcnJlZEZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Ug
ZGF0YSkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJvbUZpbGVQYXRoKFN0cmlu
ZyBpZGVudGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBmaWxlUGF0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKaW5kZXggNjdmZDdhNzIwY2UyZjMzOTc3MDM1MTQ4YmRiZDJjZWZhN2M3
ZmQzNS4uN2Y1MDU3MGRjNGEzZDBmZTFkMDU5ZmZkOTVlODJjYjFjNjM5NWM5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKQEAgLTEzMjAsNCArMTMyMCwxNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFjY2Vzc1Blcm1pc3Npb24o
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3BhZ2UucmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNj
ZXNzUGVybWlzc2lvbihvcmlnaW4sIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2Fs
bGJhY2spCit7CisgICAgbV9wYWdlLnJlcXVlc3REZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9u
KG9yaWdpbiwgV1RGTW92ZShjYWxsYmFjaykpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGY5MjZhMjU4YWQ4NWFiMDc3OTE2ZDBjYjIz
NTI4NGQ4ZWIzYmRhYTcuLjMwMzQzZGVmMWVmNWZmMjk1OWM0MDBlM2Y0OGE0NjU3YWU3ZGI5NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Niw2ICszNjYsMTEgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYpIGZpbmFsOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgcmVxdWVzdERldmljZU9yaWVudGF0aW9u
QWNjZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyNlbmRpZgorCiAgICAgU3RyaW5n
IG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJGcmFtZT4gbV9jYWNoZWRG
cmFtZVNldExhcmdlc3RGcmFtZTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVI
YXNIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODk2ODc2MGY5ZTRlNjZmYTFmNGQ1OTE2NmE3
MmU3MDkxMjg0OWUwZS4uYjViZTcwMzJkZjMzNWUzNzNhYTllNThkZGI4Y2UyMTdkMGNjMTIxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYz
NTQsNiArNjM1NCwzOSBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmlu
ZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LAogICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVEb21haW46
OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHN1YkZyYW1lSG9zdCksIFJlZ2lzdHJhYmxlRG9tYWlu
Ojp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdCh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBtX3BhZ2VJ
RCwgcHJvbXB0RW5hYmxlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICNlbmRp
ZgorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3N0YXRpYyB1aW50NjRfdCBuZXh0
RGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCgpCit7CisgICAgc3Rh
dGljIHVpbnQ2NF90IG5leHRDYWxsYmFja0lEID0gMDsKKyAgICByZXR1cm4gKytuZXh0Q2FsbGJh
Y2tJRDsKK30KKwordm9pZCBXZWJQYWdlOjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7CisgICAgYXV0byBjYWxsYmFja0lE
ID0gbmV4dERldmljZU9yaWVudGF0aW9uTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrSUQoKTsKKyAg
ICBBU1NFUlQoIW1fZGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tNYXAu
Y29udGFpbnMoY2FsbGJhY2tJRCkpOworICAgIG1fZGV2aWNlT3JpZW50YXRpb25Nb3Rpb25QZXJt
aXNzaW9uQ2FsbGJhY2tNYXAuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKwor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdERldmljZU9yaWVudGF0aW9u
QWNjZXNzUGVybWlzc2lvbihvcmlnaW4uZGF0YSgpLCBjYWxsYmFja0lEKSk7Cit9CisKK3ZvaWQg
V2ViUGFnZTo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb24oY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjYWxsYmFjaykKK3sKKyAgICBhdXRvIGNhbGxiYWNrSUQgPSBuZXh0RGV2aWNlT3JpZW50YXRp
b25Nb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCgpOworICAgIEFTU0VSVCghbV9kZXZpY2VPcmll
bnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5jb250YWlucyhjYWxsYmFja0lEKSk7
CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC5hZGQo
Y2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihvcmlnaW4uZGF0
YSgpLCBjYWxsYmFja0lEKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9y
aWVudGF0aW9uTW90aW9uQWNjZXNzUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIGJvb2wgZ3JhbnRlZCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9kZXZpY2VPcmllbnRh
dGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcC50YWtlKGNhbGxiYWNrSUQpOworICAgIEFT
U0VSVChjYWxsYmFjayk7CisgICAgY2FsbGJhY2soZ3JhbnRlZCk7Cit9CisjZW5kaWYKICAgICAK
IHN0YXRpYyBTaGFyZVNoZWV0Q2FsbGJhY2tJRCBuZXh0U2hhcmVTaGVldENhbGxiYWNrSUQoKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGQyMWVh
ZmJjNTIzNTJjMjU3Mjc5ZjhmMzJlYTY1NjM5MDhlYjZhOTIuLjQ0ODdiMDE2MjgxMGViNGJjZjI5
ZjBkYWVmNGUxNWE3ZTUwNmZkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKQEAgLTExMTEsNiArMTExMSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1
ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1l
SG9zdCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
YWxsYmFjayk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAg
dm9pZCByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uKGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbihjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2Vu
ZGlmCisKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJz
ZWRVUkwmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwog
ICAgIHZvaWQgZGlkQ29tcGxldGVTaGFyZVNoZWV0KGJvb2wgd2FzQ29tcGxldGVkLCBTaGFyZVNo
ZWV0Q2FsbGJhY2tJRCBjb250ZXh0SWQpOwogICAgIApAQCAtMTIwNyw2ICsxMjEyLDEwIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24pOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorICAgIHZvaWQgZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uTW90aW9uQWNjZXNz
UGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCk7Cisj
ZW5kaWYKKwogI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKICAgICBzdGF0
aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRF
dmVudCopOwogI2VuZGlmCkBAIC0xODM3LDYgKzE4NDYsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBncmFudGVkKT4+IG1fc3RvcmFn
ZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tNYXA7CiAgICAgSGFzaE1hcDxTaGFyZVNoZWV0Q2FsbGJh
Y2tJRCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgY29tcGxldGVkKT4+IG1fc2hhcmVTaGVldFJl
c3BvbnNlQ2FsbGJhY2tNYXA7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IEhhc2hNYXA8dWludDY0X3QsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGdyYW50
ZWQpPj4gbV9kZXZpY2VPcmllbnRhdGlvbk1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcDsKKyNl
bmRpZgorCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIHVpbnQ2NF90PiBtX2FwcGxpY2F0aW9uTWFuaWZlc3RGZXRjaENhbGxiYWNrTWFwOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgppbmRleCBjYjBiNTcwOTMzNjRjMGU1NTQyNDNmOTMwOWMzOTI1ZDU0OGFm
NGYwLi42ZGM5YmU0OTczMWFmMmJlMmE1ZGQzMDBkMjA0OTA3YWExNTFjMjNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
QEAgLTM2NCw2ICszNjQsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7
CiAgICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKKyNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIERpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlv
bk1vdGlvbkFjY2Vzc1Blcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBjYWxsYmFja0lELCBib29s
IGdyYW50ZWQpCisjZW5kaWYKKwogICAgICMgUHJpbnRpbmcuCiAgICAgQmVnaW5QcmludGluZyh1
aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQogICAg
IEVuZFByaW50aW5nKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBlMWQwNjEwZDExOWY2NTMxNzUwNWNmYTdiN2M4ZDk5Y2M2NDEzNzUzLi43MjQw
NjEyODlkYTJjMDllZDRlMjYzY2VhZjcwODkxYzZkZGE4ZTBhIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDMt
MDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzMjkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ3NjQ1MzY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIGhlbHAgdGVzdCB0
aGUgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQWNjZXNzKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dE
ZXZpY2VNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKFdUUjo6cmVxdWVzdERldmljZU1vdGlvbkFjY2Vzc1Blcm1p
c3Npb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhP
cHRpb25zKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aGFuZGxlRGV2aWNl
T3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpoYW5kbGVEZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzcyk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTaG91bGRBbGxvd0RldmljZU1vdGlv
bkFjY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZSk6CisKIDIwMTktMDMtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBEbyBub3Qgc2hhcmUgV2ViUHJvY2Vzc2VzIGJldHdlZW4gcHJpdmF0ZSBh
bmQgcmVndWxhciBzZXNzaW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggMGU3OWQ4
MGI2MDFmMzI5NWU4YjgxNWJhMTAwOGI5OTdkMWI4MGM2Zi4uZWVlMzhkNjllZmIwNDEwNTY1OWQx
YmRlYzIxNzVlMmUzOTFiMWIyNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0xMDQs
NiArMTA0LDEwIEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICBib29sZWFuIGlzQ29tbWFu
ZEVuYWJsZWQoRE9NU3RyaW5nIG5hbWUpOwogICAgIHVuc2lnbmVkIGxvbmcgd2luZG93Q291bnQo
KTsKIAorICAgIC8vIERldmljZSBPcmllbnRhdGlvbiBNb3Rpb24uCisgICAgdm9pZCBzZXRTaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKGJvb2xlYW4gdmFsdWUpOworICAgIHZvaWQg
c2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MoYm9vbGVhbiB2YWx1ZSk7CisKICAgICAv
LyBTcGVjaWFsIERPTSB2YXJpYWJsZXMuCiAgICAgYXR0cmlidXRlIGJvb2xlYW4gZ2xvYmFsRmxh
ZzsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKaW5kZXggZDQ2MjI0NmNkYjljMThmNzdjZTQ1ZDczMTM3MjgwNGE2NTFkZDMw
Mi4uNWEwMjIwZTM5YjE4YjE0ZDhlNzgyM2EzYzY4NGM2NjM2M2VlMDBlYyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBA
IC0xMjk0LDYgKzEyOTQsMjAgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGREb3dubG9hZFVu
ZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkKICAgICBXS0J1bmRsZVBhZ2VQb3N0TWVz
c2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VO
YW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0
U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzcyhib29sIHZhbHVlKQoreworICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiU2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcyIp
KTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdL
Qm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCks
IG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRBbGxv
d0RldmljZU1vdGlvbkFjY2Vzcyhib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiU2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MiKSk7CisgICAgV0tSZXRhaW5QdHI8
V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS0Jvb2xlYW5DcmVhdGUodmFsdWUp
KTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7
Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKQogewogICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGVybWluYXRlTmV0d29ya1Byb2Nlc3MiKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4
IDcxM2E5NDMzNjM5MDVmMGM5Yjc2MGQ1NzRhYzhmMzI0ZDhkNTE2ZmMuLmExMGFjMDg5NTc5MDhh
MWE3ZTcyMzMzMjRhMjU3NGZiYWU1ZGE0YzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0zNDgsNiArMzQ4LDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKTsKICAgICB2
b2lkIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogICAgIHZvaWQgc2V0U2hv
dWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJvb2wpOworICAgIHZvaWQgc2V0U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzcyhib29sKTsKKyAgICB2b2lkIHNldFNob3Vs
ZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKGJvb2wpOwogCiAgICAgYm9vbCBkaWRDYW5jZWxDbGll
bnRSZWRpcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q7IH0K
ICAgICB2b2lkIHNldERpZENhbmNlbENsaWVudFJlZGlyZWN0KGJvb2wgdmFsdWUpIHsgbV9kaWRD
YW5jZWxDbGllbnRSZWRpcmVjdCA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCmluZGV4IDg1YTlkYzMwYTljYjhmNjkyNGQwNzI1YjBiYzRhZDQyM2U2
ZGRkNjYuLjIwZWZjYzc1YzU0ODY4ZWY0MjkzYzFjMDQ4MGM5ZDI5YzIyNmE4OTIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yNjEsNiArMjYxLDE2IEBA
IHN0YXRpYyB2b2lkIHJlcXVlc3RQb2ludGVyTG9jayhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9p
ZCopCiAgICAgV0tQYWdlRGlkQWxsb3dQb2ludGVyTG9jayhwYWdlKTsKIH0KIAorc3RhdGljIGJv
b2wgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQWNjZXNzUGVybWlzc2lvbihXS1BhZ2VSZWYsIFdL
U2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2b2lkKikKK3sKKyAgICByZXR1cm4gVGVz
dENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRsZURldmljZU9yaWVudGF0aW9uQWNjZXNzUGVy
bWlzc2lvblJlcXVlc3Qob3JpZ2luKTsKK30KKworc3RhdGljIGJvb2wgcmVxdWVzdERldmljZU1v
dGlvbkFjY2Vzc1Blcm1pc3Npb24oV0tQYWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdp
biwgY29uc3Qgdm9pZCopCit7CisgICAgcmV0dXJuIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5oYW5kbGVEZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChvcmlnaW4pOworfQor
CiBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVm
IG5hdmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3
ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpOwpAQCAtNTY5LDggKzU3OSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdl
YlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICByZXNldFBy
ZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMpOwogCiAgICAgcGxhdGZvcm1DcmVh
dGVXZWJWaWV3KGNvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xp
ZW50VjggcGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDgsIG1fbWFpbldlYlZpZXcuZ2V0KCkg
fSwKKyAgICBXS1BhZ2VVSUNsaWVudFYxMyBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgMTMs
IG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8v
IGNsb3NlCkBAIC02MzYsNyArNjQ2LDE0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdl
YlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwg
Ly8gcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsCiAgICAgICAgIDAsIC8vIGZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZQogICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2ssCi0gICAgICAgIDAs
CisgICAgICAgIDAsIC8vIGRpZExvc2VQb2ludGVyTG9jaworICAgICAgICAwLCAvLyBoYW5kbGVB
dXRvcGxheUV2ZW50CisgICAgICAgIDAsIC8vIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlk
Q2hhbmdlCisgICAgICAgIDAsIC8vIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hp
bGVJbkZvcmVncm91bmQKKyAgICAgICAgMCwgLy8gZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25n
UGFzc3dvcmRBcHBlYXJhbmNlCisgICAgICAgIDAsIC8vIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29u
ZmlybQorICAgICAgICByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uLAor
ICAgICAgICByZXF1ZXN0RGV2aWNlTW90aW9uQWNjZXNzUGVybWlzc2lvbgogICAgIH07CiAgICAg
V0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVu
dC5iYXNlKTsKIApAQCAtOTQyLDYgKzk1OSw5IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAK
ICAgICBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IGZhbHNlOwogCisg
ICAgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzID0gZmFsc2U7CisgICAgbV9z
aG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyA9IGZhbHNlOworCiAgICAgbV93b3JrUXVldWVN
YW5hZ2VyLmNsZWFyV29ya1F1ZXVlKCk7CiAKICAgICBtX3JlamVjdHNQcm90ZWN0aW9uU3BhY2VB
bmRDb250aW51ZUZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyA9IGZhbHNlOwpAQCAtMjU0Nyw2
ICsyNTY3LDE4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmhhbmRsZUNoZWNrT2ZVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luKFdLRnJhbWVSZWYgZnJhbWUsCiAgICAgV0tVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tTZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGNoZWNrUmVxdWVzdCwgc2FsdFN0cmlu
Zy5nZXQoKSwgc2V0dGluZ3NGb3JPcmlnaW4ob3JpZ2luSGFzaCkucGVyc2lzdGVudFBlcm1pc3Np
b24oKSk7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU9yaWVudGF0aW9u
QWNjZXNzUGVybWlzc2lvblJlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pCit7Cisg
ICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4dChtYWtlU3RyaW5nKCJSZWNlaXZlZCBk
ZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzIHBlcm1pc3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkg
b3JpZ2luIFwiIiwgb3JpZ2luVXNlclZpc2libGVOYW1lKG9yaWdpbiksICJcIi5cbiIpKTsKKyAg
ICByZXR1cm4gbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzOworfQorCitib29s
IFRlc3RDb250cm9sbGVyOjpoYW5kbGVEZXZpY2VNb3Rpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVz
dChXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbikKK3sKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9u
LT5vdXRwdXRUZXh0KG1ha2VTdHJpbmcoIlJlY2VpdmVkIGRldmljZSBtb3Rpb24gYWNjZXNzIHBl
cm1pc3Npb24gcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luIFwiIiwgb3JpZ2luVXNlclZpc2li
bGVOYW1lKG9yaWdpbiksICJcIi5cbiIpKTsKKyAgICByZXR1cm4gbV9zaG91bGRBbGxvd0Rldmlj
ZU1vdGlvbkFjY2VzczsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QoV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3QpCiB7CiAg
ICAgYXV0byBvcmlnaW5IYXNoID0gdXNlck1lZGlhT3JpZ2luSGFzaCh1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggYTBjM2E3MmU3ODIwMzBjODYyZWQzYjA0MDY4OGY3ZWE0N2Zi
YWMwNy4uZDk2ZmRkMGZmYmY1ZjFkNjQ4ODQzYmRkNmE4YWIzMTM4YmQ5MDE1ZSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTUwLDYgKzE1MCwxMCBAQCBwdWJs
aWM6CiAgICAgdW5zaWduZWQgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdp
bihXS1N0cmluZ1JlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7CiAgICAgdm9pZCByZXNldFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4oV0tTdHJpbmdSZWYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW5TdHJpbmcsIFdLU3RyaW5nUmVmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcp
OwogCisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uLgorICAgIGJvb2wgaGFuZGxl
RGV2aWNlT3JpZW50YXRpb25BY2Nlc3NQZXJtaXNzaW9uUmVxdWVzdChXS1NlY3VyaXR5T3JpZ2lu
UmVmKTsKKyAgICBib29sIGhhbmRsZURldmljZU1vdGlvbkFjY2Vzc1Blcm1pc3Npb25SZXF1ZXN0
KFdLU2VjdXJpdHlPcmlnaW5SZWYpOworCiAgICAgLy8gQ29udGVudCBFeHRlbnNpb25zLgogICAg
IHZvaWQgY29uZmlndXJlQ29udGVudEV4dGVuc2lvbkZvclRlc3QoY29uc3QgVGVzdEludm9jYXRp
b24mKTsKICAgICB2b2lkIHJlc2V0Q29udGVudEV4dGVuc2lvbnMoKTsKQEAgLTE5OSw2ICsyMDMs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyhib29s
KTsKIAogICAgIHZvaWQgc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJv
b2wgdmFsdWUpIHsgbV9zaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMgPSB2YWx1
ZTsgfQorICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2Vzcyhib29s
IHZhbHVlKSB7IG1fc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcyA9IHZhbHVlOyB9
CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2Vzcyhib29sIHZhbHVlKSB7
IG1fc2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MgPSB2YWx1ZTsgfQogCiAgICAgdm9pZCBz
ZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLU3RyaW5nUmVmIGhvc3ROYW1lKTsKQEAg
LTUwOCw2ICs1MTQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJs
ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmUgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9zaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3MgeyBmYWxz
ZSB9OwogCiAgICAgYm9vbCBtX3JlamVjdHNQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZUZvckF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhbmRsZXNBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZXMgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcAppbmRleCA2NjYwY2RjOTIxZjg5N2NjZTJmNzcxZDhkNTNhNWMyNmYy
MTI0OGY5Li4yNWZkZTU2ZmQ1ZWZjYzhlMjEyMWM2ZWEzM2RmZTlhZWQ3MDUzN2EyIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtNzQ3LDYgKzc0NywyMCBA
QCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRs
ZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlw
ZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9v
bGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOwor
ICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFjY2VzcyhXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2Fn
ZU5hbWUsICJTZXRTaG91bGRBbGxvd0RldmljZU1vdGlvbkFjY2VzcyIpKSB7CisgICAgICAgIEFT
U0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOwor
ICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1l
c3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFNob3Vs
ZEFsbG93RGV2aWNlTW90aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhtZXNzYWdlTmFtZSwgIlJ1blVJUHJvY2Vzc1NjcmlwdCIpKSB7CiAgICAgICAgIFdLRGljdGlv
bmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlS
ZWY+KG1lc3NhZ2VCb2R5KTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNjcmlw
dEtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2NyaXB0IikpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGI1M2U5M2ZkNmJjYjU0Nzc3ZWY0OTg3OThlMGQ4ZTg3MzRmNzg0YjUuLjNkNTlkMDRi
MWU3MjRiNDYyNmYwYTlhZjNkYjNjOGNhNWE4NWFlMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAxOS0wMy0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTMyOQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRl
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9u
LWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50
YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTAzLTAzICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVwYXJlIHRvIGltcHJvdmUgaGFu
ZGxpbmcgb2YgY29udmVyc2lvbiBvZiBmbG9hdCB0byBzdHJpbmdzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAyMjk3ZjVhYjFiM2ViNDllNWNmZDMwZDg1YjI2N2Q0ZDY4YmE2YzQyLi4xNmUyNTQ2ODIz
ZWEzMjczZTBlODVmMDE1ZjRmY2EwMWVkODA2NTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMy
LDYgKzMyLDcgQEAgZmFzdC96b29taW5nL2lvcyBbIFNraXAgXQogZmFzdC9mb3Jtcy9pb3MgWyBT
a2lwIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgU2tpcCBdCiBmYXN0L3Zpc3VhbC12aWV3cG9ydC9p
b3MvIFsgU2tpcCBdCitmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFNraXAgXQogZmFzdC9ldmVu
dHMvaW9zIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy93YXRjaG9zIFsgU2tpcCBdCiBmYXN0L2V2ZW50
cy9wb2ludGVyL2lvcyBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1t
b3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDM1ODU5YzYzZDM3NDA5YjQzMjIzMmI3YWQxNjJhOTg0MjQ1OGYyZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2Vtb3Rpb24gZXZlbnRzIHdpbGwgYmUgZmly
ZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNl
aXZlZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHNlY3VyaXR5
IG9yaWdpbiAiIi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogTm8gZGV2aWNlbW90aW9uIGV2
ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMg
ZGVuaWVkLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1p
c3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlz
ICJkZW5pZWQiCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRl
bmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZkMjM5ODE5
NWEzMTRmZGYwNWUzY2Y2YTllMjJiYzA0NDhiZmZiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWRlbmllZC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIERldmljZU1v
dGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dE
ZXZpY2VNb3Rpb25BY2Nlc3MoZmFsc2UpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rp
b24iLCAoKSA9PiB7fSk7CisKK0RldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
dGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisKKyAgICBhZGRFdmVudExpc3RlbmVy
KCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1
ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jl
c3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhlYTE3ZjUz
Y2Q1MWRhMzZlNTBmYWFkOGZhYmNkNWVjNzZmYWY3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxMjogTm8gZGV2aWNlbW90aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGls
IHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2
aWNlIG1vdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4g
IiIuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lv
bigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImdy
YW50ZWQiCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFu
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90
aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU0MjE0N2Q4
MTg1OGYxZTA5NGViZTEwZmRmM2VhYmMyMDYxZWViMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWdyYW50ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VN
b3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93
RGV2aWNlTW90aW9uQWNjZXNzKHRydWUpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rp
b24iLCAoKSA9PiB7fSk7CisKK0RldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
dGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5l
cigiZGV2aWNlbW90aW9uIiwgKCkgPT4ge30pOworCisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9y
ZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQi
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVu
dGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRhMDMwZjEwZGJhZmZiMzY3YjcxYmFmYmQ5OTRlNzQ0MzIxY2Y4ZjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBA
QAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2VvcmllbnRhdGlvbiBldmVudHMg
d2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3Jh
bnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVybWlzc2lvbiByZXF1
ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IE5v
IGRldmljZW9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lv
biB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3Jp
ZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1MgcmVzdWx0IGlzICJkZW5p
ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Np
b24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg2ZjFiOTYxNTRiODE3ZmJkYTJkZGJjOTMxYThk
NmFkYTVlMjBiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0
bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5y
ZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BY2Nlc3MoZmFsc2UpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlv
biIsICgpID0+IHt9KTsKKworRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lv
bigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICByZXN1bHQgPSBfcmVzdWx0OworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOworCisgICAgYWRkRXZlbnRMaXN0
ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAg
ICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3Vs
dCIsICJkZW5pZWQiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1n
cmFudGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjQyYzkwYzQyZDUyNDU1ZTU2ZTcyZjg4ODRkY2ZjNjM5NmM4YmU0NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2Vvcmll
bnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJl
cXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3Mg
cGVybWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCitCYXNpYyB0ZXN0aW5n
IGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BBU1Mg
cmVzdWx0IGlzICJncmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYwMDFjY2UwZWYz
YmU0NGVlMzQ4OTIwOTBhMGQxNjFlNWQ4ZTRhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZ3JhbnRlZC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIERldmlj
ZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4iKTsKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKHRydWUpOworCithZGRFdmVudExpc3RlbmVy
KCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworRGV2aWNlT3JpZW50YXRpb25FdmVu
dC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICByZXN1bHQgPSBf
cmVzdWx0OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsK
KworICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOwor
CisgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9y
ZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9u
LW5vbi1zZWN1cmUtY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMv
ZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRtbAppbmRleCBl
ZDJkZDIwMzc3YzU3MzY1ZTFhNWY3ZmZjNTI1NGY3MjdkNzFiNWRjLi5mMzE0NGIzNWFlMDBlNTlj
ZTQwODZhZTYyN2NjZmE0ZWViZTcxOWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlv
bi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rp
b24gcnVuRGV2aWNlTW90aW9uVGVzdCgpCiAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNl
IG1vdGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIs
IGZ1bmN0aW9uKCkgeyB9KTsKICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RDb25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0
dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNh
dXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0
byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29u
dGV4dCBpcyBub3Qgc2VjdXJlLiIpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsK
IH0KQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rpb24gcnVuRGV2aWNlT3JpZW50YXRpb25UZXN0KCkK
ICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsK
ICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9
KTsKICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImxhc3RDb25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEg
ZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2lu
ZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vv
cmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5v
dCBzZWN1cmUuIik7CiAgICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3QoKTsKICAgICB9KTsKIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRh
dGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1l
eHBlY3RlZC50eHQKaW5kZXggMGZiN2Q3ZWJmMmQ4NDJkN2JiNzM0YWE4NDMzMThkODk2ODBkNDM0
Ni4uODZlMTg4MTg0OGNkYzIxODgzM2ZhMjdmNmY2ZGVjNzc2YzY3ZTRmNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1z
ZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9l
dmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50
eHQKQEAgLTEsMTAgKzEsMTEgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzNzogRGV2aWNlIE9y
aWVudGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6
IERldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA1MTogRGV2aWNlIE9yaWVudGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMjg6IERldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKIFRlc3Rz
IHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRp
b24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUg
Y29udGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCisKIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUt
Y29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVu
dGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IDRlNTRkMTFkOTk0MWU3NThl
MDI3NTBiODZkNDNlMzJiYzk0MzNlZWUuLmM4YTExZjVjNTlmNzA0NTZjNzM3OTA3MjlkMjQ3YjI4
NWNmZjk2MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2Rldmlj
ZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250
ZXh0Lmh0bWwKQEAgLTYsNiArNiwxNCBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdHJ5aW5n
IHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmlj
ZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuIik7
CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
aWYgKHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFjY2VzcykKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQWNjZXNzKHRy
dWUpOworCisgICAgaWYgKHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nl
c3MpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VNb3Rpb25BY2Nlc3Mo
dHJ1ZSk7Cit9CisKIC8vIGxvY2FsaG9zdCBpcyBzZWN1cmUgYnkgZGVmYXVsdC4KIAogbGV0IGxh
c3RDb25zb2xlTWVzc2FnZSA9IG51bGw7CkBAIC0xNSwxOSArMjMsMjUgQEAgaW50ZXJuYWxzLnNl
dENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoKG1lc3NhZ2UpID0+IHsKIAogZnVuY3Rpb24gcnVuRGV2
aWNlTW90aW9uVGVzdCgpCiB7CisgICAgZGVidWcoIiIpOwogICAgIGlmICghd2luZG93LkRldmlj
ZU1vdGlvbkV2ZW50KSB7CiAgICAgICAgIGNvbnNvbGUubG9nKCJEZXZpY2UgTW90aW9uIEFQSSBp
cyBub3Qgc3VwcG9ydGVkIik7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1Zygi
Iik7Ci0gICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciIpOwot
ICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAg
ICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZU51bGwoImxhc3RD
b25zb2xlTWVzc2FnZSIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBkZWJ1ZygiKiBS
ZXF1ZXN0aW5nIGRldmljZSBtb3Rpb24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNlTW90aW9uRXZl
bnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3Vs
dCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdy
YW50ZWQiKTsKKworICAgICAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOworICAgICAgICBk
ZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFk
ZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKKyAgICAgICAg
aW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlTnVsbCgibGFz
dENvbnNvbGVNZXNzYWdlIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
fSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5LDEyICs1MywxOSBAQCBmdW5jdGlvbiBydW5EZXZpY2VP
cmllbnRhdGlvblRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNv
bGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50
YXRpb24gbGlzdGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlv
biIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAg
ICAgICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBydW5EZXZp
Y2VNb3Rpb25UZXN0KCk7CisgICAgZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRp
b24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlz
c2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAg
ICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24KKyAgICAgICAgbGFz
dENvbnNvbGVNZXNzYWdlID0gbnVsbDsKKyAgICAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2
aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRl
dmljZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOworICAgICAgICBpbnRlcm5hbHMucG9z
dFRhc2soKCkgPT4geworICAgICAgICAgICAgc2hvdWxkQmVOdWxsKCJsYXN0Q29uc29sZU1lc3Nh
Z2UiKTsKKyAgICAgICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3QoKTsKKyAgICAgICAgfSk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA2OWM4Mzg0ZTJjODE4NjUyZjA0NWFjZjQ5NTU0Y2I2MmUyNzllZWFiLi4wYjhl
ODRkODA2OTc2NTlhNTQwOGVjYTA3YjgwYjg1NTMxMzc4MDgyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC03LDYgKzcsNyBAQAogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBjb21wb3NpdGluZy9pb3MgWyBQYXNzIF0K
K2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFz
cyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgUGFz
cyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVu
dHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1v
cmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA4
Njc3OWFmNDY1MTExMWIxODcxNWE1M2U3YjExZTNiMTFiOTczYTExLi45ZTk3YTViNWYwNWY4ZTEy
NDI2ZDlkMjk1M2UzMzc5MWRlNTNlMjRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2Vj
dXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9o
dHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29u
dGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTUgKzEsMTUgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA0NTogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRp
b24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250
ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDU6IEJsb2NrZWQgYXR0
ZW1wdCB0byBhZGQgYSBkZXZpY2VvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBC
cm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjg6
IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIsIHJl
YXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgogVGVzdHMgdGhhdCB0cnlpbmcg
dG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNl
b3JpZW50YXRpb24gbG9ncyBhbiBlcnJvciBpbiBub24tc2VjdXJlIGNvbnRleHRzLgogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAogKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRp
b24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQg
dG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRo
ZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29sZU1lc3Nh
Z2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2VvcmllbnRhdGlvbiBldmVudCBs
aXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgogCiAqIFJl
Z2lzdGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdl
IGlzICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlv
biBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgor
UEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZp
Y2Vtb3Rpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qg
c2VjdXJlLiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRz
L2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRh
dGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDMxYjg1ZjVkN2Q0
NWYzN2Y5ZDZiMTY1ZjY3MzdkZmU1OTIyZWRmNWMuLmFiMmI0MzNlZjk0M2M0MmFlMmE4MzU5ODM4
ODk1MTIwM2M5OTFiOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRw
L3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVu
dHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQK
QEAgLTEsMTEgKzEsMTcgQEAKK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiBhY2Nlc3MgcGVy
bWlzc2lvbiByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIuCitSZWNlaXZlZCBkZXZpY2UgbW90aW9uIGFjY2VzcyBwZXJtaXNzaW9uIHJlcXVlc3QgZm9y
IHNlY3VyaXR5IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIi4KIFRlc3RzIHRoYXQgdHJ5
aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRl
dmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMu
CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCisqIFJlcXVlc3RpbmcgZGV2aWNlIG9y
aWVudGF0aW9uIGFjY2Vzcy4uLgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCiAqIFJlZ2lzdGVy
aW5nIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lcgogUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2Ug
aXMgbnVsbAogCisqIFJlcXVlc3RpbmcgZGV2aWNlIG1vdGlvbiBhY2Nlc3MuLi4KK1BBU1MgcmVz
dWx0IGlzICJncmFudGVkIgogKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyCiBQ
QVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363746</attachid>
            <date>2019-03-06 08:52:48 -0800</date>
            <delta_ts>2019-03-06 09:01:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190306085248.patch</filename>
            <type>text/plain</type>
            <size>106230</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZkNWQxNmQwNDRhNTk5
ZWVkYzZjNjJkNmMyOGNmNTYwNTc2Y2QyMi4uNWRlYmJkODZhYjExMWZkMWI5NDc2ZTliMDQ4MTQw
Njg4MjZiZWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkV2ZW50Lmg6CisgICAgICAg
ICogZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbDoK
KyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQ6OnJlcXVl
c3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50Lmg6CisgICAgICAgICogZG9tL01pY3JvdGFza3MuY3BwOgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGV2aWNlTW90aW9uQ29udHJvbGxlciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50
YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb0Fk
ZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3Nh
cnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNl
T3JpZW50YXRpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9EZXZpY2VDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6Omhhc0RldmljZUV2ZW50TGlz
dGVuZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5oOgorICAgICAg
ICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKwogMjAxOS0wMy0wNiAgUm9iIEJ1aXMgIDxyYnVpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIENvbnNpZGVyIHN1cHBvcnRpbmcgdGhlIGByZWZlcnJlcnBv
bGljeWAgYXR0cmlidXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4ZTljZDNmMTgyOTI2OGZmZjY5NjIwZTIyNGVk
MzM4M2UzMTFmMDA0Li5jMGQwNGJjYWE4YTFjNzgxNjYzODk1YzJkZWNiODZhYjNjOGE5ZTkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTAzLTA2ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlv
biAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgor
ICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVz
LzU3CisKKyAgICAgICAgVGhpcyBhZGRzIG5ldyBTUEkgdG8gV0tVSURlbGVnYXRlUHJpdmF0ZSwg
dW50aWwgd2UgY2FuIG1ha2UgdGhpcyBBUEkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAg
KFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpz
ZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bmV4dERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzRGVjaXNpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIw
MTktMDMtMDYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBDb25zaWRl
ciBzdXBwb3J0aW5nIHRoZSBgcmVmZXJyZXJwb2xpY3lgIGF0dHJpYnV0ZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNjAxMjRmYzFjZGUxN2E0MDk5OTFhYWYwNmFkZjdiMzM5ZDdiOGUzOC4uNzA1
N2U3OTFhOGNlZDc0NmFiNGI3YzAyZTVjMzI2OTM0ZGY5NTBkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTY2OSw2ICs2NjksOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQu
aWRsCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL0RldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKKyAgICBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZS5pZGwKICAgICBkb20vRG9jdW1lbnQuaWRsCiAgICAgZG9tL0Rv
Y3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCiAgICAgZG9tL0RvY3VtZW50RnJhZ21l
bnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAppbmRleCAyNTVhYjQ0ZDZlYjVkMjU0NGY0ZjU5NWE3NGM2NWE0M2RkN2Q4ZDYzLi41YmJlOGEz
ZTlkOGJmMTQ0NGM5MWI4YjcxMjE4NWNjNTBjZmZmMmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTU1OSw2ICs1NTksOCBAQCAkKFBS
T0pFQ1RfRElSKS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9E
YXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbAor
JChQUk9KRUNUX0RJUikvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKKyQo
UFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmlkbAogJChQUk9KRUNUX0RJUikvZG9tL0RvY3VtZW50LmlkbAogJChQUk9KRUNUX0RJUikvZG9t
L0RvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20v
RG9jdW1lbnRGcmFnbWVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYjVmMDIyZGI2YmMzOGM4NzA1Mzc2ZDM1ZGMwYWUwZjUy
NWY5ZTFlNC4uMmI0ZDZhMzAwOGRkNDAxNTI2ODdjNzE2ZDlkODZhNWRjM2E1MzdhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTQ1
OSw2ICs0NTksMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNEZXZpY2VNb3Rpb25FdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRGV2aWNlTW90aW9uRXZlbnQuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRG9jdW1lbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVycy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDA2Njg3OTI2NTkyODRkYTc0Y2Q2OTlkOTg2
YTUwNTFmNjQ0YmQ2YWEuLjM2MWJkZjRjOWYwY2IwMzgwYTZlNDUxMzI3MjVmNWY4YzM5YTY3ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTY5LDYgKzU2OSw4IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2RvbS9Eb2N1bWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RvY3VtZW50
QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Eb2N1bWVu
dEZyYWdtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGI1NzVlNjhiZmZiYWJhZTkyMTY1MGQ0
YTliZjZjNDI1MzFhMWQ3OTYuLmU0MjFlNDJlM2ZhNDM5OTcyY2RjYjc3MzE5MDNmODYxZWU5N2Mz
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04MjEsNiArODIxLDcgQEAgZG9tL0RldmljZU1vdGlvbkV2
ZW50LmNwcAogZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkRhdGEuY3BwCiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKK2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBkb20vRG9jdW1lbnQuY3BwCiBkb20v
RG9jdW1lbnRFdmVudFF1ZXVlLmNwcAogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC0yNzE5
LDYgKzI3MjAsOCBAQCBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAogSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QuY3BwCiBKU0RldmljZU1vdGlvbkV2ZW50LmNwcAogSlNEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcAorSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmNwcAorSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBKU0RvY3VtZW50LmNw
cAogSlNEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmNwcAogSlNEb2N1bWVudEZyYWdt
ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDhmMDkwOWIwM2UwMzUzZDQwOTgwYWQxNjRkY2M2MTkyYzViYzUyYTkuLjFl
NjhjMzA5MGNmMmQxZTEwZTIwM2ZkNGNmNjgzZDQ4ZGZlYWE1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTIsNiArMTI1
Miw4IEBACiAJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NUZFQTVDRTE1NkRERThDMDA2
NTQxMDEgLyogRGVjaW1hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQ2MEJCNjE2MUQwQTFCRjAwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEJCNjE0
MUQwQTFCRUMwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjBDQkYzNjFENEJDRDBFMDA5MkU4OEUg
LyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzNDFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQ
cm9wZXJ0aWVzLmggKi87IH07CisJCTQ2MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQuaCAqLzsgfTsKKwkJNDYwRTMwNzcyMjJGNEYwMzAwOUEwNjA2IC8q
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUVERDlGMjIyRjRFQzMwMEI0NkUx
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi87IH07CiAJ
CTQ2MjE4QUNCMUY3MkQ2NEUwMDU3NEZCRSAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkUwMTZBRDFGNzJENjFF
MDAyODJCMkMgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBX
aW5kb3dQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAw
OTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9u
LmggKi87IH07CkBAIC03NzIwLDYgKzc3MjIsOCBAQAogCQk0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4
OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NV2luZG93UHJvcGVydGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2MENCRjM0MUQ0QkNDRkUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3Bl
cnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01XaW5kb3dQcm9w
ZXJ0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MEQxOTQ0MUZDRTIxREQw
MEMzREI4NSAvKiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MURBNTJBMjIyRjQ4NkYw
MEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2Vy
T2JzZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG93
ZXJPYnNlcnZlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MzUyMUFB
MjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXaW5kb3dQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NjM1MjFBQzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzcyNyw2ICs3NzMxLDkgQEAKIAkJNDYzRUI2MjExQjg3ODlDQjAwOTZF
RDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjQyNDA0NTIw
RUFGMEVEMDBCMjlGRDIgLyogRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQ2NUVERDlEMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUVERDlGMjIyRjRFQzMw
MEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RUREQTAy
MjJGNEVDNDAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZEQzZB
QjFFREUwMjFEMDA3NDYyMjQgLyogSlNET01SZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVJlY3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDY2RUQ4RDIxRURFMDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01SZWN0TGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyogQ2FudmFz
UGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNQYXRo
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NDc2LDYgKzI3NDgzLDExIEBA
CiAJCQkJNTlBODVFQTExMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwICovLAogCQkJCTU5QTg1RUEzMTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmggKi8sCiAJCQkJNTlBODVFQUExMTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVu
dGF0aW9uRXZlbnQuaWRsICovLAorCQkJCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwICovLAorCQkJCTQ2MURBNTJBMjIyRjQ4NkYw
MEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLywKKwkJCQk0NjVF
REQ5RDIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmlk
bCAqLywKKwkJCQk0NjVFREQ5RjIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oICovLAorCQkJCTQ2NUVEREEwMjIyRjRFQzQwMEI0NkUx
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCAqLywKIAkJ
CQlBODE4NUYzNDA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuY3BwICovLAogCQkJCUE4MTg1
RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlFMUUw
NEQwMEFGODAyMCAvKiBEb2N1bWVudC5pZGwgKi8sCkBAIC0yOTAwNiw2ICsyOTAxOCw4IEBACiAJ
CQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0IC8qIERldmlj
ZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODVFQTQxMTlENjhFQzAw
REVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2
MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NzJCNDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTcyQjQwM0EyMTc3MjU4MTAwMEFENDNFIC8qIERldmljZVJlc3BvbnNl
Q29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjc3MjVGRDFBNUIzQUQ5MDAzQzI0REQg
LyogREZBLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50
LmgKaW5kZXggM2VjYzViZDRjMGM3ZWVjMThlOWZiOGU0MTU2ZjE4YmYzZWY0NTMzZC4uNTFkNzFh
MGU3Y2Q3ODQzZDE1ODJiMDM5Y2NlMjNhODI3MjUzZTlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkV2ZW50LmgKQEAgLTI1LDEzICsyNSwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsK
IAotY2xhc3MgRGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworY2xhc3Mg
RGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uRXZlbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkRldmljZU1vdGlv
bkV2ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCmluZGV4
IGYyZjVkZjIwZmNlNTNiYzEzYjVhYmU2ZDQxOGUyMGJkNWE0ZmQzODYuLjI3ZjJjNTU3MjExZDVk
MGU0ZjUyNGI2NmQ5MWRkNDg0Mjc3ZGMyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkV2ZW50LmlkbApAQCAtNTcsMyArNTcsNSBAQAogICAgIGRvdWJsZT8gYmV0YTsKICAgICBk
b3VibGU/IGdhbW1hOwogfTsKKworRGV2aWNlTW90aW9uRXZlbnQgaW1wbGVtZW50cyBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uRXZlbnQuaAppbmRleCAwMjViMmUzMmE3NTFlNDJmNjUwYmI1M2I1MTVhMTBiZGI1Mjdm
NDc4Li42Mjg3MDhiNmU4NGI1MjYxOGU5NjgzY2Q2Y2RlNjdmM2ZhMTE2OGYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKQEAgLTI1LDEzICsyNSwxNCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uRXZlbnQgZmlu
YWwgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQg
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25FdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIG9y
aWVudGF0aW9uKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmlkbAppbmRleCAxM2ZmN2JhZGMwZTU5MTE2NjM1OTVkMTVkMTFkYmQ2MGEzMzM5ZmRi
Li43ZjM1ZjEwZDE5MTdhNzU0Zjg2MDFiOGFhZTBiOWVkNzE5ODJhYTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCkBAIC01NSwzICs1NSw0IEBA
CiAjZW5kaWYKIH07CiAKK0RldmljZU9yaWVudGF0aW9uRXZlbnQgaW1wbGVtZW50cyBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NWQ5YzQ0MjY0
NzdiYWNlZjEyMmNkN2I0NzFlZWEzODNjZDdlMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcApAQCAtMCwwICsx
LDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvbkV2ZW50LmgiCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCit2b2lkIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudDo6cmVxdWVz
dFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHByb21p
c2UpCit7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCk7CisgICAgaWYg
KCF3aW5kb3cpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lvblN0YXRl
OjpEZW5pZWQpOworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIXdpbmRvdy0+
aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihlcnJvck1lc3NhZ2UpKSB7Cisg
ICAgICAgIGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkNhbGwgdG8gcmVxdWVzdFBlcm1pc3Npb24o
KSBmYWlsZWQsIHJlYXNvbjogIiwgZXJyb3JNZXNzYWdlLCAiLiIpKTsKKyAgICAgICAgcmV0dXJu
IHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAg
aWYgKGF1dG8gcGVybWlzc2lvblN0YXRlID0gZG9jdW1lbnQuZGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NTdGF0ZSgpKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKCpwZXJt
aXNzaW9uU3RhdGUgPyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6
OkRlbmllZCk7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRl
bmllZCk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGRvY3VtZW50LnRvcE9yaWdpbigpLCBbZG9jdW1lbnQg
PSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShib29s
IGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoZG9jdW1lbnQpCisgICAgICAgICAgICBk
b2N1bWVudC0+c2V0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZShncmFudGVk
KTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGdyYW50ZWQgPyBQZXJtaXNzaW9uU3RhdGU6Okdy
YW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfSk7Cit9CisjZW5kaWYKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYWU2ODFmMzhmOWQ4OWU3
YjA3ZDdhMjQ0YmY2ZjczNTdmODZmODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKKworY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKK3B1YmxpYzoKKworI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgdXNpbmcgUGVybWlzc2lvblN0YXRlID0gRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTsKKyAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlzZSA9
IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsKKyAg
ICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Qcm9t
aXNlJiYpOworI2VuZGlmCisKK3Byb3RlY3RlZDoKKyAgICBEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uRXZlbnQoKSA9IGRlZmF1bHQ7CisgICAgfkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVu
dCgpID0gZGVmYXVsdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjgzMWE0NjVmMGI3NmJiMjVhODA1ODcxYWMyZjU2ZTcyNzIwZWU3OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1E
RVZJQ0VfT1JJRU5UQVRJT04sCisgICAgTm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIERl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCB7CisgICAgW0NhbGxXaXRoPURvY3VtZW50LCBF
bmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSV0gc3RhdGljIFBy
b21pc2U8RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZT4gcmVxdWVzdFBl
cm1pc3Npb24oKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDY1
ZWRiYTU2MGEzMmY5YTYyMDEyYmRkZGYyZTM1NjVjY2I1ZjhmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitlbnVtIGNsYXNzIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUgeyBHcmFudGVkLCBEZW5pZWQgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIxODE0MDMwMWVmZDYxZjRmMzEyNTY3ZDU5NDgzNDg4OGU1Yzgz
MzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGwKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVS
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
ZW51bSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIHsgImdyYW50ZWQi
LCAiZGVuaWVkIiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTQyOTI3ODZjYzhlZmVl
ZjViMWEyZmMxNWRjNzEwYmZlYzFjMzExMC4uYmY4YTQ2YjE0NWUwNzNlZjk0MTJlMDUzNTc0M2Fl
MjJlMmI1NWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NjM4LDYgKzg2MzgsMzYg
QEAgdm9pZCBEb2N1bWVudDo6ZnJhbWVXYXNEaXNjb25uZWN0ZWRGcm9tT3duZXIoKQogICAgIGRl
dGFjaEZyb21GcmFtZSgpOwogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKwor
Y29uc3QgT3B0aW9uYWw8Ym9vbD4mIERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzc1N0YXRlKCkgY29uc3QKK3sKKyAgICBpZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykK
KyAgICAgICAgcmV0dXJuIHRvcERvY3VtZW50KCkuZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NTdGF0ZSgpOworCisgICAgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NTdGF0ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpCit7CisgICAgaWYgKCZ0b3BEb2N1bWVudCgp
ICE9IHRoaXMpIHsKKyAgICAgICAgdG9wRG9jdW1lbnQoKS5zZXREZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlID0gZ3JhbnRlZDsKKwor
ICAgIGlmICghZ3JhbnRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvKiBmcmFt
ZSA9IG1fZnJhbWU7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlTmV4dChtX2ZyYW1lKSkgeworICAgICAgICBmcmFtZS0+d2luZG93KCktPnN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgICAgICBm
cmFtZS0+d2luZG93KCktPnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3Nhcnko
KTsKKyAgICB9Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiBX
b3JrbGV0JiBEb2N1bWVudDo6ZW5zdXJlUGFpbnRXb3JrbGV0KCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggNzc4YzIxMzNjNTQzNTdkZDY3NzE5OWRmNzE5NDE3YjNlZGU5MzExYS4uMmIyYzNj
OGNiYzdlNDczNGY3ZWMzYWFjNzI5ZTNlYmQ1YmIxNzc3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
QEAgLTEyMTQsMTIgKzEyMTQsMTcgQEAgcHVibGljOgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9u
cy9Eb2N1bWVudElPUy5oPgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyJiBk
ZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyJiBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNpbXVsYXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhh
LCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hKTsKICNlbmRpZgogCisgICAgY29uc3QgT3B0aW9u
YWw8Ym9vbD4mIGRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsK
KyAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoYm9vbCBn
cmFudGVkKTsKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAgICAgY29u
c3QgRG9jdW1lbnRUaW1pbmcmIHRpbWluZygpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRUaW1p
bmc7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBtb25vdG9uaWNUaW1lc3RhbXAoKSBj
b25zdDsKQEAgLTE4MzEsNiArMTgzNiwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hcmVGdWxs
c2NyZWVuQ29udHJvbHNIaWRkZW4geyBmYWxzZSB9OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQorICAgIE9wdGlvbmFsPGJvb2w+IG1fZGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NTdGF0ZTsKKyNlbmRpZgorCiAgICAgSGFzaFNldDxIVE1MUGljdHVyZUVs
ZW1lbnQqPiBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXM7CiAgICAgSGFzaFNldDxIVE1MUGlj
dHVyZUVsZW1lbnQqPiBtX2FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlczsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL01pY3JvdGFza3MuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L01pY3JvdGFza3MuY3BwCmluZGV4IDI1YTQ3YTY4Mzk1ZTgyNWYxYjBkNjE2Yjk3MTBhM2U2YmI1
ZDc4YWIuLjJjY2NmMGIyMmMwNzc0MjE3MDFiMWM2ZjE2NjlmMjkwYWY5ZGRiMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWljcm90YXNrcy5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJNaWNyb3Rhc2tzLmgiCiAKKyNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAppbmRleCAzYTBkYzNiYjAzZGNkNzBiZTk0ZWY0Yjk4NjIxZDk3OTU2MGU3ZWJh
Li40N2UzYzVhYTc0ODVjZjUxZDYzZWIwMzU5ZmViMTE1MDcxYjVjYjUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQ4Miw2ICs0ODIsMTAgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIC8qc3ViRnJhbWVIb3N0Ki8sIFN0cmlu
ZyYmIC8qdG9wRnJhbWVIb3N0Ki8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCB1aW50NjRfdCAvKnBh
Z2VJRCovLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQgKGJvb2wpPiYmIGNhbGxiYWNrKSB7
IGNhbGxiYWNrKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhTdHJpbmcmJiAvKnN1YkZyYW1lSG9zdCovLCBTdHJpbmcmJiAvKnRvcEZyYW1lSG9zdCovLCB1
aW50NjRfdCAvKmZyYW1lSUQqLywgdWludDY0X3QgLypwYWdlSUQqLywgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KIAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdmlydHVhbCB2b2lkIHNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoY29uc3QgU2VjdXJpdHlPcmlnaW4m
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJh
Y2sodHJ1ZSk7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVFbGVt
ZW50KEhUTUxNZW51RWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVNZW51
RWxlbWVudChIVE1MTWVudUVsZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zZXJ0
TWVudUl0ZW1FbGVtZW50KEhUTUxNZW51SXRlbUVsZW1lbnQmKSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAppbmRleCBkZmExMTI0ODRhM2E0NzdlM2RjMDIyYTM0Y2EzNGRmM2ZmYTkzZTMy
Li4xY2EzOGIxMGMzZTJhODJmZWUxNzYyMGUwNWJhY2NiOGFmNmI5NzdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCkBAIC0xODI2LDUwICsxODI2LDEzNCBAQCBib29sIERPTVdpbmRvdzo6
YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50
TGlzdGVuZQogICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc0dhbWVwYWRFdmVudFR5cGUoZXZl
bnRUeXBlKSkKICAgICAgICAgaW5jcmVtZW50R2FtZXBhZEV2ZW50TGlzdGVuZXJDb3VudCgpOwog
I2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBlbHNlIGlmIChldmVu
dFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpCisgICAgICAgIHN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIGVsc2Ug
aWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpCisgICAgICAg
IHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKKyNlbmRpZgorCisg
ICAgcmV0dXJuIHRydWU7Cit9CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAg
IGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVu
dEVuYWJsZWQoKSAmJiBkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPmxvYWRlcigpICYmIGRvY3Vt
ZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CisKK0Rl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogRE9NV2luZG93OjpkZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIoKSBjb25zdAorewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIGlm
ICgoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCB8fCBldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpKSB7Ci0gICAgICAgICAg
ICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpICYmIGlzU2VjdXJlQ29udGV4
dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2
aWNlb3JpZW50YXRpb25FdmVudCkKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkuYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7
Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5k
ZXZpY2VNb3Rpb25Db250cm9sbGVyKCkuYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0g
ICAgICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
aXNTZWN1cmVDb250ZXh0KCkpCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJC
bG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0
ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdp
biBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmlj
ZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29u
dGV4dCBpcyBub3Qgc2VjdXJlLiJfcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBy
ZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIoKSA6IG51bGxwdHI7CiAjZWxzZQotICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNlY3VyaXR5
T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICAgICAg
ICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9u
Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVy
LT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2
aWNlIG1vdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1l
IHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0g
ICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpICYmIGlzU2Vj
dXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShw
YWdlKCkpKQotICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExp
c3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGlzU2VjdXJlQ29udGV4dCgpKQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAi
QmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lciBmcm9t
IGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUg
bWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBu
b3Qgc2VjdXJlLiJfcyk7Ci0gICAgICAgICAgICB9CisgICAgcmV0dXJuIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpOworI2VuZGlmCit9CisKK0RldmljZU1vdGlvbkNv
bnRyb2xsZXIqIERPTVdpbmRvdzo6ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0Cit7Cisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVu
dCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgOiBudWxscHRyOworI2Vsc2UKKyAgICByZXR1
cm4gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpOworI2VuZGlmCit9CisKK2Jv
b2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmlu
ZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnNldHRp
bmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSB8fCAhZG9jdW1lbnQoKSB8fCAh
ZG9jdW1lbnQoKS0+bG9hZGVyKCkgfHwgIWRvY3VtZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmll
bnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiQVBJIGlzIGRpc2Fi
bGVkIl9zOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFpc1NlY3Vy
ZUNvbnRleHQoKSkgeworICAgICAgICBtZXNzYWdlID0gIkJyb3dzaW5nIGNvbnRleHQgaXMgbm90
IHNlY3VyZSJfczsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghaXNT
YW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiU291
cmNlIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1h
aW4gcGFnZSJfczsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50
YXRpb25MaXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Cit7CisgICAgU3RyaW5nIGlubmVy
TWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24o
aW5uZXJNZXNzYWdlKSkgeworICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiQmxvY2tlZCBh
dHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVu
ZXIsIHJlYXNvbjogIiwgaW5uZXJNZXNzYWdlLCAiLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKGZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25Q
ZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8gcGVybWlzc2lvblN0YXRlID0g
ZG9jdW1lbnQoKS0+ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSgpOworICAg
ICAgICBpZiAocGVybWlzc2lvblN0YXRlICYmICEqcGVybWlzc2lvblN0YXRlKSB7CisgICAgICAg
ICAgICBtZXNzYWdlID0gIk5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdp
bGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQu
Il9zOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0jZW5kaWYgLy8gUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlbW90aW9uRXZlbnQpCi0gICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rp
b25FdmVudExpc3RlbmVyKCk7Ci0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
KyAgICAgICAgaWYgKCFwZXJtaXNzaW9uU3RhdGUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAi
Tm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRp
bCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4iX3M7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERPTVdpbmRvdzo6c3Rh
cnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAo
IWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcigpOworICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZp
Y2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRk
RGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAg
IGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1
bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRl
dmljZUNvbnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lk
IERPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3Nhcnko
KQoreworICAgIGlmIChoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50
YXRpb25FdmVudCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBkZXZpY2VDb250
cm9sbGVyID0gZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkpCisgICAgICAgIGRldmljZUNv
bnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERP
TVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpCit7Cisg
ICAgaWYgKCFoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQp
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2aWNl
TW90aW9uQ29udHJvbGxlcigpOworICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VD
b250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2
aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGZh
aWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CisgICAgICAgIGlmIChh
dXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNv
bnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdp
bmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBp
ZiAoaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VN
b3Rpb25Db250cm9sbGVyKCkpCisgICAgICAgIGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmlj
ZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQogCiB2b2lkIERPTVdpbmRvdzo6ZmFpbGVkVG9SZWdp
c3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKQogewpAQCAtMTk0MSwyMiArMjAyNSw2IEBA
IGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAgICAgICAgIHJlbW92ZVVubG9hZEV2ZW50TGlzdGVu
ZXIodGhpcyk7CiAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmV1
bmxvYWRFdmVudCAmJiBhbGxvd3NCZWZvcmVVbmxvYWRMaXN0ZW5lcnModGhpcykpCiAgICAgICAg
IHJlbW92ZUJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7Ci0jaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGVsc2UgaWYgKGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQgJiYgZG9jdW1lbnQoKSkK
LSAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmlj
ZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCAmJiBkb2N1bWVudCgpKQotICAgICAgICBkb2N1
bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVEZXZpY2VFdmVudExp
c3RlbmVyKCp0aGlzKTsKLSNlbHNlCi0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewotICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJv
bGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkK
LSAgICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMp
OwotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRh
dGlvbkV2ZW50KSB7Ci0gICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNv
bnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAg
ICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwot
ICAgIH0KLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbHNlIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50KQogICAgICAgICBkZWNyZW1l
bnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50KCk7CkBAIC0xOTc3LDYgKzIwNDUsMTIgQEAgYm9v
bCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNHYW1lcGFk
RXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAgICAgIGRlY3JlbWVudEdhbWVwYWRFdmVudExpc3Rl
bmVyQ291bnQoKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50
KQorICAgICAgICBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgp
OworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZl
bnQpCisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOwor
I2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTIwNTksMTggKzIxMzMsOSBAQCB2b2lk
IERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIEV2ZW50VGFyZ2V0Ojpy
ZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQg
PSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGRvY3VtZW50LT5kZXZpY2VNb3Rpb25Db250
cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgICAgICBk
b2N1bWVudC0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZl
bnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgIH0KLSNlbHNlCi0gICAgaWYgKERldmljZU1vdGlvbkNv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2Uo
KSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0
aGlzKTsKLSAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0g
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRy
b2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7
CisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChtX3Njcm9sbEV2ZW50TGlz
dGVuZXJDb3VudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYmJiZmE5NTg3MmU0YTMz
ZTczNDI1MjgxZTRhY2NiNGY3MDU5YjFjNC4uMWQ4YTY0MjkyZjAxZjA5ZjE1MTJiY2RkNjY4NmZl
YzQ3MmViYTJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC04Miw2ICs4MiwxMSBAQCBj
bGFzcyBWaXN1YWxWaWV3cG9ydDsKIGNsYXNzIFdlYktpdE5hbWVzcGFjZTsKIGNsYXNzIFdlYktp
dFBvaW50OwogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK2NsYXNzIERldmljZU1v
dGlvbkNvbnRyb2xsZXI7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CisjZW5k
aWYKKwogc3RydWN0IEltYWdlQml0bWFwT3B0aW9uczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsK
IApAQCAtMzExLDYgKzMxNiwxOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgc2Nyb2xsRXZlbnRM
aXN0ZW5lckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxFdmVudExpc3RlbmVyQ291bnQ7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQg
c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lk
IHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0
b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworCisgICAgYm9vbCBpc0Fs
bG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7
CisgICAgYm9vbCBpc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIo
U3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKKworICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciogZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29uc3Q7CisgICAgRGV2aWNlTW90aW9u
Q29udHJvbGxlciogZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0OworI2VuZGlmCisKICAg
ICB2b2lkIHJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9uKCk7CiAKICNpZiBFTkFCTEUoSU9T
X1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCmluZGV4IDMzNjdkM2RiZjU5ZmMzMzU3MjQ5NzU4
YWM2M2RkMTcyNWUwNzYzNjYuLjg0MmI4NTRlZTI1MTI1OGE0MTA2MmJmZTBkMDY1NDRlZGIzYzZm
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcApAQCAtNjksNiAr
NjksMTEgQEAgdm9pZCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3Rl
bmVycyhET01XaW5kb3cmIHdpbmRvdykKICAgICAgICAgbV9jbGllbnQuc3RvcFVwZGF0aW5nKCk7
CiB9CiAKK2Jvb2wgRGV2aWNlQ29udHJvbGxlcjo6aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcihET01X
aW5kb3cmIHdpbmRvdykgY29uc3QKK3sKKyAgICByZXR1cm4gbV9saXN0ZW5lcnMuY29udGFpbnMo
JndpbmRvdyk7Cit9CisKIHZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVu
dChFdmVudCYgZXZlbnQpCiB7CiAgICAgZm9yIChhdXRvJiBsaXN0ZW5lciA6IGNvcHlUb1ZlY3Rv
cihtX2xpc3RlbmVycy52YWx1ZXMoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGV2aWNlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9s
bGVyLmgKaW5kZXggZTE2MDM4NWFmZTJmOTczNTNjMGVhMjJmMjllODU2ZjE4ZTIwYjFhOC4uM2Q1
ZjkwYzUwZWU0YTU0ZmMwYWQxN2M2NDczNWRkNjkzODczZmZmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EZXZpY2VDb250cm9sbGVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZURldmlj
ZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jik7CiAgICAgdm9pZCByZW1vdmVBbGxEZXZpY2VFdmVu
dExpc3RlbmVycyhET01XaW5kb3cmKTsKKyAgICBib29sIGhhc0RldmljZUV2ZW50TGlzdGVuZXIo
RE9NV2luZG93JikgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQoRXZlbnQm
KTsKICAgICBib29sIGlzQWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDMwM2Q3ZjgyZDRiMzdmZGJhMWI3ZjJk
ZDRhOGRhMjU3ZThhYjk3N2MuLmU4MjRkZjc2YTg0MmYzMjA3ZmFlMGVjZTY0NDRlOWUyZjI0NWVm
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTc2NCw2ICs3NjQsMTEgQEAgZGV2
aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKICAgY29uZGl0aW9u
YWw6IERFVklDRV9PUklFTlRBVElPTgogCitkZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElF
bmFibGVkOgorICB0eXBlOiBib29sCisgIGluaXRpYWw6IGZhbHNlCisgIGNvbmRpdGlvbmFsOiBE
RVZJQ0VfT1JJRU5UQVRJT04KKwogc2hvdWxkRW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdDoKICAg
dHlwZTogYm9vbAogICBpbml0aWFsOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKaW5kZXggODA0YTBhZTkxMDM5MTMzMzAzMjAzN2ExMjIwZDQ1YjAwM2RlODIz
OC4uNzIzYmQzMTFhNDUwNzA4ZmQ1Y2RiZjQ5ZDA1Y2NmZmEyMDA0NjUxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMiw2ICsxMiwxNSBAQCBEZXZpY2VP
cmllbnRhdGlvbkV2ZW50RW5hYmxlZDoKICAgY29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQogICB3ZWJjb3JlTmFtZTogZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQKIAor
RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBk
ZWZhdWx0VmFsdWU6IGZhbHNlCisgIGNvbmRpdGlvbjogRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKyAgd2ViY29yZU5hbWU6IGRldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQK
KyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJQZXJtaXNzaW9uIEFQSSBmb3IgZGV2aWNlIG9yaWVudGF0
aW9uIC8gbW90aW9uIGFjY2Vzcy4iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkRldmlj
ZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSAvIERldmljZU1vdGlvbkV2ZW50
LnJlcXVlc3RQZXJtaXNzaW9uKCkiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogSmF2YVNj
cmlwdEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDNlYzZmMDBkMjRmYzkzOTQy
NjkwYTNlNzI5ZmQwN2VkN2EzYWE2YzcuLjk0MGI2OTcxZWE0MGE0ZGIyOTM1YmVhMmE5ODk2Yjc5
ZTE1ZDY1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBA
IC0xNzMsNiArMTczLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVBvaW50
ZXJMb2NrKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdmlydHVhbCB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
IHsgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lk
IGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBPYmplY3QqKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29y
ZEFwcGVhcmFuY2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBPYmplY3QqKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGE0MTY3NjZlMmIzODNlMWI1MTQ0
OGZjOWNjNDAyYzAxZjFiZWIzYWEuLjM4ZTViMTcwODYyNmYwYjQ5MmQ4NzEzMGQ2OTZmMzcyODg1
OWNlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTE1
LDcgKzExNSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VQb2xpY3lD
bGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdl
VUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAs
IFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdL
UGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFn
ZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJ
Q2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTI+IFZlcnNpb25z
OworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVu
dFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0
LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBX
S1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQ
YWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMz4gVmVy
c2lvbnM7CiB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0xOTAzLDYgKzE5MDMs
MTYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0
IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LnJlcXVl
c3RTdG9yYWdlQWNjZXNzQ29uZmlybSh0b0FQSSgmcGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEko
cmVxdWVzdGluZ0RvbWFpbi5pbXBsKCkpLCB0b0FQSShjdXJyZW50RG9tYWluLmltcGwoKSksIHRv
QVBJKGxpc3RlbmVyLnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAg
fQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgdm9pZCBzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYlBhZ2VQcm94eSYgcGFnZSwg
QVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
IW1fY2xpZW50LnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihtX2NsaWVudC5zaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIG1fY2xpZW50
LmJhc2UuY2xpZW50SW5mbykpOworICAgICAgICB9CisjZW5kaWYKKwogICAgICAgICAvLyBQcmlu
dGluZy4KICAgICAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2Vi
RnJhbWVQcm94eSYgZnJhbWUpIGZpbmFsCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDVlNTk3M2Y5YWIxOGI0NmE2NWVm
ZTA4ZWRmNWYzNTA3YTc3NWRmMGIuLmVhODg3Mjc1NmFjMTcyMDE5MDVhZTg3OWFhYTI2NDFkN2Uy
NWRiZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJ
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGll
bnQuaApAQCAtMTM0LDYgKzEzNCw3IEBAIHR5cGVkZWYgdm9pZCAoKldLRGlkTG9zZVBvaW50ZXJM
b2NrQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJCiB0eXBlZGVm
IHZvaWQgKCpXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2spKFdL
UGFnZVJlZiBwYWdlLCBib29sIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291
cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tSZXNv
dXJjZUxpbWl0IGxpbWl0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAo
KldLUGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldLUGFnZVNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmln
aW5SZWYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiAvLyBEZXBy
ZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZl
YXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1v
dXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTExNDAsNiArMTE0MSwxMTAg
QEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTIgewogICAgIFdLUGFnZVJlcXVlc3RT
dG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOwogfSBXS1BhZ2VVSUNsaWVudFYxMjsKIAordHlwZWRl
ZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTMgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAg
IC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xv
c2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAg
ICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25m
aXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21w
dENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICBydW5KYXZhU2NyaXB0
UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNU
ZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVu
dDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0
VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2li
bGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVC
YXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAg
ICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6
YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVz
aXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2lu
ZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
ZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFn
ZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjYgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjY7
CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWREcmF3OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsK
KyAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0YWJhc2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVu
UGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bk9wZW5QYW5lbDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlSGVhZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdl
Rm9vdGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb290ZXJIZWlnaHQ7CisgICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFn
ZURyYXdGb290ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZHJhd0Zvb3RlcjsKKyAgICBXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdl
VUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5Nb2RhbDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlk
Q29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJ
bkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRv
RmlsZUluRG93bmxvYWRzRm9sZGVyOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2
YVNjcmlwdF91bmF2YWlsYWJsZTsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS1BhZ2VDcmVh
dGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSAgICAgICAgICAgICAgICAg
IGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKyAgICBXS1BhZ2VNb3VzZURp
ZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKworICAgIC8vIFZlcnNp
b24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29s
b3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhp
ZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlk
Q2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsgLy8g
VXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAg
dm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJlIGRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkNDsgLy8gVXNlZCB0byBiZSBkaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgorICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVk
aW9EaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VEaWRDbGlja0F1
dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENs
aWNrQXV0b0ZpbGxCdXR0b247CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxi
YWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJt
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJv
bXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlTWVkaWFTZXNzaW9uTWV0YWRh
dGFEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVNlc3Npb25N
ZXRhZGF0YURpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNi4KKyAgICBXS1BhZ2VDcmVhdGVO
ZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQ
YWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJv
bXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3Jp
cHRQcm9tcHQ7CisgICAgV0tDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW47CisKKyAgICAvLyBWZXJzaW9uIDcuCisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWw7CisgICAgV0tGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7
CisKKyAgICAvLyBWZXJzaW9uIDguCisgICAgV0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2s7
CisgICAgV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWRMb3NlUG9pbnRlckxvY2s7CisKKyAgICAvLyBWZXJzaW9uIDku
CisgICAgV0tIYW5kbGVBdXRvcGxheUV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2ZW50OworCisgICAgLy8gVmVyc2lvbiAx
MC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOwor
ICAgIFdLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENh
bGxiYWNrICAgICAgICAgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9y
ZWdyb3VuZDsKKworICAgIC8vIFZlcnNpb24gMTEuCisgICAgV0tQYWdlRGlkUmVzaWduSW5wdXRF
bGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlQ2FsbGJhY2sgICAgICAgICBkaWRSZXNpZ25J
bnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2U7CisKKyAgICAvLyBWZXJzaW9uIDEy
LgorICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOworCisgICAgLy8g
VmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ2FsbGJhY2sgICAgICAgICAgIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3M7Cit9IFdLUGFnZVVJQ2xpZW50VjEzOworCiAjaWZkZWYgX19jcGx1c3Bs
dXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZS5oCmluZGV4IGRhMDMxNGFlM2Y1OGNiZGU5ODAyOGUyNzI4OWVhZDQ0ZDZkMzQy
YmIuLjgxNWU4MDE4ODhlNWQ2NjRkNjVhZTNjYmFhZDY2NzJhMjVmZDdkY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKQEAgLTM0LDYg
KzM0LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBjbGFzcyBXS05hdmlnYXRpb25BY3Rp
b247CiBAY2xhc3MgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzOwogQGNsYXNzIFdLUHJldmlld0VsZW1l
bnRJbmZvOworQGNsYXNzIFdLU2VjdXJpdHlPcmlnaW47CiBAY2xhc3MgV0tXZWJWaWV3OwogQGNs
YXNzIFdLV2ViVmlld0NvbmZpZ3VyYXRpb247CiBAY2xhc3MgV0tXaW5kb3dGZWF0dXJlczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCmluZGV4IGRiZDA1M2U3ZmJkMGEwOTVmMDg4OGE3ZWRhMGJjMmJiYTczZTI1MzIu
LjNkNzc3MTY0MDhiNzQxY2NkZDg2MzhjMGRmYjU2Mzg3MGE4MzYwZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aApAQCAtMTcxLDYgKzE3MSwxNSBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRDaGFuZ2VTYWZlQXJlYVNob3VsZEFmZmVjdE9i
c2N1cmVkSW5zZXRzOihCT09MKXNhZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHMgV0tf
QVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRQcmVzZW50Rm9jdXNlZEVsZW1lbnRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29u
dHJvbGxlciAqKWNvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWREaXNtaXNzRm9jdXNlZEVsZW1lbnRW
aWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTIuMCkpOworCisvKiEgQGFic3RyYWN0IEFsbG93cyB5b3VyIGFwcCB0byBkZXRl
cm1pbmUgd2hldGhlciBvciBub3QgdGhlIGdpdmVuIHNlY3VyaXR5IG9yaWdpbiBzaG91bGQgaGF2
ZSBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9yaWVudGF0aW9uIGFuZCBtb3Rpb24uCisgQHBhcmFt
IHNlY3VyaXR5T3JpZ2luIFRoZSBzZWN1cml0eSBvcmlnaW4gd2hpY2ggcmVxdWVzdGVkIGFjY2Vz
cyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50YXRpb24gYW5kIG1vdGlvbi4KKyBAcGFyYW0gZGVjaXNp
b25IYW5kbGVyIFRoZSBkZWNpc2lvbiBoYW5kbGVyIHRvIGNhbGwgb25jZSB0aGUgYXBwIGhhcyBt
YWRlIGl0cyBkZWNpc2lvbi4gUGFzcyBZRVMgdG8gYWxsb3cgdGhlIG9yaWdpbiBhY2Nlc3MsIE5P
IG90aGVyd2lzZS4KKworIElmIHlvdSBkbyBub3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kLCBhY2Nl
c3MgdG8gdGhlIGRldmljZSdzIG9yaWVudGF0aW9uIGFuZCBtb3Rpb24gd2lsbCBiZSBncmFudGVk
LgorICovCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1
cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9P
TCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKwog
I2Vsc2UgLy8gVEFSR0VUX09TX0lQSE9ORQogLSAodm9pZClfcHJlcGFyZUZvckltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMuNCkpOwogLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmgKaW5kZXggY2NiNzhhMjllMmE0YzJmZjE2ZDQyNTI1YWU1ZTQ2MGE3ODliYjdhMy4uNjNmNTVj
NDcxMjQ1NzEwY2Q4ZTk4Y2VhZGE4NzA5MzhlN2RhYmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTE5LDYgKzExOSw5IEBAIHByaXZhdGU6CiAg
ICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRl
cnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgZmluYWw7CiAgICAgICAgIHZv
aWQgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZChXZWJQ
YWdlUHJveHkmLCBXS1Jlc291cmNlTGltaXQpIGZpbmFsOwogICAgICAgICB2b2lkIHNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcm
LCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFVSTCYsIEFQSTo6RGF0YSYpIGZpbmFsOworI2Vu
ZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgdm9pZCBzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IGZpbmFsOwogI2VuZGlmCiAgICAgICAgIGJvb2wgbmVlZHNGb250QXR0cmlidXRlcygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlk
Q2hhbmdlRm9udEF0dHJpYnV0ZXM7IH0KICAgICAgICAgdm9pZCBkaWRDaGFuZ2VGb250QXR0cmli
dXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRlcyYpIGZpbmFsOwpAQCAtMTg3LDYgKzE5
MCw5IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld1NhdmVEYXRhVG9GaWxlU3VnZ2Vz
dGVkRmlsZW5hbWVNaW1lVHlwZU9yaWdpbmF0aW5nVVJMIDogMTsKICAgICAgICAgYm9vbCB3ZWJW
aWV3UnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnNJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhh
bmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyIDogMTsKKyNlbmRpZgorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIGJvb2wgd2ViVmlld1Nob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9u
SGFuZGxlciA6IDE7CiAjZW5kaWYKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VR
dW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVu
dERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAg
Ym9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJhc2VO
YW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJh
c2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgOiAxOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggYjVhMGE1MDhiYzk5NmQzYzlhOTdm
OTNhZjNlYTNmOTI1MDk3ZjY2NS4uOTI2MDcyNTg3YzEwZmZjYjljYzhhOGFmNWY4NzI5NjhkN2Fi
ZWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBA
IC0xMzIsNiArMTMyLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURl
bGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3U2F2ZURhdGFU
b0ZpbGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpzYXZlRGF0YVRvRmlsZTpzdWdn
ZXN0ZWRGaWxlbmFtZTptaW1lVHlwZTpvcmlnaW5hdGluZ1VSTDopXTsKICAgICBtX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3UnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnNJbml0aWF0ZWRCeUZyYW1l
Q29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cih3ZWJWaWV3OnJ1bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzOmluaXRpYXRlZEJ5RnJhbWU6Y29t
cGxldGlvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RO
b3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Tm90
aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopXTsK
KyNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgbV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NG
b3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAjZW5kaWYK
ICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3Vy
aXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNh
Z2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3Jp
Z2luOmN1cnJlbnRRdW90YTpjdXJyZW50T3JpZ2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6
ZXhwZWN0ZWRVc2FnZTpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURp
c3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNh
Z2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3Jp
Z2luOmRhdGFiYXNlTmFtZTpkaXNwbGF5TmFtZTpjdXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVz
YWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4cGVjdGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOild
OwpAQCAtODQ0LDYgKzg0NywyNiBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVu
UGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBVSURlbGVnYXRlOjpVSUNs
aWVudDo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlm
ICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdTaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRs
ZXIpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8g
ZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVn
YXRlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRv
IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUu
Z2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOikpOworICAgIFso
aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5t
X3dlYlZpZXcgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNl
Y3VyaXR5T3JpZ2luOndyYXBwZXIoc2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSAoQk9PTCBncmFudGVkKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRs
ZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7CisgICAgfSkuZ2V0KCld
OworfQorI2VuZGlmCisKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRB
dHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJiBmb250QXR0cmlidXRlcykK
IHsKICAgICBpZiAoIW5lZWRzRm9udEF0dHJpYnV0ZXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDA2NzBmMmM1Njc2ZjE5MzI4MDQ0ZWI3MTE5MzQ4YjVk
N2JiZjk4YjQuLmUxOGE3MTMzN2Y4NjVkZjFlZGFhMWU4MmVkZTBkNmM5MzM3ZDAxYjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzE3NCw2ICs3MTc0LDE4
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclVzZXJNZWRpYVN0YXRlKCkKICNlbmRpZgogfQog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYgb3JpZ2luRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIG9y
aWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnNlY3VyaXR5T3Jp
Z2luKCkpOworICAgIG1fdWlDbGllbnQtPnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3MoKnRoaXMsIG9yaWdpbi5nZXQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpLCBjYWxsYmFja0lEXShib29sIGdyYW50ZWQpIHsKKyAgICAgICAgaWYgKCF3
ZWFrVGhpcyB8fCAhaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0RlY2lzaW9uKGNhbGxiYWNrSUQsIGdyYW50ZWQpLCBtX3BhZ2VJRCk7
CisgICAgfSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5T
dHJpbmcpCiB7CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDIxNTVkMTQyZTQ0ZmJhNTQ0NThiYzcx
ZjUzOTFiZTZlMDliNGU4MDMuLmQ0ODg1NzhhOWRmNGI0M2ZiZWU1NjFjZGMxN2E1YzNhNDA3OTk1
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDAxLDYgKzE0
MDEsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNv
bnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CisjZW5kaWYKKwogICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJh
bFdlYlBhZ2VQcm94eSgpOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBl
ODY0ZDRhOTZmYjY3ZjlhNTNmMWQ2MDljNjlmNzc2NTIxMzg0YTAwLi43NDNmYzA0ZjUxNGZkMjI4
OTc1OWMwMGI0YTA2ZWRiZGYxZGRiMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01MzIsNiArNTMyLDEwIEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxl
cklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKQogICAgIExvYWRTeW5jaHJvbm91
c1VSTFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMgcGFy
YW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgZXJyb3IsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKSBEZWxheWVkCiAK
KyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFJlcXVlc3REZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzcyhzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9y
aWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShBVFRBQ0hN
RU5UX0VMRU1FTlQpCiAgICAgUmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKFN0
cmluZyBpZGVudGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBwcmVmZXJyZWRGaWxl
TmFtZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEpCiAgICAgUmVnaXN0ZXJB
dHRhY2htZW50SWRlbnRpZmllckZyb21GaWxlUGF0aChTdHJpbmcgaWRlbnRpZmllciwgU3RyaW5n
IGNvbnRlbnRUeXBlLCBTdHJpbmcgZmlsZVBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4
IDY3ZmQ3YTcyMGNlMmYzMzk3NzAzNTE0OGJkYmQyY2VmYTdjN2ZkMzUuLjYyYjVlZmI4MWEzNzVh
NWRkYjAyM2MzNTlhYWU0YjQ3YmQyZjAwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0x
MzIwLDQgKzEzMjAsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnIKIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7
CisgICAgbV9wYWdlLnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
b3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjkyNmEyNThhZDg1YWIwNzc5MTZkMGNiMjM1
Mjg0ZDhlYjNiZGFhNy4uMjI3YjgxNDE4NjMzZGUzNzJmMTM0ZjZlMWU5YjNmMTVmYWEzZTg0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzY2LDYgKzM2NiwxMCBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJikgZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisjZW5kaWYKKwogICAgIFN0cmluZyBt
X2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJh
bWVTZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFz
SG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBmNzBiM2JiZjAzY2U3ODg4MjJlODZiMDA0MmUw
NTk4MjI4NTUwMTkuLjAzMzlhZGEwZGI4MzVlZTYwNzIyMTc0NjNhYWRkODRhZWU1NTM4MTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MzQ2
LDYgKzYzNDYsMzAgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcm
JiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCku
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFJlZ2lzdHJhYmxlRG9tYWluOjp1
bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChzdWJGcmFtZUhvc3QpLCBSZWdpc3RyYWJsZURvbWFpbjo6
dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QodG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwgbV9wYWdlSUQs
IHByb21wdEVuYWJsZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAjZW5kaWYK
KworI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCitzdGF0aWMgdWludDY0X3QgbmV4dERl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrSUQoKQoreworICAgIHN0
YXRpYyB1aW50NjRfdCBuZXh0Q2FsbGJhY2tJRCA9IDA7CisgICAgcmV0dXJuICsrbmV4dENhbGxi
YWNrSUQ7Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gY2FsbGJh
Y2tJRCA9IG5leHREZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lE
KCk7CisgICAgQVNTRVJUKCFtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNh
bGxiYWNrTWFwLmNvbnRhaW5zKGNhbGxiYWNrSUQpKTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3REZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhvcmlnaW4uZGF0YSgpLCBjYWxsYmFja0lEKSk7
Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzRGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKQoreworICAg
IGF1dG8gY2FsbGJhY2sgPSBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNh
bGxiYWNrTWFwLnRha2UoY2FsbGJhY2tJRCk7CisgICAgQVNTRVJUKGNhbGxiYWNrKTsKKyAgICBj
YWxsYmFjayhncmFudGVkKTsKK30KKyNlbmRpZgogICAgIAogc3RhdGljIFNoYXJlU2hlZXRDYWxs
YmFja0lEIG5leHRTaGFyZVNoZWV0Q2FsbGJhY2tJRCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZTQ3MWRmMGRhYjI4ODQyN2EyNjM4MmZkYjIz
YTFiN2ZkNTE0MjM1YS4uOGU0MDExNjZiMGZmODRiZjg2NDQ1ZjRjMDVlMTE2MzJiODJmZTRiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTExMSw2
ICsxMTExLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmlu
ZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBz
aG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAgICB2b2lkIGRpZENvbXBs
ZXRlU2hhcmVTaGVldChib29sIHdhc0NvbXBsZXRlZCwgU2hhcmVTaGVldENhbGxiYWNrSUQgY29u
dGV4dElkKTsKICAgICAKQEAgLTEyMDcsNiArMTIxMSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
cmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lk
IGRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0RlY2lzaW9uKHVpbnQ2
NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCk7CisjZW5kaWYKKwogI2lmICFQTEFURk9STShD
T0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJwcmV0
S2V5RXZlbnQoY29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwogI2VuZGlmCkBAIC0xODM3
LDYgKzE4NDUsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0
aW9uPHZvaWQoYm9vbCBncmFudGVkKT4+IG1fc3RvcmFnZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tN
YXA7CiAgICAgSGFzaE1hcDxTaGFyZVNoZWV0Q2FsbGJhY2tJRCwgV1RGOjpGdW5jdGlvbjx2b2lk
KGJvb2wgY29tcGxldGVkKT4+IG1fc2hhcmVTaGVldFJlc3BvbnNlQ2FsbGJhY2tNYXA7CiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGdyYW50ZWQpPj4gbV9kZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEFQ
UExJQ0FUSU9OX01BTklGRVNUKQogICAgIEhhc2hNYXA8dWludDY0X3QsIHVpbnQ2NF90PiBtX2Fw
cGxpY2F0aW9uTWFuaWZlc3RGZXRjaENhbGxiYWNrTWFwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBj
YjBiNTcwOTMzNjRjMGU1NTQyNDNmOTMwOWMzOTI1ZDU0OGFmNGYwLi43Y2YxYWU1NmUxZGE0ZjJi
YWQ0Zjc0NmRkOWZiYTZmOGM4MGNlZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM2NCw2ICszNjQsMTAgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgIyBOb3RpZmljYXRpb24K
ICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgIERpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0RlY2lz
aW9uKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCkKKyNlbmRpZgorCiAgICAgIyBQ
cmludGluZy4KICAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJL
aXQ6OlByaW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNhMTU1ZTgyOTI2YWYxNzc0
MTllYTM1MDQ0YjFmMThlNzE1MGQ2ZGMuLjYzZDBmYWIzMTYwNTNhMzI1MWFkZjU1ZTg0NDZkOTk5
NTk4MWQwZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBN
b3Rpb24gcGVybWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NTMyOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2NDUzNjc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3Qg
aW5mcmFzdHJ1Y3R1cmUgdG8gaGVscCB0ZXN0IHRoZSBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rp
b24gcGVybWlzc2lvbiBBUEkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5u
ZXI6OnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RS
OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzUmVxdWVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkQWxsb3dEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTktMDMtMDYgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBDb25zaWRlciBzdXBwb3J0aW5nIHRoZSBg
cmVmZXJyZXJwb2xpY3lgIGF0dHJpYnV0ZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4
IDBlNzlkODBiNjAxZjMyOTVlOGI4MTViYTEwMDhiOTk3ZDFiODBjNmYuLmM3Nzc4NWZjZjJkNTE1
NzRjMGZkNWY0Zjg2YWY3MzkxYzE3OGIyNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApA
QCAtMTA0LDYgKzEwNCw5IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICBib29sZWFuIGlz
Q29tbWFuZEVuYWJsZWQoRE9NU3RyaW5nIG5hbWUpOwogICAgIHVuc2lnbmVkIGxvbmcgd2luZG93
Q291bnQoKTsKIAorICAgIC8vIERldmljZSBPcmllbnRhdGlvbiBNb3Rpb24uCisgICAgdm9pZCBz
ZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGJvb2xlYW4gdmFs
dWUpOworCiAgICAgLy8gU3BlY2lhbCBET00gdmFyaWFibGVzLgogICAgIGF0dHJpYnV0ZSBib29s
ZWFuIGdsb2JhbEZsYWc7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGQ0NjIyNDZjZGI5YzE4Zjc3Y2U0NWQ3MzEz
NzI4MDRhNjUxZGQzMDIuLjkwZmE3ZWFmNjI3ZTgzNjI5ZmQ0OTY5MDc2ZWYzYmY3YzRiZGEwMmMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcApAQCAtMTI5NCw2ICsxMjk0LDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hv
dWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJvb2wgdmFsdWUpCiAgICAgV0tCdW5k
bGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFn
ZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwogfQogCit2b2lkIFRl
c3RSdW5uZXI6OnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
Ym9vbCB2YWx1ZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUo
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29s
ZWFuUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS0Jvb2xlYW5DcmVhdGUodmFsdWUpKTsKKyAg
ICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFn
ZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7Cit9CisK
IHZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKQogewogICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiVGVybWluYXRlTmV0d29ya1Byb2Nlc3MiKSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDcxM2E5
NDMzNjM5MDVmMGM5Yjc2MGQ1NzRhYzhmMzI0ZDhkNTE2ZmMuLmFlNzA0OWRkODExMGIwMjZmYzgz
ZDdlNjU3NDRjMzY4YjYwZGIxMjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0zNDgsNiArMzQ4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNl
dElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkRG93
bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhib29sKTsKIAogICAgIGJvb2wgZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiBtX2RpZENhbmNlbENsaWVudFJl
ZGlyZWN0OyB9CiAgICAgdm9pZCBzZXREaWRDYW5jZWxDbGllbnRSZWRpcmVjdChib29sIHZhbHVl
KSB7IG1fZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QgPSB2YWx1ZTsgfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA0NTU4YmEyY2Y5NWYzNWVjOGI2MDJjOWQ3
YWQ0NjI5Y2QxZjRlMTIzLi5jZmI1MjkwMzFiODVhYTRlMjllYTI0MjViMzgwNTdhNWU2OTNjNjY5
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjYyLDYg
KzI2MiwxMSBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0UG9pbnRlckxvY2soV0tQYWdlUmVmIHBhZ2Us
IGNvbnN0IHZvaWQqKQogICAgIFdLUGFnZURpZEFsbG93UG9pbnRlckxvY2socGFnZSk7CiB9CiAK
K3N0YXRpYyBib29sIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
V0tQYWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgY29uc3Qgdm9pZCopCit7Cisg
ICAgcmV0dXJuIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5oYW5kbGVEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc1JlcXVlc3Qob3JpZ2luKTsKK30KKwogV0tQYWdlUmVmIFRlc3RD
b250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9u
UmVmIGNvbmZpZ3VyYXRpb24sIFdLTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9u
LCBXS1dpbmRvd0ZlYXR1cmVzUmVmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKQogewogICAgIFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldyA9IHN0YXRpY19jYXN0PFBs
YXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKQEAgLTU3MCw4
ICs1NzUsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMo
Y29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lz
dGVudFZhbHVlcyhvcHRpb25zKTsKIAogICAgIHBsYXRmb3JtQ3JlYXRlV2ViVmlldyhjb25maWd1
cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKLSAgICBXS1BhZ2VVSUNsaWVudFY4IHBhZ2VVSUNsaWVu
dCA9IHsKLSAgICAgICAgeyA4LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisgICAgV0tQYWdlVUlD
bGllbnRWMTMgcGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDEzLCBtX21haW5XZWJWaWV3Lmdl
dCgpIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MAogICAgICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBjbG9zZQpAQCAtNjM3LDcg
KzY0MiwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMo
Y29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbAogICAgICAgICAwLCAvLyBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUK
ICAgICAgICAgcmVxdWVzdFBvaW50ZXJMb2NrLAotICAgICAgICAwLAorICAgICAgICAwLCAvLyBk
aWRMb3NlUG9pbnRlckxvY2sKKyAgICAgICAgMCwgLy8gaGFuZGxlQXV0b3BsYXlFdmVudAorICAg
ICAgICAwLCAvLyBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZQorICAgICAgICAw
LCAvLyBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kCisg
ICAgICAgIDAsIC8vIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5j
ZQorICAgICAgICAwLCAvLyByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0KKyAgICAgICAgc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcwogICAgIH07CiAgICAgV0tQ
YWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudC5i
YXNlKTsKIApAQCAtOTQzLDYgKzk1NCw4IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3Rh
dGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAKICAg
ICBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IGZhbHNlOwogCisgICAg
bV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzID0gZmFsc2U7CisK
ICAgICBtX3dvcmtRdWV1ZU1hbmFnZXIuY2xlYXJXb3JrUXVldWUoKTsKIAogICAgIG1fcmVqZWN0
c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzID0g
ZmFsc2U7CkBAIC0yNTQ4LDYgKzI1NjEsMTIgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxl
Q2hlY2tPZlVzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV0tGcmFtZVJlZiBmcmFtZSwKICAg
ICBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1NldFVzZXJNZWRpYUFjY2Vzc0luZm8oY2hlY2tS
ZXF1ZXN0LCBzYWx0U3RyaW5nLmdldCgpLCBzZXR0aW5nc0Zvck9yaWdpbihvcmlnaW5IYXNoKS5w
ZXJzaXN0ZW50UGVybWlzc2lvbigpKTsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6aGFuZGxl
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NSZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5S
ZWYgb3JpZ2luKQoreworICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQobWFrZVN0
cmluZygiUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0
IGZvciBzZWN1cml0eSBvcmlnaW4gXCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUob3JpZ2luKSwg
IlwiLlxuIikpOworICAgIHJldHVybiBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3M7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmhhbmRsZVVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4sIFdLU2VjdXJpdHlPcmlnaW5SZWYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0KQogewogICAg
IGF1dG8gb3JpZ2luSGFzaCA9IHVzZXJNZWRpYU9yaWdpbkhhc2godXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCmluZGV4IDFkMTNiNTUyMzczOTBiNzZmYjkyZTEwYWY5MzVkNzlmMGI2MzEw
YjQuLmUzZjE2YTYzOGNhYmUwZjI1MGY0NzE2YTI3N2JhNTcwZmZhZmRiMjQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTE1MCw2ICsxNTAsOSBAQCBwdWJsaWM6
CiAgICAgdW5zaWduZWQgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihX
S1N0cmluZ1JlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7CiAgICAgdm9pZCByZXNldFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4oV0tTdHJpbmdSZWYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5TdHJpbmcsIFdLU3RyaW5nUmVmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcpOwog
CisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uLgorICAgIGJvb2wgaGFuZGxlRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NSZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYp
OworCiAgICAgLy8gQ29udGVudCBFeHRlbnNpb25zLgogICAgIHZvaWQgY29uZmlndXJlQ29udGVu
dEV4dGVuc2lvbkZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKTsKICAgICB2b2lkIHJlc2V0
Q29udGVudEV4dGVuc2lvbnMoKTsKQEAgLTE5OSw2ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRJZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyhib29sKTsKIAogICAgIHZvaWQgc2V0U2hv
dWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRE
b3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMgPSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhib29sIHZhbHVlKSB7IG1f
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyA9IHZhbHVlOyB9CiAK
ICAgICB2b2lkIHNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBz
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoV0tTdHJpbmdSZWYgaG9z
dE5hbWUpOwpAQCAtNTA4LDYgKzUxMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BvbGljeURl
bGVnYXRlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlUGVybWlz
c2l2ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1J
TUVUeXBlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3MgeyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX3JlamVjdHNQcm90ZWN0
aW9uU3BhY2VBbmRDb250aW51ZUZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2hhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA2NjYwY2RjOTIx
Zjg5N2NjZTJmNzcxZDhkNTNhNWMyNmYyMTI0OGY5Li40NDIxOGFhNTE0Nzg2ZjhlZTExMmE5NWU2
ZjhjNTEwMTU2ODFmNjZkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcApAQCAtNzQ3LDYgKzc0NywxMyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
bWVzc2FnZU5hbWUsICJTZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jv
b2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19j
YXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyhXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJSdW5VSVBy
b2Nlc3NTY3JpcHQiKSkgewogICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0
aW9uYXJ5ID0gc3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7CiAgICAg
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzY3JpcHRLZXkoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlNjcmlwdCIpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiZjhjZWQzYmYwMjAyNjFj
ZWVkNDBkNzRkZTJjYTgzYTIyNTlkZWI2Li41NjJlN2E5ZjUxODk4ZTE5MzhkMDQ5YTM3ZTkzMmI1
NzdhNDgzNTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMDMtMDYgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9y
aWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzMjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ3NjQ1MzY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVu
aWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1ncmFudGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1ncmFudGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzL2Rldmlj
ZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVu
dGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaHR0cC90ZXN0
cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZp
Y2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dDoKKwogMjAx
OS0wMy0wNiAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJuYW5kZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBJbXBvcnQgbmV3IHRlc3RzIGZyb20gdGhlIENTUyBUZXh0IDMgV1BUIHRlc3Qgc3VpdGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDZlNmUxOGRhNGVlMWU4YTBiMTQ2Y2JjODBjZWY5N2Q2Yzhh
MmQ0ZjUuLmMyNzgxMmVhZGRhZDFmYmI5NzQzMzVjMzc2YjhmOThjM2FjNTc0NmIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzMsNiArMzMsNyBAQCBmYXN0L3pvb21pbmcvaW9zIFsgU2tpcCBdCiBm
YXN0L2Zvcm1zL2lvcyBbIFNraXAgXQogZmFzdC92aWV3cG9ydC9pb3MgWyBTa2lwIF0KIGZhc3Qv
dmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBTa2lwIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsg
U2tpcCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3MgWyBT
a2lwIF0KIGZhc3QvZXZlbnRzL3BvaW50ZXIvaW9zIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45Y2I2MzAyZjI0NjczMmQ1MjZjNTFmMWQ4YjhjYTY2ODMxYjUwNTQ3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMg
YmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24g
JiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxODogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMg
d2lsbCBiZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRlbmll
ZC4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9u
KCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZGVu
aWVkIgorUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhODAwM2YzZTE4NzE0
YjkxY2UyODljMTg4MTUwNmQ4NzQyOWM1YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZmFsc2UpOworCithZGRFdmVudExpc3RlbmVyKCJk
ZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKK0RldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisKKyAgICBhZGRFdmVu
dExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VNb3Rpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVz
dWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAi
ZGVuaWVkIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWUzMjBhMGMyNGEzNDJhOWI5OGFhZTU1NmI2ZDdkNmZlNTRlYTRiYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxMjogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBl
dmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBh
bmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3Mg
cmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNl
TW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQgaXMgImdyYW50
ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRkNzdmZWIyZjE4ZmIzMzg2ZTA4NDhiOTMxMmJmMjZkNGZiZjA5
MDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKQEAgLTAsMCAr
MSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24o
KS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzKHRydWUpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7
CisKK0RldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkg
PT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9u
IiwgKCkgPT4ge30pOworCisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24o
KS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKyAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYzY5NzE3OWIwM2Ex
MzZkYzhjZDk3NzYyZTlkOGViZjBiODYyYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEyOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxs
IGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVk
LgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZv
ciBzZWN1cml0eSBvcmlnaW4gIiIuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IE5vIGRldmlj
ZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJt
aXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyByZXN1bHQgaXMg
ImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmU3MzAzOTM3NGY4NTQwMDgxYmE5ZDRk
OGNhNWQ3MjY2Zjg1OTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5p
ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2
ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRl
dmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJl
cXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1
bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisKKyAg
ICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworICAg
IERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0
KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFu
dGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTJlZTFhZmQ0MGU5ZDMzMjExZDFmZmRhNjE3
YTg5YjM1NWJjODc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVk
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6
IE5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50
aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNlaXZlZCBk
ZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9y
aWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVz
dFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVz
dWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yYmI4ZDZiODQwMzQyOGNhMWUzYjBjYzkyNjk3ZjMxMDFmNzJmNWExCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
QmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lv
bigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3ModHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkg
PT4ge30pOworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhl
bigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigi
ZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2
ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1
bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJn
cmFudGVkIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9u
LW5vbi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IGVkMmRkMjAzNzdjNTczNjVlMWE1ZjdmZmM1
MjU0ZjcyN2Q3MWI1ZGMuLjM4ZjJkNDIwMDllOTNjNGE5MzkzMjNkNzIwMzk2ZDkxZDY1ZTZkNDQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRh
dGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRl
eHQuaHRtbApAQCAtMjcsNyArMjcsNyBAQCBmdW5jdGlvbiBydW5EZXZpY2VNb3Rpb25UZXN0KCkK
ICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7CiAgICAg
YWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGlu
dGVybmFscy5wb3N0VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
bGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90
aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQg
aXMgbm90IHNlY3VyZS4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29u
c29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Ig
b3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBu
b3Qgc2VjdXJlLiIpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsKIH0KQEAgLTQ0
LDcgKzQ0LDcgQEAgZnVuY3Rpb24gcnVuRGV2aWNlT3JpZW50YXRpb25UZXN0KCkKICAgICBkZWJ1
ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsKICAgICBhZGRF
dmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKICAgICBp
bnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
Imxhc3RDb25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1v
dGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0
IGlzIG5vdCBzZWN1cmUuIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENv
bnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9y
IG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMg
bm90IHNlY3VyZS4iKTsKICAgICAgICAgcnVuRGV2aWNlTW90aW9uVGVzdCgpOwogICAgIH0pOwog
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVu
dGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0
LWV4cGVjdGVkLnR4dAppbmRleCAwZmI3ZDdlYmYyZDg0MmQ3YmI3MzRhYTg0MzMxOGQ4OTY4MGQ0
MzQ2Li44NmUxODgxODQ4Y2RjMjE4ODMzZmEyN2Y2ZjZkZWM3NzZjNjdlNGY0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9u
LXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVk
LnR4dApAQCAtMSwxMCArMSwxMSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM3OiBEZXZpY2Ug
T3JpZW50YXRpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
OTogRGV2aWNlIE1vdGlvbiBBUEkgaXMgbm90IHN1cHBvcnRlZAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDUxOiBEZXZpY2UgT3JpZW50YXRpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAyODogRGV2aWNlIE1vdGlvbiBBUEkgaXMgbm90IHN1cHBvcnRlZAogVGVz
dHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRh
dGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gZG9lcyBub3QgbG9nIGFuIGVycm9yIGluIHNlY3Vy
ZSBjb250ZXh0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKKwogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3Vy
ZS1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3Jp
ZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKaW5kZXggNGU1NGQxMWQ5OTQxZTc1
OGUwMjc1MGI4NmQ0M2UzMmJjOTQzM2VlZS4uZDk0MGI3YTVhMzY2MTQzNmM2NWFiZmM1M2I3M2Mz
YjVkNTlmYzlhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2
aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNv
bnRleHQuaHRtbApAQCAtNiw2ICs2LDExIEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0cnlp
bmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2
aWNlb3JpZW50YXRpb24gZG9lcyBub3QgbG9nIGFuIGVycm9yIGluIHNlY3VyZSBjb250ZXh0cy4i
KTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICBpZiAodGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKQorICAgICAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7Cit9CisKIC8vIGxvY2FsaG9zdCBpcyBzZWN1cmUgYnkg
ZGVmYXVsdC4KIAogbGV0IGxhc3RDb25zb2xlTWVzc2FnZSA9IG51bGw7CkBAIC0xNSwxOSArMjAs
MjUgQEAgaW50ZXJuYWxzLnNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoKG1lc3NhZ2UpID0+IHsK
IAogZnVuY3Rpb24gcnVuRGV2aWNlTW90aW9uVGVzdCgpCiB7CisgICAgZGVidWcoIiIpOwogICAg
IGlmICghd2luZG93LkRldmljZU1vdGlvbkV2ZW50KSB7CiAgICAgICAgIGNvbnNvbGUubG9nKCJE
ZXZpY2UgTW90aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkIik7CiAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0g
bnVsbDsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1v
dGlvbiBsaXN0ZW5lciIpOwotICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1
bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBz
aG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICBkZWJ1ZygiKiBSZXF1ZXN0aW5nIGRldmljZSBtb3Rpb24gYWNjZXNzLi4uIik7Cisg
ICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9
PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKworICAgICAgICBsYXN0Q29uc29sZU1lc3NhZ2Ug
PSBudWxsOworICAgICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3Rl
bmVyIik7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9u
KCkgeyB9KTsKKyAgICAgICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKKyAgICAgICAgICAg
IHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNzYWdlIik7CisgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5LDEyICs1MCwxOSBAQCBm
dW5jdGlvbiBydW5EZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1ZygiKiBSZWdpc3Rl
cmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVy
KCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9z
dFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIp
OwotICAgICAgICBydW5EZXZpY2VNb3Rpb25UZXN0KCk7CisgICAgZGVidWcoIiogUmVxdWVzdGlu
ZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNlT3JpZW50YXRpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVz
dWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAi
Z3JhbnRlZCIpOworCisgICAgICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1p
c3Npb24KKyAgICAgICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKKyAgICAgICAgZGVidWco
IiogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFk
ZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOworICAg
ICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4geworICAgICAgICAgICAgc2hvdWxkQmVOdWxs
KCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKKyAgICAgICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3Qo
KTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2OWM4Mzg0ZTJjODE4NjUyZjA0NWFjZjQ5NTU0
Y2I2MmUyNzllZWFiLi4wYjhlODRkODA2OTc2NTlhNTQwOGVjYTA3YjgwYjg1NTMxMzc4MDgyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC03
LDYgKzcsNyBAQAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBjb21wb3Np
dGluZy9pb3MgWyBQYXNzIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0
L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KIGZhc3Qv
dmlld3BvcnQvaW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJl
LWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVz
dHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4
cGVjdGVkLnR4dAppbmRleCA4Njc3OWFmNDY1MTExMWIxODcxNWE1M2U3YjExZTNiMTFiOTczYTEx
Li43ODI3YWJjMmVkYzI4NmMxYzY3ODFjNDkxOWU0OGRiZGE1OTkyYzk1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0
aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90
aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTUgKzEsMTUgQEAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA0NTogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBt
b3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4
dCBpcyBub3Qgc2VjdXJlLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBCbG9ja2VkIGF0dGVt
cHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNl
IHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgNDU6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0
aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3Vy
ZS4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyODogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRl
dmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3Np
bmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2
ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24g
bG9ncyBhbiBlcnJvciBpbiBub24tc2VjdXJlIGNvbnRleHRzLgogCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCiAKIAogKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIK
LVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2
aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBj
b250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2Nr
ZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxp
c3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iCiAKICogUmVn
aXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lcgotUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2Ug
aXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9u
IGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iCitQ
QVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmlj
ZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3Npbmcg
Y29udGV4dCBpcyBub3Qgc2VjdXJlLiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0
dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRz
L2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDMxYjg1ZjVkN2Q0NWYzN2Y5ZDZiMTY1ZjY3MzdkZmU1OTIyZWRmNWMuLjQ0ZmMxOGY4OTll
MzI5MzQ1N2QwOGJjYTNmZDY2YjJiOTA2Y2FjMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNl
Y3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
aHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4
dC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTYgQEAKK1JlY2VpdmVkIGRldmljZSBvcmllbnRh
dGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiLgogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxpc3Rl
bmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gZG9lcyBub3Qg
bG9nIGFuIGVycm9yIGluIHNlY3VyZSBjb250ZXh0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCiAKKyogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzLi4uCitQQVNT
IHJlc3VsdCBpcyAiZ3JhbnRlZCIKICogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxp
c3RlbmVyCiBQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyBudWxsCiAKKyogUmVxdWVzdGluZyBk
ZXZpY2UgbW90aW9uIGFjY2Vzcy4uLgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCiAqIFJlZ2lz
dGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVuZXIKIFBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlz
IG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363747</attachid>
            <date>2019-03-06 09:01:40 -0800</date>
            <delta_ts>2019-03-07 10:02:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190306090139.patch</filename>
            <type>text/plain</type>
            <size>106230</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZkNWQxNmQwNDRhNTk5
ZWVkYzZjNjJkNmMyOGNmNTYwNTc2Y2QyMi4uNWRlYmJkODZhYjExMWZkMWI5NDc2ZTliMDQ4MTQw
Njg4MjZiZWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkV2ZW50Lmg6CisgICAgICAg
ICogZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbDoK
KyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQ6OnJlcXVl
c3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50Lmg6CisgICAgICAgICogZG9tL01pY3JvdGFza3MuY3BwOgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGV2aWNlTW90aW9uQ29udHJvbGxlciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50
YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb0Fk
ZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3Nh
cnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNl
T3JpZW50YXRpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9EZXZpY2VDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6Omhhc0RldmljZUV2ZW50TGlz
dGVuZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5oOgorICAgICAg
ICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKwogMjAxOS0wMy0wNiAgUm9iIEJ1aXMgIDxyYnVpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIENvbnNpZGVyIHN1cHBvcnRpbmcgdGhlIGByZWZlcnJlcnBv
bGljeWAgYXR0cmlidXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4ZTljZDNmMTgyOTI2OGZmZjY5NjIwZTIyNGVk
MzM4M2UzMTFmMDA0Li5jMGQwNGJjYWE4YTFjNzgxNjYzODk1YzJkZWNiODZhYjNjOGE5ZTkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTAzLTA2ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlv
biAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgor
ICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVz
LzU3CisKKyAgICAgICAgVGhpcyBhZGRzIG5ldyBTUEkgdG8gV0tVSURlbGVnYXRlUHJpdmF0ZSwg
dW50aWwgd2UgY2FuIG1ha2UgdGhpcyBBUEkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAg
KFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpz
ZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bmV4dERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzRGVjaXNpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIw
MTktMDMtMDYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBDb25zaWRl
ciBzdXBwb3J0aW5nIHRoZSBgcmVmZXJyZXJwb2xpY3lgIGF0dHJpYnV0ZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNjAxMjRmYzFjZGUxN2E0MDk5OTFhYWYwNmFkZjdiMzM5ZDdiOGUzOC4uNzA1
N2U3OTFhOGNlZDc0NmFiNGI3YzAyZTVjMzI2OTM0ZGY5NTBkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTY2OSw2ICs2NjksOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQu
aWRsCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL0RldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKKyAgICBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZS5pZGwKICAgICBkb20vRG9jdW1lbnQuaWRsCiAgICAgZG9tL0Rv
Y3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCiAgICAgZG9tL0RvY3VtZW50RnJhZ21l
bnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAppbmRleCAyNTVhYjQ0ZDZlYjVkMjU0NGY0ZjU5NWE3NGM2NWE0M2RkN2Q4ZDYzLi41YmJlOGEz
ZTlkOGJmMTQ0NGM5MWI4YjcxMjE4NWNjNTBjZmZmMmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTU1OSw2ICs1NTksOCBAQCAkKFBS
T0pFQ1RfRElSKS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9E
YXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbAor
JChQUk9KRUNUX0RJUikvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKKyQo
UFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmlkbAogJChQUk9KRUNUX0RJUikvZG9tL0RvY3VtZW50LmlkbAogJChQUk9KRUNUX0RJUikvZG9t
L0RvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20v
RG9jdW1lbnRGcmFnbWVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYjVmMDIyZGI2YmMzOGM4NzA1Mzc2ZDM1ZGMwYWUwZjUy
NWY5ZTFlNC4uMmI0ZDZhMzAwOGRkNDAxNTI2ODdjNzE2ZDlkODZhNWRjM2E1MzdhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTQ1
OSw2ICs0NTksMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNEZXZpY2VNb3Rpb25FdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRGV2aWNlTW90aW9uRXZlbnQuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRG9jdW1lbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVycy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDA2Njg3OTI2NTkyODRkYTc0Y2Q2OTlkOTg2
YTUwNTFmNjQ0YmQ2YWEuLjM2MWJkZjRjOWYwY2IwMzgwYTZlNDUxMzI3MjVmNWY4YzM5YTY3ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTY5LDYgKzU2OSw4IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2RvbS9Eb2N1bWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RvY3VtZW50
QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Eb2N1bWVu
dEZyYWdtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGI1NzVlNjhiZmZiYWJhZTkyMTY1MGQ0
YTliZjZjNDI1MzFhMWQ3OTYuLmU0MjFlNDJlM2ZhNDM5OTcyY2RjYjc3MzE5MDNmODYxZWU5N2Mz
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04MjEsNiArODIxLDcgQEAgZG9tL0RldmljZU1vdGlvbkV2
ZW50LmNwcAogZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkRhdGEuY3BwCiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKK2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBkb20vRG9jdW1lbnQuY3BwCiBkb20v
RG9jdW1lbnRFdmVudFF1ZXVlLmNwcAogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC0yNzE5
LDYgKzI3MjAsOCBAQCBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAogSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QuY3BwCiBKU0RldmljZU1vdGlvbkV2ZW50LmNwcAogSlNEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcAorSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmNwcAorSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBKU0RvY3VtZW50LmNw
cAogSlNEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmNwcAogSlNEb2N1bWVudEZyYWdt
ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDhmMDkwOWIwM2UwMzUzZDQwOTgwYWQxNjRkY2M2MTkyYzViYzUyYTkuLjFl
NjhjMzA5MGNmMmQxZTEwZTIwM2ZkNGNmNjgzZDQ4ZGZlYWE1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTIsNiArMTI1
Miw4IEBACiAJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NUZFQTVDRTE1NkRERThDMDA2
NTQxMDEgLyogRGVjaW1hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQ2MEJCNjE2MUQwQTFCRjAwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEJCNjE0
MUQwQTFCRUMwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjBDQkYzNjFENEJDRDBFMDA5MkU4OEUg
LyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzNDFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQ
cm9wZXJ0aWVzLmggKi87IH07CisJCTQ2MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQuaCAqLzsgfTsKKwkJNDYwRTMwNzcyMjJGNEYwMzAwOUEwNjA2IC8q
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUVERDlGMjIyRjRFQzMwMEI0NkUx
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi87IH07CiAJ
CTQ2MjE4QUNCMUY3MkQ2NEUwMDU3NEZCRSAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkUwMTZBRDFGNzJENjFF
MDAyODJCMkMgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBX
aW5kb3dQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAw
OTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9u
LmggKi87IH07CkBAIC03NzIwLDYgKzc3MjIsOCBAQAogCQk0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4
OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NV2luZG93UHJvcGVydGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2MENCRjM0MUQ0QkNDRkUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3Bl
cnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01XaW5kb3dQcm9w
ZXJ0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MEQxOTQ0MUZDRTIxREQw
MEMzREI4NSAvKiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MURBNTJBMjIyRjQ4NkYw
MEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2Vy
T2JzZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG93
ZXJPYnNlcnZlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MzUyMUFB
MjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXaW5kb3dQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NjM1MjFBQzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzcyNyw2ICs3NzMxLDkgQEAKIAkJNDYzRUI2MjExQjg3ODlDQjAwOTZF
RDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjQyNDA0NTIw
RUFGMEVEMDBCMjlGRDIgLyogRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQ2NUVERDlEMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUVERDlGMjIyRjRFQzMw
MEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RUREQTAy
MjJGNEVDNDAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZEQzZB
QjFFREUwMjFEMDA3NDYyMjQgLyogSlNET01SZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVJlY3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDY2RUQ4RDIxRURFMDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01SZWN0TGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyogQ2FudmFz
UGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNQYXRo
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NDc2LDYgKzI3NDgzLDExIEBA
CiAJCQkJNTlBODVFQTExMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwICovLAogCQkJCTU5QTg1RUEzMTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmggKi8sCiAJCQkJNTlBODVFQUExMTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVu
dGF0aW9uRXZlbnQuaWRsICovLAorCQkJCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwICovLAorCQkJCTQ2MURBNTJBMjIyRjQ4NkYw
MEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLywKKwkJCQk0NjVF
REQ5RDIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmlk
bCAqLywKKwkJCQk0NjVFREQ5RjIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oICovLAorCQkJCTQ2NUVEREEwMjIyRjRFQzQwMEI0NkUx
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCAqLywKIAkJ
CQlBODE4NUYzNDA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuY3BwICovLAogCQkJCUE4MTg1
RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlFMUUw
NEQwMEFGODAyMCAvKiBEb2N1bWVudC5pZGwgKi8sCkBAIC0yOTAwNiw2ICsyOTAxOCw4IEBACiAJ
CQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0IC8qIERldmlj
ZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODVFQTQxMTlENjhFQzAw
REVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2
MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NzJCNDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTcyQjQwM0EyMTc3MjU4MTAwMEFENDNFIC8qIERldmljZVJlc3BvbnNl
Q29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjc3MjVGRDFBNUIzQUQ5MDAzQzI0REQg
LyogREZBLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50
LmgKaW5kZXggM2VjYzViZDRjMGM3ZWVjMThlOWZiOGU0MTU2ZjE4YmYzZWY0NTMzZC4uNTFkNzFh
MGU3Y2Q3ODQzZDE1ODJiMDM5Y2NlMjNhODI3MjUzZTlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkV2ZW50LmgKQEAgLTI1LDEzICsyNSwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsK
IAotY2xhc3MgRGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworY2xhc3Mg
RGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uRXZlbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkRldmljZU1vdGlv
bkV2ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCmluZGV4
IGYyZjVkZjIwZmNlNTNiYzEzYjVhYmU2ZDQxOGUyMGJkNWE0ZmQzODYuLjI3ZjJjNTU3MjExZDVk
MGU0ZjUyNGI2NmQ5MWRkNDg0Mjc3ZGMyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkV2ZW50LmlkbApAQCAtNTcsMyArNTcsNSBAQAogICAgIGRvdWJsZT8gYmV0YTsKICAgICBk
b3VibGU/IGdhbW1hOwogfTsKKworRGV2aWNlTW90aW9uRXZlbnQgaW1wbGVtZW50cyBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uRXZlbnQuaAppbmRleCAwMjViMmUzMmE3NTFlNDJmNjUwYmI1M2I1MTVhMTBiZGI1Mjdm
NDc4Li42Mjg3MDhiNmU4NGI1MjYxOGU5NjgzY2Q2Y2RlNjdmM2ZhMTE2OGYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKQEAgLTI1LDEzICsyNSwxNCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uRXZlbnQgZmlu
YWwgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQg
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25FdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIG9y
aWVudGF0aW9uKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmlkbAppbmRleCAxM2ZmN2JhZGMwZTU5MTE2NjM1OTVkMTVkMTFkYmQ2MGEzMzM5ZmRi
Li43ZjM1ZjEwZDE5MTdhNzU0Zjg2MDFiOGFhZTBiOWVkNzE5ODJhYTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCkBAIC01NSwzICs1NSw0IEBA
CiAjZW5kaWYKIH07CiAKK0RldmljZU9yaWVudGF0aW9uRXZlbnQgaW1wbGVtZW50cyBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NWQ5YzQ0MjY0
NzdiYWNlZjEyMmNkN2I0NzFlZWEzODNjZDdlMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcApAQCAtMCwwICsx
LDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvbkV2ZW50LmgiCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCit2b2lkIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudDo6cmVxdWVz
dFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBQZXJtaXNzaW9uUHJvbWlzZSYmIHByb21p
c2UpCit7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQuZG9tV2luZG93KCk7CisgICAgaWYg
KCF3aW5kb3cpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoUGVybWlzc2lvblN0YXRl
OjpEZW5pZWQpOworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIXdpbmRvdy0+
aXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25PcmllbnRhdGlvbihlcnJvck1lc3NhZ2UpKSB7Cisg
ICAgICAgIGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkNhbGwgdG8gcmVxdWVzdFBlcm1pc3Npb24o
KSBmYWlsZWQsIHJlYXNvbjogIiwgZXJyb3JNZXNzYWdlLCAiLiIpKTsKKyAgICAgICAgcmV0dXJu
IHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfQorCisgICAg
aWYgKGF1dG8gcGVybWlzc2lvblN0YXRlID0gZG9jdW1lbnQuZGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NTdGF0ZSgpKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKCpwZXJt
aXNzaW9uU3RhdGUgPyBQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6
OkRlbmllZCk7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdGU6OkRl
bmllZCk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGRvY3VtZW50LnRvcE9yaWdpbigpLCBbZG9jdW1lbnQg
PSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShib29s
IGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoZG9jdW1lbnQpCisgICAgICAgICAgICBk
b2N1bWVudC0+c2V0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZShncmFudGVk
KTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGdyYW50ZWQgPyBQZXJtaXNzaW9uU3RhdGU6Okdy
YW50ZWQgOiBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7CisgICAgfSk7Cit9CisjZW5kaWYKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYWU2ODFmMzhmOWQ4OWU3
YjA3ZDdhMjQ0YmY2ZjczNTdmODZmODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKKworY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKK3B1YmxpYzoKKworI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgdXNpbmcgUGVybWlzc2lvblN0YXRlID0gRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZTsKKyAgICB1c2luZyBQZXJtaXNzaW9uUHJvbWlzZSA9
IERPTVByb21pc2VEZWZlcnJlZDxJRExFbnVtZXJhdGlvbjxQZXJtaXNzaW9uU3RhdGU+PjsKKyAg
ICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFBlcm1pc3Npb25Qcm9t
aXNlJiYpOworI2VuZGlmCisKK3Byb3RlY3RlZDoKKyAgICBEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uRXZlbnQoKSA9IGRlZmF1bHQ7CisgICAgfkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVu
dCgpID0gZGVmYXVsdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjgzMWE0NjVmMGI3NmJiMjVhODA1ODcxYWMyZjU2ZTcyNzIwZWU3OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1E
RVZJQ0VfT1JJRU5UQVRJT04sCisgICAgTm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIERl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudCB7CisgICAgW0NhbGxXaXRoPURvY3VtZW50LCBF
bmFibGVkQnlTZXR0aW5nPURldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSV0gc3RhdGljIFBy
b21pc2U8RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZT4gcmVxdWVzdFBl
cm1pc3Npb24oKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDY1
ZWRiYTU2MGEzMmY5YTYyMDEyYmRkZGYyZTM1NjVjY2I1ZjhmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitlbnVtIGNsYXNzIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUgeyBHcmFudGVkLCBEZW5pZWQgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIxODE0MDMwMWVmZDYxZjRmMzEyNTY3ZDU5NDgzNDg4OGU1Yzgz
MzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGwKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVS
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
ZW51bSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIHsgImdyYW50ZWQi
LCAiZGVuaWVkIiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTQyOTI3ODZjYzhlZmVl
ZjViMWEyZmMxNWRjNzEwYmZlYzFjMzExMC4uYmY4YTQ2YjE0NWUwNzNlZjk0MTJlMDUzNTc0M2Fl
MjJlMmI1NWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NjM4LDYgKzg2MzgsMzYg
QEAgdm9pZCBEb2N1bWVudDo6ZnJhbWVXYXNEaXNjb25uZWN0ZWRGcm9tT3duZXIoKQogICAgIGRl
dGFjaEZyb21GcmFtZSgpOwogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKwor
Y29uc3QgT3B0aW9uYWw8Ym9vbD4mIERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzc1N0YXRlKCkgY29uc3QKK3sKKyAgICBpZiAoJnRvcERvY3VtZW50KCkgIT0gdGhpcykK
KyAgICAgICAgcmV0dXJuIHRvcERvY3VtZW50KCkuZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NTdGF0ZSgpOworCisgICAgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NTdGF0ZTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NTdGF0ZShib29sIGdyYW50ZWQpCit7CisgICAgaWYgKCZ0b3BEb2N1bWVudCgp
ICE9IHRoaXMpIHsKKyAgICAgICAgdG9wRG9jdW1lbnQoKS5zZXREZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc1N0YXRlKGdyYW50ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlID0gZ3JhbnRlZDsKKwor
ICAgIGlmICghZ3JhbnRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvKiBmcmFt
ZSA9IG1fZnJhbWU7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlTmV4dChtX2ZyYW1lKSkgeworICAgICAgICBmcmFtZS0+d2luZG93KCktPnN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgICAgICBm
cmFtZS0+d2luZG93KCktPnN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3Nhcnko
KTsKKyAgICB9Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCiBX
b3JrbGV0JiBEb2N1bWVudDo6ZW5zdXJlUGFpbnRXb3JrbGV0KCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggNzc4YzIxMzNjNTQzNTdkZDY3NzE5OWRmNzE5NDE3YjNlZGU5MzExYS4uMmIyYzNj
OGNiYzdlNDczNGY3ZWMzYWFjNzI5ZTNlYmQ1YmIxNzc3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
QEAgLTEyMTQsMTIgKzEyMTQsMTcgQEAgcHVibGljOgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9u
cy9Eb2N1bWVudElPUy5oPgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyJiBk
ZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyJiBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNpbXVsYXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhh
LCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hKTsKICNlbmRpZgogCisgICAgY29uc3QgT3B0aW9u
YWw8Ym9vbD4mIGRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdDsK
KyAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoYm9vbCBn
cmFudGVkKTsKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAgICAgY29u
c3QgRG9jdW1lbnRUaW1pbmcmIHRpbWluZygpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRUaW1p
bmc7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBtb25vdG9uaWNUaW1lc3RhbXAoKSBj
b25zdDsKQEAgLTE4MzEsNiArMTgzNiwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hcmVGdWxs
c2NyZWVuQ29udHJvbHNIaWRkZW4geyBmYWxzZSB9OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQorICAgIE9wdGlvbmFsPGJvb2w+IG1fZGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NTdGF0ZTsKKyNlbmRpZgorCiAgICAgSGFzaFNldDxIVE1MUGljdHVyZUVs
ZW1lbnQqPiBtX3ZpZXdwb3J0RGVwZW5kZW50UGljdHVyZXM7CiAgICAgSGFzaFNldDxIVE1MUGlj
dHVyZUVsZW1lbnQqPiBtX2FwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlczsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL01pY3JvdGFza3MuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L01pY3JvdGFza3MuY3BwCmluZGV4IDI1YTQ3YTY4Mzk1ZTgyNWYxYjBkNjE2Yjk3MTBhM2U2YmI1
ZDc4YWIuLjJjY2NmMGIyMmMwNzc0MjE3MDFiMWM2ZjE2NjlmMjkwYWY5ZGRiMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWljcm90YXNrcy5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJNaWNyb3Rhc2tzLmgiCiAKKyNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAppbmRleCAzYTBkYzNiYjAzZGNkNzBiZTk0ZWY0Yjk4NjIxZDk3OTU2MGU3ZWJh
Li40N2UzYzVhYTc0ODVjZjUxZDYzZWIwMzU5ZmViMTE1MDcxYjVjYjUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQ4Miw2ICs0ODIsMTAgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIC8qc3ViRnJhbWVIb3N0Ki8sIFN0cmlu
ZyYmIC8qdG9wRnJhbWVIb3N0Ki8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCB1aW50NjRfdCAvKnBh
Z2VJRCovLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQgKGJvb2wpPiYmIGNhbGxiYWNrKSB7
IGNhbGxiYWNrKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhTdHJpbmcmJiAvKnN1YkZyYW1lSG9zdCovLCBTdHJpbmcmJiAvKnRvcEZyYW1lSG9zdCovLCB1
aW50NjRfdCAvKmZyYW1lSUQqLywgdWludDY0X3QgLypwYWdlSUQqLywgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KIAor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdmlydHVhbCB2b2lkIHNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoY29uc3QgU2VjdXJpdHlPcmlnaW4m
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJh
Y2sodHJ1ZSk7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVFbGVt
ZW50KEhUTUxNZW51RWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVNZW51
RWxlbWVudChIVE1MTWVudUVsZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zZXJ0
TWVudUl0ZW1FbGVtZW50KEhUTUxNZW51SXRlbUVsZW1lbnQmKSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAppbmRleCBkZmExMTI0ODRhM2E0NzdlM2RjMDIyYTM0Y2EzNGRmM2ZmYTkzZTMy
Li4xY2EzOGIxMGMzZTJhODJmZWUxNzYyMGUwNWJhY2NiOGFmNmI5NzdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCkBAIC0xODI2LDUwICsxODI2LDEzNCBAQCBib29sIERPTVdpbmRvdzo6
YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50
TGlzdGVuZQogICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc0dhbWVwYWRFdmVudFR5cGUoZXZl
bnRUeXBlKSkKICAgICAgICAgaW5jcmVtZW50R2FtZXBhZEV2ZW50TGlzdGVuZXJDb3VudCgpOwog
I2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBlbHNlIGlmIChldmVu
dFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpCisgICAgICAgIHN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIGVsc2Ug
aWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpCisgICAgICAg
IHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKKyNlbmRpZgorCisg
ICAgcmV0dXJuIHRydWU7Cit9CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAg
IGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVu
dEVuYWJsZWQoKSAmJiBkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPmxvYWRlcigpICYmIGRvY3Vt
ZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CisKK0Rl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogRE9NV2luZG93OjpkZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIoKSBjb25zdAorewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIGlm
ICgoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCB8fCBldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpKSB7Ci0gICAgICAgICAg
ICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpICYmIGlzU2VjdXJlQ29udGV4
dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2
aWNlb3JpZW50YXRpb25FdmVudCkKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkuYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7
Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5k
ZXZpY2VNb3Rpb25Db250cm9sbGVyKCkuYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0g
ICAgICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
aXNTZWN1cmVDb250ZXh0KCkpCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJC
bG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0
ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdp
biBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmlj
ZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29u
dGV4dCBpcyBub3Qgc2VjdXJlLiJfcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBy
ZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIoKSA6IG51bGxwdHI7CiAjZWxzZQotICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewotICAgICAgICAgICAgaWYgKGlzU2FtZVNlY3VyaXR5
T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICAgICAg
ICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9u
Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVy
LT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2
aWNlIG1vdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1l
IHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0g
ICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpICYmIGlzU2Vj
dXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShw
YWdlKCkpKQotICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExp
c3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGlzU2VjdXJlQ29udGV4dCgpKQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAi
QmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lciBmcm9t
IGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUg
bWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBu
b3Qgc2VjdXJlLiJfcyk7Ci0gICAgICAgICAgICB9CisgICAgcmV0dXJuIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpOworI2VuZGlmCit9CisKK0RldmljZU1vdGlvbkNv
bnRyb2xsZXIqIERPTVdpbmRvdzo6ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0Cit7Cisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVu
dCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgOiBudWxscHRyOworI2Vsc2UKKyAgICByZXR1
cm4gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpOworI2VuZGlmCit9CisKK2Jv
b2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmlu
ZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnNldHRp
bmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSB8fCAhZG9jdW1lbnQoKSB8fCAh
ZG9jdW1lbnQoKS0+bG9hZGVyKCkgfHwgIWRvY3VtZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmll
bnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiQVBJIGlzIGRpc2Fi
bGVkIl9zOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFpc1NlY3Vy
ZUNvbnRleHQoKSkgeworICAgICAgICBtZXNzYWdlID0gIkJyb3dzaW5nIGNvbnRleHQgaXMgbm90
IHNlY3VyZSJfczsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghaXNT
YW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiU291
cmNlIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1h
aW4gcGFnZSJfczsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50
YXRpb25MaXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Cit7CisgICAgU3RyaW5nIGlubmVy
TWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24o
aW5uZXJNZXNzYWdlKSkgeworICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiQmxvY2tlZCBh
dHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVu
ZXIsIHJlYXNvbjogIiwgaW5uZXJNZXNzYWdlLCAiLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKGZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25Q
ZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8gcGVybWlzc2lvblN0YXRlID0g
ZG9jdW1lbnQoKS0+ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSgpOworICAg
ICAgICBpZiAocGVybWlzc2lvblN0YXRlICYmICEqcGVybWlzc2lvblN0YXRlKSB7CisgICAgICAg
ICAgICBtZXNzYWdlID0gIk5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdp
bGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQu
Il9zOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0jZW5kaWYgLy8gUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuZGV2aWNlbW90aW9uRXZlbnQpCi0gICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rp
b25FdmVudExpc3RlbmVyKCk7Ci0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
KyAgICAgICAgaWYgKCFwZXJtaXNzaW9uU3RhdGUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAi
Tm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRp
bCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4iX3M7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIERPTVdpbmRvdzo6c3Rh
cnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAo
IWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcigpOworICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZp
Y2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRk
RGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAg
IGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1
bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRl
dmljZUNvbnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lk
IERPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3Nhcnko
KQoreworICAgIGlmIChoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50
YXRpb25FdmVudCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBkZXZpY2VDb250
cm9sbGVyID0gZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkpCisgICAgICAgIGRldmljZUNv
bnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERP
TVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpCit7Cisg
ICAgaWYgKCFoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQp
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2aWNl
TW90aW9uQ29udHJvbGxlcigpOworICAgIGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VD
b250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2
aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGZh
aWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25FdmVudExpc3RlbmVyKCk7CisgICAgICAgIGlmIChh
dXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fybmlu
ZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNv
bnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdp
bmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBp
ZiAoaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VN
b3Rpb25Db250cm9sbGVyKCkpCisgICAgICAgIGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmlj
ZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQogCiB2b2lkIERPTVdpbmRvdzo6ZmFpbGVkVG9SZWdp
c3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKQogewpAQCAtMTk0MSwyMiArMjAyNSw2IEBA
IGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAgICAgICAgIHJlbW92ZVVubG9hZEV2ZW50TGlzdGVu
ZXIodGhpcyk7CiAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmV1
bmxvYWRFdmVudCAmJiBhbGxvd3NCZWZvcmVVbmxvYWRMaXN0ZW5lcnModGhpcykpCiAgICAgICAg
IHJlbW92ZUJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7Ci0jaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGVsc2UgaWYgKGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQgJiYgZG9jdW1lbnQoKSkK
LSAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmlj
ZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCAmJiBkb2N1bWVudCgpKQotICAgICAgICBkb2N1
bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVEZXZpY2VFdmVudExp
c3RlbmVyKCp0aGlzKTsKLSNlbHNlCi0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewotICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJv
bGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkK
LSAgICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMp
OwotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRh
dGlvbkV2ZW50KSB7Ci0gICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNv
bnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAg
ICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwot
ICAgIH0KLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbHNlIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50KQogICAgICAgICBkZWNyZW1l
bnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50KCk7CkBAIC0xOTc3LDYgKzIwNDUsMTIgQEAgYm9v
bCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNHYW1lcGFk
RXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAgICAgIGRlY3JlbWVudEdhbWVwYWRFdmVudExpc3Rl
bmVyQ291bnQoKTsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50
KQorICAgICAgICBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgp
OworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZl
bnQpCisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOwor
I2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTIwNTksMTggKzIxMzMsOSBAQCB2b2lk
IERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIEV2ZW50VGFyZ2V0Ojpy
ZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQg
PSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGRvY3VtZW50LT5kZXZpY2VNb3Rpb25Db250
cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgICAgICBk
b2N1bWVudC0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZl
bnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgIH0KLSNlbHNlCi0gICAgaWYgKERldmljZU1vdGlvbkNv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2Uo
KSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0
aGlzKTsKLSAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0g
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRy
b2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7
CisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChtX3Njcm9sbEV2ZW50TGlz
dGVuZXJDb3VudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYmJiZmE5NTg3MmU0YTMz
ZTczNDI1MjgxZTRhY2NiNGY3MDU5YjFjNC4uMWQ4YTY0MjkyZjAxZjA5ZjE1MTJiY2RkNjY4NmZl
YzQ3MmViYTJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC04Miw2ICs4MiwxMSBAQCBj
bGFzcyBWaXN1YWxWaWV3cG9ydDsKIGNsYXNzIFdlYktpdE5hbWVzcGFjZTsKIGNsYXNzIFdlYktp
dFBvaW50OwogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK2NsYXNzIERldmljZU1v
dGlvbkNvbnRyb2xsZXI7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CisjZW5k
aWYKKwogc3RydWN0IEltYWdlQml0bWFwT3B0aW9uczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsK
IApAQCAtMzExLDYgKzMxNiwxOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgc2Nyb2xsRXZlbnRM
aXN0ZW5lckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxFdmVudExpc3RlbmVyQ291bnQ7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQg
c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lk
IHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0
b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworCisgICAgYm9vbCBpc0Fs
bG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7
CisgICAgYm9vbCBpc0FsbG93ZWRUb0FkZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIo
U3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKKworICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciogZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29uc3Q7CisgICAgRGV2aWNlTW90aW9u
Q29udHJvbGxlciogZGV2aWNlTW90aW9uQ29udHJvbGxlcigpIGNvbnN0OworI2VuZGlmCisKICAg
ICB2b2lkIHJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9uKCk7CiAKICNpZiBFTkFCTEUoSU9T
X1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCmluZGV4IDMzNjdkM2RiZjU5ZmMzMzU3MjQ5NzU4
YWM2M2RkMTcyNWUwNzYzNjYuLjg0MmI4NTRlZTI1MTI1OGE0MTA2MmJmZTBkMDY1NDRlZGIzYzZm
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcApAQCAtNjksNiAr
NjksMTEgQEAgdm9pZCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3Rl
bmVycyhET01XaW5kb3cmIHdpbmRvdykKICAgICAgICAgbV9jbGllbnQuc3RvcFVwZGF0aW5nKCk7
CiB9CiAKK2Jvb2wgRGV2aWNlQ29udHJvbGxlcjo6aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcihET01X
aW5kb3cmIHdpbmRvdykgY29uc3QKK3sKKyAgICByZXR1cm4gbV9saXN0ZW5lcnMuY29udGFpbnMo
JndpbmRvdyk7Cit9CisKIHZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVu
dChFdmVudCYgZXZlbnQpCiB7CiAgICAgZm9yIChhdXRvJiBsaXN0ZW5lciA6IGNvcHlUb1ZlY3Rv
cihtX2xpc3RlbmVycy52YWx1ZXMoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGV2aWNlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9s
bGVyLmgKaW5kZXggZTE2MDM4NWFmZTJmOTczNTNjMGVhMjJmMjllODU2ZjE4ZTIwYjFhOC4uM2Q1
ZjkwYzUwZWU0YTU0ZmMwYWQxN2M2NDczNWRkNjkzODczZmZmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EZXZpY2VDb250cm9sbGVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZURldmlj
ZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jik7CiAgICAgdm9pZCByZW1vdmVBbGxEZXZpY2VFdmVu
dExpc3RlbmVycyhET01XaW5kb3cmKTsKKyAgICBib29sIGhhc0RldmljZUV2ZW50TGlzdGVuZXIo
RE9NV2luZG93JikgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQoRXZlbnQm
KTsKICAgICBib29sIGlzQWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDMwM2Q3ZjgyZDRiMzdmZGJhMWI3ZjJk
ZDRhOGRhMjU3ZThhYjk3N2MuLmU4MjRkZjc2YTg0MmYzMjA3ZmFlMGVjZTY0NDRlOWUyZjI0NWVm
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTc2NCw2ICs3NjQsMTEgQEAgZGV2
aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKICAgY29uZGl0aW9u
YWw6IERFVklDRV9PUklFTlRBVElPTgogCitkZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElF
bmFibGVkOgorICB0eXBlOiBib29sCisgIGluaXRpYWw6IGZhbHNlCisgIGNvbmRpdGlvbmFsOiBE
RVZJQ0VfT1JJRU5UQVRJT04KKwogc2hvdWxkRW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdDoKICAg
dHlwZTogYm9vbAogICBpbml0aWFsOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKaW5kZXggODA0YTBhZTkxMDM5MTMzMzAzMjAzN2ExMjIwZDQ1YjAwM2RlODIz
OC4uNzIzYmQzMTFhNDUwNzA4ZmQ1Y2RiZjQ5ZDA1Y2NmZmEyMDA0NjUxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMiw2ICsxMiwxNSBAQCBEZXZpY2VP
cmllbnRhdGlvbkV2ZW50RW5hYmxlZDoKICAgY29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQogICB3ZWJjb3JlTmFtZTogZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQKIAor
RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBk
ZWZhdWx0VmFsdWU6IGZhbHNlCisgIGNvbmRpdGlvbjogRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKyAgd2ViY29yZU5hbWU6IGRldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQK
KyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJQZXJtaXNzaW9uIEFQSSBmb3IgZGV2aWNlIG9yaWVudGF0
aW9uIC8gbW90aW9uIGFjY2Vzcy4iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkRldmlj
ZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSAvIERldmljZU1vdGlvbkV2ZW50
LnJlcXVlc3RQZXJtaXNzaW9uKCkiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKwogSmF2YVNj
cmlwdEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDNlYzZmMDBkMjRmYzkzOTQy
NjkwYTNlNzI5ZmQwN2VkN2EzYWE2YzcuLjk0MGI2OTcxZWE0MGE0ZGIyOTM1YmVhMmE5ODk2Yjc5
ZTE1ZDY1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBA
IC0xNzMsNiArMTczLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVBvaW50
ZXJMb2NrKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdmlydHVhbCB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
IHsgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lk
IGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBPYmplY3QqKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29y
ZEFwcGVhcmFuY2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBPYmplY3QqKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGE0MTY3NjZlMmIzODNlMWI1MTQ0
OGZjOWNjNDAyYzAxZjFiZWIzYWEuLjM4ZTViMTcwODYyNmYwYjQ5MmQ4NzEzMGQ2OTZmMzcyODg1
OWNlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTE1
LDcgKzExNSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VQb2xpY3lD
bGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdl
VUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAs
IFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdL
UGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFn
ZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJ
Q2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTI+IFZlcnNpb25z
OworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVu
dFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0
LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBX
S1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQ
YWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMz4gVmVy
c2lvbnM7CiB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0xOTAzLDYgKzE5MDMs
MTYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0
IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LnJlcXVl
c3RTdG9yYWdlQWNjZXNzQ29uZmlybSh0b0FQSSgmcGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEko
cmVxdWVzdGluZ0RvbWFpbi5pbXBsKCkpLCB0b0FQSShjdXJyZW50RG9tYWluLmltcGwoKSksIHRv
QVBJKGxpc3RlbmVyLnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAg
fQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgdm9pZCBzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYlBhZ2VQcm94eSYgcGFnZSwg
QVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
IW1fY2xpZW50LnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihtX2NsaWVudC5zaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIG1fY2xpZW50
LmJhc2UuY2xpZW50SW5mbykpOworICAgICAgICB9CisjZW5kaWYKKwogICAgICAgICAvLyBQcmlu
dGluZy4KICAgICAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2Vi
RnJhbWVQcm94eSYgZnJhbWUpIGZpbmFsCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDVlNTk3M2Y5YWIxOGI0NmE2NWVm
ZTA4ZWRmNWYzNTA3YTc3NWRmMGIuLmVhODg3Mjc1NmFjMTcyMDE5MDVhZTg3OWFhYTI2NDFkN2Uy
NWRiZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJ
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGll
bnQuaApAQCAtMTM0LDYgKzEzNCw3IEBAIHR5cGVkZWYgdm9pZCAoKldLRGlkTG9zZVBvaW50ZXJM
b2NrQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJCiB0eXBlZGVm
IHZvaWQgKCpXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2spKFdL
UGFnZVJlZiBwYWdlLCBib29sIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291
cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tSZXNv
dXJjZUxpbWl0IGxpbWl0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAo
KldLUGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldLUGFnZVNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmln
aW5SZWYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiAvLyBEZXBy
ZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZl
YXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1v
dXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTExNDAsNiArMTE0MSwxMTAg
QEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTIgewogICAgIFdLUGFnZVJlcXVlc3RT
dG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOwogfSBXS1BhZ2VVSUNsaWVudFYxMjsKIAordHlwZWRl
ZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTMgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAg
IC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xv
c2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAg
ICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25m
aXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21w
dENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICBydW5KYXZhU2NyaXB0
UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNU
ZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVu
dDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0
VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2li
bGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVC
YXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAg
ICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6
YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVz
aXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2lu
ZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
ZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFn
ZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjYgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjY7
CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWREcmF3OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsK
KyAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0YWJhc2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVu
UGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bk9wZW5QYW5lbDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlSGVhZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdl
Rm9vdGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb290ZXJIZWlnaHQ7CisgICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFn
ZURyYXdGb290ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZHJhd0Zvb3RlcjsKKyAgICBXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdl
VUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5Nb2RhbDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlk
Q29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJ
bkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRv
RmlsZUluRG93bmxvYWRzRm9sZGVyOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2
YVNjcmlwdF91bmF2YWlsYWJsZTsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS1BhZ2VDcmVh
dGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSAgICAgICAgICAgICAgICAg
IGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKyAgICBXS1BhZ2VNb3VzZURp
ZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKworICAgIC8vIFZlcnNp
b24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29s
b3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhp
ZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlk
Q2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsgLy8g
VXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAg
dm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJlIGRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkNDsgLy8gVXNlZCB0byBiZSBkaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgorICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVk
aW9EaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VEaWRDbGlja0F1
dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENs
aWNrQXV0b0ZpbGxCdXR0b247CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxi
YWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJt
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJv
bXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlTWVkaWFTZXNzaW9uTWV0YWRh
dGFEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVNlc3Npb25N
ZXRhZGF0YURpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNi4KKyAgICBXS1BhZ2VDcmVhdGVO
ZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQ
YWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJv
bXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3Jp
cHRQcm9tcHQ7CisgICAgV0tDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW47CisKKyAgICAvLyBWZXJzaW9uIDcuCisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWw7CisgICAgV0tGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7
CisKKyAgICAvLyBWZXJzaW9uIDguCisgICAgV0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2s7
CisgICAgV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWRMb3NlUG9pbnRlckxvY2s7CisKKyAgICAvLyBWZXJzaW9uIDku
CisgICAgV0tIYW5kbGVBdXRvcGxheUV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2ZW50OworCisgICAgLy8gVmVyc2lvbiAx
MC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOwor
ICAgIFdLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENh
bGxiYWNrICAgICAgICAgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9y
ZWdyb3VuZDsKKworICAgIC8vIFZlcnNpb24gMTEuCisgICAgV0tQYWdlRGlkUmVzaWduSW5wdXRF
bGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlQ2FsbGJhY2sgICAgICAgICBkaWRSZXNpZ25J
bnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2U7CisKKyAgICAvLyBWZXJzaW9uIDEy
LgorICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOworCisgICAgLy8g
VmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ2FsbGJhY2sgICAgICAgICAgIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3M7Cit9IFdLUGFnZVVJQ2xpZW50VjEzOworCiAjaWZkZWYgX19jcGx1c3Bs
dXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZS5oCmluZGV4IGRhMDMxNGFlM2Y1OGNiZGU5ODAyOGUyNzI4OWVhZDQ0ZDZkMzQy
YmIuLjgxNWU4MDE4ODhlNWQ2NjRkNjVhZTNjYmFhZDY2NzJhMjVmZDdkY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKQEAgLTM0LDYg
KzM0LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBjbGFzcyBXS05hdmlnYXRpb25BY3Rp
b247CiBAY2xhc3MgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzOwogQGNsYXNzIFdLUHJldmlld0VsZW1l
bnRJbmZvOworQGNsYXNzIFdLU2VjdXJpdHlPcmlnaW47CiBAY2xhc3MgV0tXZWJWaWV3OwogQGNs
YXNzIFdLV2ViVmlld0NvbmZpZ3VyYXRpb247CiBAY2xhc3MgV0tXaW5kb3dGZWF0dXJlczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCmluZGV4IGRiZDA1M2U3ZmJkMGEwOTVmMDg4OGE3ZWRhMGJjMmJiYTczZTI1MzIu
LjNkNzc3MTY0MDhiNzQxY2NkZDg2MzhjMGRmYjU2Mzg3MGE4MzYwZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aApAQCAtMTcxLDYgKzE3MSwxNSBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRDaGFuZ2VTYWZlQXJlYVNob3VsZEFmZmVjdE9i
c2N1cmVkSW5zZXRzOihCT09MKXNhZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHMgV0tf
QVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRQcmVzZW50Rm9jdXNlZEVsZW1lbnRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29u
dHJvbGxlciAqKWNvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWREaXNtaXNzRm9jdXNlZEVsZW1lbnRW
aWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTIuMCkpOworCisvKiEgQGFic3RyYWN0IEFsbG93cyB5b3VyIGFwcCB0byBkZXRl
cm1pbmUgd2hldGhlciBvciBub3QgdGhlIGdpdmVuIHNlY3VyaXR5IG9yaWdpbiBzaG91bGQgaGF2
ZSBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9yaWVudGF0aW9uIGFuZCBtb3Rpb24uCisgQHBhcmFt
IHNlY3VyaXR5T3JpZ2luIFRoZSBzZWN1cml0eSBvcmlnaW4gd2hpY2ggcmVxdWVzdGVkIGFjY2Vz
cyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50YXRpb24gYW5kIG1vdGlvbi4KKyBAcGFyYW0gZGVjaXNp
b25IYW5kbGVyIFRoZSBkZWNpc2lvbiBoYW5kbGVyIHRvIGNhbGwgb25jZSB0aGUgYXBwIGhhcyBt
YWRlIGl0cyBkZWNpc2lvbi4gUGFzcyBZRVMgdG8gYWxsb3cgdGhlIG9yaWdpbiBhY2Nlc3MsIE5P
IG90aGVyd2lzZS4KKworIElmIHlvdSBkbyBub3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kLCBhY2Nl
c3MgdG8gdGhlIGRldmljZSdzIG9yaWVudGF0aW9uIGFuZCBtb3Rpb24gd2lsbCBiZSBncmFudGVk
LgorICovCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1
cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9P
TCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKwog
I2Vsc2UgLy8gVEFSR0VUX09TX0lQSE9ORQogLSAodm9pZClfcHJlcGFyZUZvckltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMuNCkpOwogLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmgKaW5kZXggY2NiNzhhMjllMmE0YzJmZjE2ZDQyNTI1YWU1ZTQ2MGE3ODliYjdhMy4uNjNmNTVj
NDcxMjQ1NzEwY2Q4ZTk4Y2VhZGE4NzA5MzhlN2RhYmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTE5LDYgKzExOSw5IEBAIHByaXZhdGU6CiAg
ICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRl
cnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgZmluYWw7CiAgICAgICAgIHZv
aWQgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZChXZWJQ
YWdlUHJveHkmLCBXS1Jlc291cmNlTGltaXQpIGZpbmFsOwogICAgICAgICB2b2lkIHNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcm
LCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFVSTCYsIEFQSTo6RGF0YSYpIGZpbmFsOworI2Vu
ZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgdm9pZCBzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IGZpbmFsOwogI2VuZGlmCiAgICAgICAgIGJvb2wgbmVlZHNGb250QXR0cmlidXRlcygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlk
Q2hhbmdlRm9udEF0dHJpYnV0ZXM7IH0KICAgICAgICAgdm9pZCBkaWRDaGFuZ2VGb250QXR0cmli
dXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0cmlidXRlcyYpIGZpbmFsOwpAQCAtMTg3LDYgKzE5
MCw5IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld1NhdmVEYXRhVG9GaWxlU3VnZ2Vz
dGVkRmlsZW5hbWVNaW1lVHlwZU9yaWdpbmF0aW5nVVJMIDogMTsKICAgICAgICAgYm9vbCB3ZWJW
aWV3UnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnNJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhh
bmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyIDogMTsKKyNlbmRpZgorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIGJvb2wgd2ViVmlld1Nob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9u
SGFuZGxlciA6IDE7CiAjZW5kaWYKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VR
dW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVu
dERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAg
Ym9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJhc2VO
YW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJh
c2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgOiAxOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggYjVhMGE1MDhiYzk5NmQzYzlhOTdm
OTNhZjNlYTNmOTI1MDk3ZjY2NS4uOTI2MDcyNTg3YzEwZmZjYjljYzhhOGFmNWY4NzI5NjhkN2Fi
ZWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBA
IC0xMzIsNiArMTMyLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURl
bGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3U2F2ZURhdGFU
b0ZpbGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpzYXZlRGF0YVRvRmlsZTpzdWdn
ZXN0ZWRGaWxlbmFtZTptaW1lVHlwZTpvcmlnaW5hdGluZ1VSTDopXTsKICAgICBtX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3UnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnNJbml0aWF0ZWRCeUZyYW1l
Q29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cih3ZWJWaWV3OnJ1bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzOmluaXRpYXRlZEJ5RnJhbWU6Y29t
cGxldGlvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3RO
b3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Tm90
aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopXTsK
KyNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgbV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NG
b3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAjZW5kaWYK
ICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3Vy
aXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNh
Z2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3Jp
Z2luOmN1cnJlbnRRdW90YTpjdXJyZW50T3JpZ2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6
ZXhwZWN0ZWRVc2FnZTpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURp
c3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNh
Z2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3Jp
Z2luOmRhdGFiYXNlTmFtZTpkaXNwbGF5TmFtZTpjdXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVz
YWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4cGVjdGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOild
OwpAQCAtODQ0LDYgKzg0NywyNiBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVu
UGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBVSURlbGVnYXRlOjpVSUNs
aWVudDo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlm
ICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdTaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRs
ZXIpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8g
ZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVn
YXRlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRv
IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUu
Z2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOikpOworICAgIFso
aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5t
X3dlYlZpZXcgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNl
Y3VyaXR5T3JpZ2luOndyYXBwZXIoc2VjdXJpdHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXSAoQk9PTCBncmFudGVkKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRs
ZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7CisgICAgfSkuZ2V0KCld
OworfQorI2VuZGlmCisKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRB
dHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJiBmb250QXR0cmlidXRlcykK
IHsKICAgICBpZiAoIW5lZWRzRm9udEF0dHJpYnV0ZXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDA2NzBmMmM1Njc2ZjE5MzI4MDQ0ZWI3MTE5MzQ4YjVk
N2JiZjk4YjQuLmUxOGE3MTMzN2Y4NjVkZjFlZGFhMWU4MmVkZTBkNmM5MzM3ZDAxYjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzE3NCw2ICs3MTc0LDE4
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclVzZXJNZWRpYVN0YXRlKCkKICNlbmRpZgogfQog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYgb3JpZ2luRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIG9y
aWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnNlY3VyaXR5T3Jp
Z2luKCkpOworICAgIG1fdWlDbGllbnQtPnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3MoKnRoaXMsIG9yaWdpbi5nZXQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpLCBjYWxsYmFja0lEXShib29sIGdyYW50ZWQpIHsKKyAgICAgICAgaWYgKCF3
ZWFrVGhpcyB8fCAhaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0RlY2lzaW9uKGNhbGxiYWNrSUQsIGdyYW50ZWQpLCBtX3BhZ2VJRCk7
CisgICAgfSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5T
dHJpbmcpCiB7CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDIxNTVkMTQyZTQ0ZmJhNTQ0NThiYzcx
ZjUzOTFiZTZlMDliNGU4MDMuLmQ0ODg1NzhhOWRmNGI0M2ZiZWU1NjFjZGMxN2E1YzNhNDA3OTk1
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDAxLDYgKzE0
MDEsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNv
bnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CisjZW5kaWYKKwogICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJh
bFdlYlBhZ2VQcm94eSgpOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBl
ODY0ZDRhOTZmYjY3ZjlhNTNmMWQ2MDljNjlmNzc2NTIxMzg0YTAwLi43NDNmYzA0ZjUxNGZkMjI4
OTc1OWMwMGI0YTA2ZWRiZGYxZGRiMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01MzIsNiArNTMyLDEwIEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxl
cklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKQogICAgIExvYWRTeW5jaHJvbm91
c1VSTFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMgcGFy
YW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgZXJyb3IsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKSBEZWxheWVkCiAK
KyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFJlcXVlc3REZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzcyhzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9y
aWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShBVFRBQ0hN
RU5UX0VMRU1FTlQpCiAgICAgUmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKFN0
cmluZyBpZGVudGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBwcmVmZXJyZWRGaWxl
TmFtZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEpCiAgICAgUmVnaXN0ZXJB
dHRhY2htZW50SWRlbnRpZmllckZyb21GaWxlUGF0aChTdHJpbmcgaWRlbnRpZmllciwgU3RyaW5n
IGNvbnRlbnRUeXBlLCBTdHJpbmcgZmlsZVBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4
IDY3ZmQ3YTcyMGNlMmYzMzk3NzAzNTE0OGJkYmQyY2VmYTdjN2ZkMzUuLjYyYjVlZmI4MWEzNzVh
NWRkYjAyM2MzNTlhYWU0YjQ3YmQyZjAwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0x
MzIwLDQgKzEzMjAsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnIKIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7
CisgICAgbV9wYWdlLnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
b3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjkyNmEyNThhZDg1YWIwNzc5MTZkMGNiMjM1
Mjg0ZDhlYjNiZGFhNy4uMjI3YjgxNDE4NjMzZGUzNzJmMTM0ZjZlMWU5YjNmMTVmYWEzZTg0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzY2LDYgKzM2NiwxMCBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJikgZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisjZW5kaWYKKwogICAgIFN0cmluZyBt
X2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJh
bWVTZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFz
SG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBmNzBiM2JiZjAzY2U3ODg4MjJlODZiMDA0MmUw
NTk4MjI4NTUwMTkuLjAzMzlhZGEwZGI4MzVlZTYwNzIyMTc0NjNhYWRkODRhZWU1NTM4MTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MzQ2
LDYgKzYzNDYsMzAgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcm
JiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCku
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFJlZ2lzdHJhYmxlRG9tYWluOjp1
bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChzdWJGcmFtZUhvc3QpLCBSZWdpc3RyYWJsZURvbWFpbjo6
dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QodG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwgbV9wYWdlSUQs
IHByb21wdEVuYWJsZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAjZW5kaWYK
KworI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCitzdGF0aWMgdWludDY0X3QgbmV4dERl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrSUQoKQoreworICAgIHN0
YXRpYyB1aW50NjRfdCBuZXh0Q2FsbGJhY2tJRCA9IDA7CisgICAgcmV0dXJuICsrbmV4dENhbGxi
YWNrSUQ7Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gY2FsbGJh
Y2tJRCA9IG5leHREZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lE
KCk7CisgICAgQVNTRVJUKCFtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNh
bGxiYWNrTWFwLmNvbnRhaW5zKGNhbGxiYWNrSUQpKTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3REZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhvcmlnaW4uZGF0YSgpLCBjYWxsYmFja0lEKSk7
Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzRGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKQoreworICAg
IGF1dG8gY2FsbGJhY2sgPSBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNh
bGxiYWNrTWFwLnRha2UoY2FsbGJhY2tJRCk7CisgICAgQVNTRVJUKGNhbGxiYWNrKTsKKyAgICBj
YWxsYmFjayhncmFudGVkKTsKK30KKyNlbmRpZgogICAgIAogc3RhdGljIFNoYXJlU2hlZXRDYWxs
YmFja0lEIG5leHRTaGFyZVNoZWV0Q2FsbGJhY2tJRCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZTQ3MWRmMGRhYjI4ODQyN2EyNjM4MmZkYjIz
YTFiN2ZkNTE0MjM1YS4uOGU0MDExNjZiMGZmODRiZjg2NDQ1ZjRjMDVlMTE2MzJiODJmZTRiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTExMSw2
ICsxMTExLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmlu
ZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBz
aG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAgICB2b2lkIGRpZENvbXBs
ZXRlU2hhcmVTaGVldChib29sIHdhc0NvbXBsZXRlZCwgU2hhcmVTaGVldENhbGxiYWNrSUQgY29u
dGV4dElkKTsKICAgICAKQEAgLTEyMDcsNiArMTIxMSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
cmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lk
IGRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0RlY2lzaW9uKHVpbnQ2
NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCk7CisjZW5kaWYKKwogI2lmICFQTEFURk9STShD
T0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJwcmV0
S2V5RXZlbnQoY29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwogI2VuZGlmCkBAIC0xODM3
LDYgKzE4NDUsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0
aW9uPHZvaWQoYm9vbCBncmFudGVkKT4+IG1fc3RvcmFnZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tN
YXA7CiAgICAgSGFzaE1hcDxTaGFyZVNoZWV0Q2FsbGJhY2tJRCwgV1RGOjpGdW5jdGlvbjx2b2lk
KGJvb2wgY29tcGxldGVkKT4+IG1fc2hhcmVTaGVldFJlc3BvbnNlQ2FsbGJhY2tNYXA7CiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGdyYW50ZWQpPj4gbV9kZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvblBlcm1pc3Npb25DYWxsYmFja01hcDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEFQ
UExJQ0FUSU9OX01BTklGRVNUKQogICAgIEhhc2hNYXA8dWludDY0X3QsIHVpbnQ2NF90PiBtX2Fw
cGxpY2F0aW9uTWFuaWZlc3RGZXRjaENhbGxiYWNrTWFwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBj
YjBiNTcwOTMzNjRjMGU1NTQyNDNmOTMwOWMzOTI1ZDU0OGFmNGYwLi43Y2YxYWU1NmUxZGE0ZjJi
YWQ0Zjc0NmRkOWZiYTZmOGM4MGNlZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM2NCw2ICszNjQsMTAgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgIyBOb3RpZmljYXRpb24K
ICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgIERpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0RlY2lz
aW9uKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCkKKyNlbmRpZgorCiAgICAgIyBQ
cmludGluZy4KICAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJL
aXQ6OlByaW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNhMTU1ZTgyOTI2YWYxNzc0
MTllYTM1MDQ0YjFmMThlNzE1MGQ2ZGMuLjYzZDBmYWIzMTYwNTNhMzI1MWFkZjU1ZTg0NDZkOTk5
NTk4MWQwZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBN
b3Rpb24gcGVybWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NTMyOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2NDUzNjc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3Qg
aW5mcmFzdHJ1Y3R1cmUgdG8gaGVscCB0ZXN0IHRoZSBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rp
b24gcGVybWlzc2lvbiBBUEkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5u
ZXI6OnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RS
OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzUmVxdWVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkQWxsb3dEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTktMDMtMDYgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBDb25zaWRlciBzdXBwb3J0aW5nIHRoZSBg
cmVmZXJyZXJwb2xpY3lgIGF0dHJpYnV0ZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4
IDBlNzlkODBiNjAxZjMyOTVlOGI4MTViYTEwMDhiOTk3ZDFiODBjNmYuLmM3Nzc4NWZjZjJkNTE1
NzRjMGZkNWY0Zjg2YWY3MzkxYzE3OGIyNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApA
QCAtMTA0LDYgKzEwNCw5IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICBib29sZWFuIGlz
Q29tbWFuZEVuYWJsZWQoRE9NU3RyaW5nIG5hbWUpOwogICAgIHVuc2lnbmVkIGxvbmcgd2luZG93
Q291bnQoKTsKIAorICAgIC8vIERldmljZSBPcmllbnRhdGlvbiBNb3Rpb24uCisgICAgdm9pZCBz
ZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGJvb2xlYW4gdmFs
dWUpOworCiAgICAgLy8gU3BlY2lhbCBET00gdmFyaWFibGVzLgogICAgIGF0dHJpYnV0ZSBib29s
ZWFuIGdsb2JhbEZsYWc7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGQ0NjIyNDZjZGI5YzE4Zjc3Y2U0NWQ3MzEz
NzI4MDRhNjUxZGQzMDIuLjkwZmE3ZWFmNjI3ZTgzNjI5ZmQ0OTY5MDc2ZWYzYmY3YzRiZGEwMmMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcApAQCAtMTI5NCw2ICsxMjk0LDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hv
dWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJvb2wgdmFsdWUpCiAgICAgV0tCdW5k
bGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFn
ZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwogfQogCit2b2lkIFRl
c3RSdW5uZXI6OnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
Ym9vbCB2YWx1ZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUo
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29s
ZWFuUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS0Jvb2xlYW5DcmVhdGUodmFsdWUpKTsKKyAg
ICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFn
ZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7Cit9CisK
IHZvaWQgVGVzdFJ1bm5lcjo6dGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKQogewogICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiVGVybWluYXRlTmV0d29ya1Byb2Nlc3MiKSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDcxM2E5
NDMzNjM5MDVmMGM5Yjc2MGQ1NzRhYzhmMzI0ZDhkNTE2ZmMuLmFlNzA0OWRkODExMGIwMjZmYzgz
ZDdlNjU3NDRjMzY4YjYwZGIxMjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0zNDgsNiArMzQ4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNl
dElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkRG93
bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhib29sKTsKIAogICAgIGJvb2wgZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiBtX2RpZENhbmNlbENsaWVudFJl
ZGlyZWN0OyB9CiAgICAgdm9pZCBzZXREaWRDYW5jZWxDbGllbnRSZWRpcmVjdChib29sIHZhbHVl
KSB7IG1fZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QgPSB2YWx1ZTsgfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA0NTU4YmEyY2Y5NWYzNWVjOGI2MDJjOWQ3
YWQ0NjI5Y2QxZjRlMTIzLi5jZmI1MjkwMzFiODVhYTRlMjllYTI0MjViMzgwNTdhNWU2OTNjNjY5
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjYyLDYg
KzI2MiwxMSBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0UG9pbnRlckxvY2soV0tQYWdlUmVmIHBhZ2Us
IGNvbnN0IHZvaWQqKQogICAgIFdLUGFnZURpZEFsbG93UG9pbnRlckxvY2socGFnZSk7CiB9CiAK
K3N0YXRpYyBib29sIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
V0tQYWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgY29uc3Qgdm9pZCopCit7Cisg
ICAgcmV0dXJuIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5oYW5kbGVEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc1JlcXVlc3Qob3JpZ2luKTsKK30KKwogV0tQYWdlUmVmIFRlc3RD
b250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9u
UmVmIGNvbmZpZ3VyYXRpb24sIFdLTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9u
LCBXS1dpbmRvd0ZlYXR1cmVzUmVmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKQogewogICAgIFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldyA9IHN0YXRpY19jYXN0PFBs
YXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKQEAgLTU3MCw4
ICs1NzUsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMo
Y29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lz
dGVudFZhbHVlcyhvcHRpb25zKTsKIAogICAgIHBsYXRmb3JtQ3JlYXRlV2ViVmlldyhjb25maWd1
cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKLSAgICBXS1BhZ2VVSUNsaWVudFY4IHBhZ2VVSUNsaWVu
dCA9IHsKLSAgICAgICAgeyA4LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisgICAgV0tQYWdlVUlD
bGllbnRWMTMgcGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDEzLCBtX21haW5XZWJWaWV3Lmdl
dCgpIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MAogICAgICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBjbG9zZQpAQCAtNjM3LDcg
KzY0MiwxMyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMo
Y29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbAogICAgICAgICAwLCAvLyBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUK
ICAgICAgICAgcmVxdWVzdFBvaW50ZXJMb2NrLAotICAgICAgICAwLAorICAgICAgICAwLCAvLyBk
aWRMb3NlUG9pbnRlckxvY2sKKyAgICAgICAgMCwgLy8gaGFuZGxlQXV0b3BsYXlFdmVudAorICAg
ICAgICAwLCAvLyBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZQorICAgICAgICAw
LCAvLyBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kCisg
ICAgICAgIDAsIC8vIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5j
ZQorICAgICAgICAwLCAvLyByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0KKyAgICAgICAgc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcwogICAgIH07CiAgICAgV0tQ
YWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudC5i
YXNlKTsKIApAQCAtOTQzLDYgKzk1NCw4IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3Rh
dGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAKICAg
ICBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IGZhbHNlOwogCisgICAg
bV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzID0gZmFsc2U7CisK
ICAgICBtX3dvcmtRdWV1ZU1hbmFnZXIuY2xlYXJXb3JrUXVldWUoKTsKIAogICAgIG1fcmVqZWN0
c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzID0g
ZmFsc2U7CkBAIC0yNTQ4LDYgKzI1NjEsMTIgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxl
Q2hlY2tPZlVzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV0tGcmFtZVJlZiBmcmFtZSwKICAg
ICBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1NldFVzZXJNZWRpYUFjY2Vzc0luZm8oY2hlY2tS
ZXF1ZXN0LCBzYWx0U3RyaW5nLmdldCgpLCBzZXR0aW5nc0Zvck9yaWdpbihvcmlnaW5IYXNoKS5w
ZXJzaXN0ZW50UGVybWlzc2lvbigpKTsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6aGFuZGxl
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NSZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5S
ZWYgb3JpZ2luKQoreworICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQobWFrZVN0
cmluZygiUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0
IGZvciBzZWN1cml0eSBvcmlnaW4gXCIiLCBvcmlnaW5Vc2VyVmlzaWJsZU5hbWUob3JpZ2luKSwg
IlwiLlxuIikpOworICAgIHJldHVybiBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3M7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmhhbmRsZVVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0KFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4sIFdLU2VjdXJpdHlPcmlnaW5SZWYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0KQogewogICAg
IGF1dG8gb3JpZ2luSGFzaCA9IHVzZXJNZWRpYU9yaWdpbkhhc2godXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCmluZGV4IDFkMTNiNTUyMzczOTBiNzZmYjkyZTEwYWY5MzVkNzlmMGI2MzEw
YjQuLmUzZjE2YTYzOGNhYmUwZjI1MGY0NzE2YTI3N2JhNTcwZmZhZmRiMjQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTE1MCw2ICsxNTAsOSBAQCBwdWJsaWM6
CiAgICAgdW5zaWduZWQgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihX
S1N0cmluZ1JlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7CiAgICAgdm9pZCByZXNldFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4oV0tTdHJpbmdSZWYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5TdHJpbmcsIFdLU3RyaW5nUmVmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5TdHJpbmcpOwog
CisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uLgorICAgIGJvb2wgaGFuZGxlRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NSZXF1ZXN0KFdLU2VjdXJpdHlPcmlnaW5SZWYp
OworCiAgICAgLy8gQ29udGVudCBFeHRlbnNpb25zLgogICAgIHZvaWQgY29uZmlndXJlQ29udGVu
dEV4dGVuc2lvbkZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKTsKICAgICB2b2lkIHJlc2V0
Q29udGVudEV4dGVuc2lvbnMoKTsKQEAgLTE5OSw2ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRJZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyhib29sKTsKIAogICAgIHZvaWQgc2V0U2hv
dWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRE
b3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMgPSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhib29sIHZhbHVlKSB7IG1f
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyA9IHZhbHVlOyB9CiAK
ICAgICB2b2lkIHNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBz
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoV0tTdHJpbmdSZWYgaG9z
dE5hbWUpOwpAQCAtNTA4LDYgKzUxMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BvbGljeURl
bGVnYXRlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlUGVybWlz
c2l2ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1J
TUVUeXBlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3MgeyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX3JlamVjdHNQcm90ZWN0
aW9uU3BhY2VBbmRDb250aW51ZUZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2hhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA2NjYwY2RjOTIx
Zjg5N2NjZTJmNzcxZDhkNTNhNWMyNmYyMTI0OGY5Li40NDIxOGFhNTE0Nzg2ZjhlZTExMmE5NWU2
ZjhjNTEwMTU2ODFmNjZkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcApAQCAtNzQ3LDYgKzc0NywxMyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
bWVzc2FnZU5hbWUsICJTZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jv
b2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19j
YXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyhXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJSdW5VSVBy
b2Nlc3NTY3JpcHQiKSkgewogICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0
aW9uYXJ5ID0gc3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7CiAgICAg
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzY3JpcHRLZXkoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlNjcmlwdCIpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiZjhjZWQzYmYwMjAyNjFj
ZWVkNDBkNzRkZTJjYTgzYTIyNTlkZWI2Li41NjJlN2E5ZjUxODk4ZTE5MzhkMDQ5YTM3ZTkzMmI1
NzdhNDgzNTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMDMtMDYgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9y
aWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzMjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ3NjQ1MzY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVu
aWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1ncmFudGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1ncmFudGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzL2Rldmlj
ZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVu
dGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaHR0cC90ZXN0
cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZp
Y2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dDoKKwogMjAx
OS0wMy0wNiAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJuYW5kZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBJbXBvcnQgbmV3IHRlc3RzIGZyb20gdGhlIENTUyBUZXh0IDMgV1BUIHRlc3Qgc3VpdGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDZlNmUxOGRhNGVlMWU4YTBiMTQ2Y2JjODBjZWY5N2Q2Yzhh
MmQ0ZjUuLmMyNzgxMmVhZGRhZDFmYmI5NzQzMzVjMzc2YjhmOThjM2FjNTc0NmIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzMsNiArMzMsNyBAQCBmYXN0L3pvb21pbmcvaW9zIFsgU2tpcCBdCiBm
YXN0L2Zvcm1zL2lvcyBbIFNraXAgXQogZmFzdC92aWV3cG9ydC9pb3MgWyBTa2lwIF0KIGZhc3Qv
dmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBTa2lwIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsg
U2tpcCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3MgWyBT
a2lwIF0KIGZhc3QvZXZlbnRzL3BvaW50ZXIvaW9zIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45Y2I2MzAyZjI0NjczMmQ1MjZjNTFmMWQ4YjhjYTY2ODMxYjUwNTQ3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMg
YmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24g
JiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxODogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMg
d2lsbCBiZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRlbmll
ZC4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9u
KCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZGVu
aWVkIgorUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhODAwM2YzZTE4NzE0
YjkxY2UyODljMTg4MTUwNmQ4NzQyOWM1YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZmFsc2UpOworCithZGRFdmVudExpc3RlbmVyKCJk
ZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKK0RldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisKKyAgICBhZGRFdmVu
dExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VNb3Rpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVz
dWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAi
ZGVuaWVkIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNl
LW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWUzMjBhMGMyNGEzNDJhOWI5OGFhZTU1NmI2ZDdkNmZlNTRlYTRiYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxMjogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBl
dmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBh
bmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3Mg
cmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNl
TW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQgaXMgImdyYW50
ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRkNzdmZWIyZjE4ZmIzMzg2ZTA4NDhiOTMxMmJmMjZkNGZiZjA5
MDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlv
bi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKQEAgLTAsMCAr
MSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24o
KS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzKHRydWUpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7
CisKK0RldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkg
PT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9u
IiwgKCkgPT4ge30pOworCisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24o
KS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKyAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYzY5NzE3OWIwM2Ex
MzZkYzhjZDk3NzYyZTlkOGViZjBiODYyYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEyOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxs
IGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVk
LgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZv
ciBzZWN1cml0eSBvcmlnaW4gIiIuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IE5vIGRldmlj
ZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJt
aXNzaW9uIHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyByZXN1bHQgaXMg
ImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmU3MzAzOTM3NGY4NTQwMDgxYmE5ZDRk
OGNhNWQ3MjY2Zjg1OTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5p
ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2
ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRl
dmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJl
cXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1
bHQ7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisKKyAg
ICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworICAg
IERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0
KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFu
dGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTJlZTFhZmQ0MGU5ZDMzMjExZDFmZmRhNjE3
YTg5YjM1NWJjODc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVk
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6
IE5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50
aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNlaXZlZCBk
ZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9y
aWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVz
dFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVz
dWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yYmI4ZDZiODQwMzQyOGNhMWUzYjBjYzkyNjk3ZjMxMDFmNzJmNWExCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKQEAgLTAsMCArMSwy
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
QmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lv
bigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3ModHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkg
PT4ge30pOworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhl
bigoX3Jlc3VsdCkgPT4geworICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcigi
ZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2
ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1
bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJn
cmFudGVkIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSk7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9u
LW5vbi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IGVkMmRkMjAzNzdjNTczNjVlMWE1ZjdmZmM1
MjU0ZjcyN2Q3MWI1ZGMuLjM4ZjJkNDIwMDllOTNjNGE5MzkzMjNkNzIwMzk2ZDkxZDY1ZTZkNDQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRh
dGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRl
eHQuaHRtbApAQCAtMjcsNyArMjcsNyBAQCBmdW5jdGlvbiBydW5EZXZpY2VNb3Rpb25UZXN0KCkK
ICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7CiAgICAg
YWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGlu
dGVybmFscy5wb3N0VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
bGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90
aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQg
aXMgbm90IHNlY3VyZS4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29u
c29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Ig
b3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBu
b3Qgc2VjdXJlLiIpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsKIH0KQEAgLTQ0
LDcgKzQ0LDcgQEAgZnVuY3Rpb24gcnVuRGV2aWNlT3JpZW50YXRpb25UZXN0KCkKICAgICBkZWJ1
ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsKICAgICBhZGRF
dmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKICAgICBp
bnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
Imxhc3RDb25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1v
dGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0
IGlzIG5vdCBzZWN1cmUuIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENv
bnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9y
IG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMg
bm90IHNlY3VyZS4iKTsKICAgICAgICAgcnVuRGV2aWNlTW90aW9uVGVzdCgpOwogICAgIH0pOwog
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVu
dGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0
LWV4cGVjdGVkLnR4dAppbmRleCAwZmI3ZDdlYmYyZDg0MmQ3YmI3MzRhYTg0MzMxOGQ4OTY4MGQ0
MzQ2Li5iZWZmOGY2ZjBhYjdmZGMxNGQyMTU2NTc5ZDFkZWJhMThlMWY4NDA1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9u
LXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVk
LnR4dApAQCAtMSwxMCArMSwxMSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM3OiBEZXZpY2Ug
T3JpZW50YXRpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
OTogRGV2aWNlIE1vdGlvbiBBUEkgaXMgbm90IHN1cHBvcnRlZAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDQ4OiBEZXZpY2UgT3JpZW50YXRpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAyNTogRGV2aWNlIE1vdGlvbiBBUEkgaXMgbm90IHN1cHBvcnRlZAogVGVz
dHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRh
dGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gZG9lcyBub3QgbG9nIGFuIGVycm9yIGluIHNlY3Vy
ZSBjb250ZXh0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKKwogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3Vy
ZS1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3Jp
ZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKaW5kZXggNGU1NGQxMWQ5OTQxZTc1
OGUwMjc1MGI4NmQ0M2UzMmJjOTQzM2VlZS4uZDk0MGI3YTVhMzY2MTQzNmM2NWFiZmM1M2I3M2Mz
YjVkNTlmYzlhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2
aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNv
bnRleHQuaHRtbApAQCAtNiw2ICs2LDExIEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0cnlp
bmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2
aWNlb3JpZW50YXRpb24gZG9lcyBub3QgbG9nIGFuIGVycm9yIGluIHNlY3VyZSBjb250ZXh0cy4i
KTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICBpZiAodGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKQorICAgICAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7Cit9CisKIC8vIGxvY2FsaG9zdCBpcyBzZWN1cmUgYnkg
ZGVmYXVsdC4KIAogbGV0IGxhc3RDb25zb2xlTWVzc2FnZSA9IG51bGw7CkBAIC0xNSwxOSArMjAs
MjUgQEAgaW50ZXJuYWxzLnNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoKG1lc3NhZ2UpID0+IHsK
IAogZnVuY3Rpb24gcnVuRGV2aWNlTW90aW9uVGVzdCgpCiB7CisgICAgZGVidWcoIiIpOwogICAg
IGlmICghd2luZG93LkRldmljZU1vdGlvbkV2ZW50KSB7CiAgICAgICAgIGNvbnNvbGUubG9nKCJE
ZXZpY2UgTW90aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkIik7CiAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0g
bnVsbDsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1v
dGlvbiBsaXN0ZW5lciIpOwotICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1
bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBz
aG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICBkZWJ1ZygiKiBSZXF1ZXN0aW5nIGRldmljZSBtb3Rpb24gYWNjZXNzLi4uIik7Cisg
ICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9
PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKworICAgICAgICBsYXN0Q29uc29sZU1lc3NhZ2Ug
PSBudWxsOworICAgICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3Rl
bmVyIik7CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9u
KCkgeyB9KTsKKyAgICAgICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKKyAgICAgICAgICAg
IHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNzYWdlIik7CisgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5LDEyICs1MCwxOSBAQCBm
dW5jdGlvbiBydW5EZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1ZygiKiBSZWdpc3Rl
cmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVy
KCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9z
dFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIp
OwotICAgICAgICBydW5EZXZpY2VNb3Rpb25UZXN0KCk7CisgICAgZGVidWcoIiogUmVxdWVzdGlu
ZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzLi4uIik7CisgICAgRGV2aWNlT3JpZW50YXRpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVz
dWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAi
Z3JhbnRlZCIpOworCisgICAgICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1p
c3Npb24KKyAgICAgICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKKyAgICAgICAgZGVidWco
IiogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CisgICAgICAgIGFk
ZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOworICAg
ICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4geworICAgICAgICAgICAgc2hvdWxkQmVOdWxs
KCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKKyAgICAgICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3Qo
KTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2OWM4Mzg0ZTJjODE4NjUyZjA0NWFjZjQ5NTU0
Y2I2MmUyNzllZWFiLi4wYjhlODRkODA2OTc2NTlhNTQwOGVjYTA3YjgwYjg1NTMxMzc4MDgyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC03
LDYgKzcsNyBAQAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBjb21wb3Np
dGluZy9pb3MgWyBQYXNzIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0
L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KIGZhc3Qv
dmlld3BvcnQvaW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJl
LWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVz
dHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4
cGVjdGVkLnR4dAppbmRleCA4Njc3OWFmNDY1MTExMWIxODcxNWE1M2U3YjExZTNiMTFiOTczYTEx
Li43ODI3YWJjMmVkYzI4NmMxYzY3ODFjNDkxOWU0OGRiZGE1OTkyYzk1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0
aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90
aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTUgKzEsMTUgQEAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA0NTogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBt
b3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4
dCBpcyBub3Qgc2VjdXJlLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBCbG9ja2VkIGF0dGVt
cHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNl
IHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgNDU6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0
aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3Vy
ZS4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyODogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRl
dmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3Np
bmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2
ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24g
bG9ncyBhbiBlcnJvciBpbiBub24tc2VjdXJlIGNvbnRleHRzLgogCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCiAKIAogKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIK
LVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2
aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBj
b250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2Nr
ZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxp
c3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iCiAKICogUmVn
aXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lcgotUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2Ug
aXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9u
IGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iCitQ
QVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmlj
ZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3Npbmcg
Y29udGV4dCBpcyBub3Qgc2VjdXJlLiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0
dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRz
L2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDMxYjg1ZjVkN2Q0NWYzN2Y5ZDZiMTY1ZjY3MzdkZmU1OTIyZWRmNWMuLjQ0ZmMxOGY4OTll
MzI5MzQ1N2QwOGJjYTNmZDY2YjJiOTA2Y2FjMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNl
Y3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
aHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4
dC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTYgQEAKK1JlY2VpdmVkIGRldmljZSBvcmllbnRh
dGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiLgogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxpc3Rl
bmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gZG9lcyBub3Qg
bG9nIGFuIGVycm9yIGluIHNlY3VyZSBjb250ZXh0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCiAKKyogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNzLi4uCitQQVNT
IHJlc3VsdCBpcyAiZ3JhbnRlZCIKICogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxp
c3RlbmVyCiBQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyBudWxsCiAKKyogUmVxdWVzdGluZyBk
ZXZpY2UgbW90aW9uIGFjY2Vzcy4uLgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCiAqIFJlZ2lz
dGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVuZXIKIFBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlz
IG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363889</attachid>
            <date>2019-03-07 10:02:52 -0800</date>
            <delta_ts>2019-03-07 10:04:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190307100252.patch</filename>
            <type>text/plain</type>
            <size>110634</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZkNWQxNmQwNDRhNTk5
ZWVkYzZjNjJkNmMyOGNmNTYwNTc2Y2QyMi4uNWRlYmJkODZhYjExMWZkMWI5NDc2ZTliMDQ4MTQw
Njg4MjZiZWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkV2ZW50Lmg6CisgICAgICAg
ICogZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbDoK
KyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQ6OnJlcXVl
c3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50Lmg6CisgICAgICAgICogZG9tL01pY3JvdGFza3MuY3BwOgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGV2aWNlTW90aW9uQ29udHJvbGxlciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50
YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb0Fk
ZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3Nh
cnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNl
T3JpZW50YXRpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9EZXZpY2VDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6Omhhc0RldmljZUV2ZW50TGlz
dGVuZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5oOgorICAgICAg
ICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKwogMjAxOS0wMy0wNiAgUm9iIEJ1aXMgIDxyYnVpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIENvbnNpZGVyIHN1cHBvcnRpbmcgdGhlIGByZWZlcnJlcnBv
bGljeWAgYXR0cmlidXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4ZTljZDNmMTgyOTI2OGZmZjY5NjIwZTIyNGVk
MzM4M2UzMTFmMDA0Li5jMGQwNGJjYWE4YTFjNzgxNjYzODk1YzJkZWNiODZhYjNjOGE5ZTkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTAzLTA2ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlv
biAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgor
ICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVz
LzU3CisKKyAgICAgICAgVGhpcyBhZGRzIG5ldyBTUEkgdG8gV0tVSURlbGVnYXRlUHJpdmF0ZSwg
dW50aWwgd2UgY2FuIG1ha2UgdGhpcyBBUEkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAg
KFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpz
ZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bmV4dERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzRGVjaXNpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIw
MTktMDMtMDYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBDb25zaWRl
ciBzdXBwb3J0aW5nIHRoZSBgcmVmZXJyZXJwb2xpY3lgIGF0dHJpYnV0ZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNjAxMjRmYzFjZGUxN2E0MDk5OTFhYWYwNmFkZjdiMzM5ZDdiOGUzOC4uNzA1
N2U3OTFhOGNlZDc0NmFiNGI3YzAyZTVjMzI2OTM0ZGY5NTBkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTY2OSw2ICs2NjksOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQu
aWRsCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL0RldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKKyAgICBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZS5pZGwKICAgICBkb20vRG9jdW1lbnQuaWRsCiAgICAgZG9tL0Rv
Y3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCiAgICAgZG9tL0RvY3VtZW50RnJhZ21l
bnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAppbmRleCAyNTVhYjQ0ZDZlYjVkMjU0NGY0ZjU5NWE3NGM2NWE0M2RkN2Q4ZDYzLi41YmJlOGEz
ZTlkOGJmMTQ0NGM5MWI4YjcxMjE4NWNjNTBjZmZmMmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTU1OSw2ICs1NTksOCBAQCAkKFBS
T0pFQ1RfRElSKS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9E
YXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbAor
JChQUk9KRUNUX0RJUikvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKKyQo
UFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmlkbAogJChQUk9KRUNUX0RJUikvZG9tL0RvY3VtZW50LmlkbAogJChQUk9KRUNUX0RJUikvZG9t
L0RvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20v
RG9jdW1lbnRGcmFnbWVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYjVmMDIyZGI2YmMzOGM4NzA1Mzc2ZDM1ZGMwYWUwZjUy
NWY5ZTFlNC4uMmI0ZDZhMzAwOGRkNDAxNTI2ODdjNzE2ZDlkODZhNWRjM2E1MzdhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTQ1
OSw2ICs0NTksMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNEZXZpY2VNb3Rpb25FdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRGV2aWNlTW90aW9uRXZlbnQuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRG9jdW1lbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVycy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDA2Njg3OTI2NTkyODRkYTc0Y2Q2OTlkOTg2
YTUwNTFmNjQ0YmQ2YWEuLjM2MWJkZjRjOWYwY2IwMzgwYTZlNDUxMzI3MjVmNWY4YzM5YTY3ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTY5LDYgKzU2OSw4IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2RvbS9Eb2N1bWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RvY3VtZW50
QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Eb2N1bWVu
dEZyYWdtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGI1NzVlNjhiZmZiYWJhZTkyMTY1MGQ0
YTliZjZjNDI1MzFhMWQ3OTYuLmU0MjFlNDJlM2ZhNDM5OTcyY2RjYjc3MzE5MDNmODYxZWU5N2Mz
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04MjEsNiArODIxLDcgQEAgZG9tL0RldmljZU1vdGlvbkV2
ZW50LmNwcAogZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkRhdGEuY3BwCiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKK2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBkb20vRG9jdW1lbnQuY3BwCiBkb20v
RG9jdW1lbnRFdmVudFF1ZXVlLmNwcAogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC0yNzE5
LDYgKzI3MjAsOCBAQCBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAogSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QuY3BwCiBKU0RldmljZU1vdGlvbkV2ZW50LmNwcAogSlNEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcAorSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmNwcAorSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBKU0RvY3VtZW50LmNw
cAogSlNEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmNwcAogSlNEb2N1bWVudEZyYWdt
ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDhmMDkwOWIwM2UwMzUzZDQwOTgwYWQxNjRkY2M2MTkyYzViYzUyYTkuLjFl
NjhjMzA5MGNmMmQxZTEwZTIwM2ZkNGNmNjgzZDQ4ZGZlYWE1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTIsNiArMTI1
Miw4IEBACiAJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NUZFQTVDRTE1NkRERThDMDA2
NTQxMDEgLyogRGVjaW1hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQ2MEJCNjE2MUQwQTFCRjAwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEJCNjE0
MUQwQTFCRUMwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjBDQkYzNjFENEJDRDBFMDA5MkU4OEUg
LyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzNDFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQ
cm9wZXJ0aWVzLmggKi87IH07CisJCTQ2MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQuaCAqLzsgfTsKKwkJNDYwRTMwNzcyMjJGNEYwMzAwOUEwNjA2IC8q
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUVERDlGMjIyRjRFQzMwMEI0NkUx
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi87IH07CiAJ
CTQ2MjE4QUNCMUY3MkQ2NEUwMDU3NEZCRSAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkUwMTZBRDFGNzJENjFF
MDAyODJCMkMgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBX
aW5kb3dQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAw
OTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9u
LmggKi87IH07CkBAIC03NzIwLDYgKzc3MjIsOCBAQAogCQk0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4
OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NV2luZG93UHJvcGVydGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2MENCRjM0MUQ0QkNDRkUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3Bl
cnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01XaW5kb3dQcm9w
ZXJ0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MEQxOTQ0MUZDRTIxREQw
MEMzREI4NSAvKiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MURBNTJBMjIyRjQ4NkYw
MEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2Vy
T2JzZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG93
ZXJPYnNlcnZlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MzUyMUFB
MjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXaW5kb3dQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NjM1MjFBQzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzcyNyw2ICs3NzMxLDkgQEAKIAkJNDYzRUI2MjExQjg3ODlDQjAwOTZF
RDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjQyNDA0NTIw
RUFGMEVEMDBCMjlGRDIgLyogRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQ2NUVERDlEMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUVERDlGMjIyRjRFQzMw
MEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RUREQTAy
MjJGNEVDNDAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZEQzZB
QjFFREUwMjFEMDA3NDYyMjQgLyogSlNET01SZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVJlY3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDY2RUQ4RDIxRURFMDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01SZWN0TGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyogQ2FudmFz
UGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNQYXRo
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NDc2LDYgKzI3NDgzLDExIEBA
CiAJCQkJNTlBODVFQTExMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwICovLAogCQkJCTU5QTg1RUEzMTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmggKi8sCiAJCQkJNTlBODVFQUExMTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVu
dGF0aW9uRXZlbnQuaWRsICovLAorCQkJCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwICovLAorCQkJCTQ2MURBNTJBMjIyRjQ4NkYw
MEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLywKKwkJCQk0NjVF
REQ5RDIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmlk
bCAqLywKKwkJCQk0NjVFREQ5RjIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oICovLAorCQkJCTQ2NUVEREEwMjIyRjRFQzQwMEI0NkUx
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCAqLywKIAkJ
CQlBODE4NUYzNDA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuY3BwICovLAogCQkJCUE4MTg1
RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlFMUUw
NEQwMEFGODAyMCAvKiBEb2N1bWVudC5pZGwgKi8sCkBAIC0yOTAwNiw2ICsyOTAxOCw4IEBACiAJ
CQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0IC8qIERldmlj
ZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODVFQTQxMTlENjhFQzAw
REVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2
MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NzJCNDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTcyQjQwM0EyMTc3MjU4MTAwMEFENDNFIC8qIERldmljZVJlc3BvbnNl
Q29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjc3MjVGRDFBNUIzQUQ5MDAzQzI0REQg
LyogREZBLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50
LmgKaW5kZXggM2VjYzViZDRjMGM3ZWVjMThlOWZiOGU0MTU2ZjE4YmYzZWY0NTMzZC4uNTFkNzFh
MGU3Y2Q3ODQzZDE1ODJiMDM5Y2NlMjNhODI3MjUzZTlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkV2ZW50LmgKQEAgLTI1LDEzICsyNSwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsK
IAotY2xhc3MgRGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworY2xhc3Mg
RGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uRXZlbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkRldmljZU1vdGlv
bkV2ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCmluZGV4
IGYyZjVkZjIwZmNlNTNiYzEzYjVhYmU2ZDQxOGUyMGJkNWE0ZmQzODYuLjI3ZjJjNTU3MjExZDVk
MGU0ZjUyNGI2NmQ5MWRkNDg0Mjc3ZGMyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkV2ZW50LmlkbApAQCAtNTcsMyArNTcsNSBAQAogICAgIGRvdWJsZT8gYmV0YTsKICAgICBk
b3VibGU/IGdhbW1hOwogfTsKKworRGV2aWNlTW90aW9uRXZlbnQgaW1wbGVtZW50cyBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uRXZlbnQuaAppbmRleCAwMjViMmUzMmE3NTFlNDJmNjUwYmI1M2I1MTVhMTBiZGI1Mjdm
NDc4Li42Mjg3MDhiNmU4NGI1MjYxOGU5NjgzY2Q2Y2RlNjdmM2ZhMTE2OGYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKQEAgLTI1LDEzICsyNSwxNCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uRXZlbnQgZmlu
YWwgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQg
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25FdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIG9y
aWVudGF0aW9uKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmlkbAppbmRleCAxM2ZmN2JhZGMwZTU5MTE2NjM1OTVkMTVkMTFkYmQ2MGEzMzM5ZmRi
Li43ZjM1ZjEwZDE5MTdhNzU0Zjg2MDFiOGFhZTBiOWVkNzE5ODJhYTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCkBAIC01NSwzICs1NSw0IEBA
CiAjZW5kaWYKIH07CiAKK0RldmljZU9yaWVudGF0aW9uRXZlbnQgaW1wbGVtZW50cyBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2ZDk1Nzc1NGU5
NjVmMDE5Y2JhMDAzMDVjOTE0MzU4YjJkM2NmYjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcApAQCAtMCwwICsx
LDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvbkV2ZW50LmgiCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50OjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYg
ZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiB3aW5k
b3cgPSBkb2N1bWVudC5kb21XaW5kb3coKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFn
ZSgpOworICAgIGlmICghd2luZG93IHx8ICFwYWdlKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBicm93c2luZyBjb250ZXh0
Il9zIH0pOworCisgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKCkpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RB
bGxvd2VkRXJyb3IsICJDYWxsaW5nIHJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2Vy
IGdlc3R1cmUiX3MgfSk7CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghd2lu
ZG93LT5pc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2FnZSkp
IHsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1ZXN0UGVybWlz
c2lvbigpIGZhaWxlZCwgcmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOworICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisK
KyAgICBpZiAoYXV0byBwZXJtaXNzaW9uU3RhdGUgPSBkb2N1bWVudC5kZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc1N0YXRlKCkpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUo
KnBlcm1pc3Npb25TdGF0ZSA/IFBlcm1pc3Npb25TdGF0ZTo6R3JhbnRlZCA6IFBlcm1pc3Npb25T
dGF0ZTo6RGVuaWVkKTsKKworICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZG9jdW1lbnQudG9wT3JpZ2luKCksIFtk
b2N1bWVudCA9IG1ha2VXZWFrUHRyKGRvY3VtZW50KSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChkb2N1bWVudCkKKyAgICAg
ICAgICAgIGRvY3VtZW50LT5zZXREZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRl
KGdyYW50ZWQpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoZ3JhbnRlZCA/IFBlcm1pc3Npb25T
dGF0ZTo6R3JhbnRlZCA6IFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9KTsKK30KKyNl
bmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJhZTY4MWYz
OGY5ZDg5ZTdiMDdkN2EyNDRiZjZmNzM1N2Y4NmY4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaApAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZl
cnJlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQgeworcHVibGljOgorCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICB1c2luZyBQZXJtaXNzaW9uU3RhdGUgPSBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOworICAgIHVzaW5nIFBlcm1pc3Npb25Q
cm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEVudW1lcmF0aW9uPFBlcm1pc3Npb25TdGF0
ZT4+OworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiwgUGVybWlz
c2lvblByb21pc2UmJik7CisjZW5kaWYKKworcHJvdGVjdGVkOgorICAgIERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25FdmVudCgpID0gZGVmYXVsdDsKKyAgICB+RGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvbkV2ZW50KCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ODMxYTQ2NWYwYjc2YmIyNWE4MDU4NzFhYzJmNTZlNzI3MjBlZTc5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25FdmVudC5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRp
dGlvbmFsPURFVklDRV9PUklFTlRBVElPTiwKKyAgICBOb0ludGVyZmFjZU9iamVjdAorXSBpbnRl
cmZhY2UgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKKyAgICBbQ2FsbFdpdGg9RG9j
dW1lbnQsIEVuYWJsZWRCeVNldHRpbmc9RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJXSBz
dGF0aWMgUHJvbWlzZTxEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlPiBy
ZXF1ZXN0UGVybWlzc2lvbigpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRkNjVlZGJhNTYwYTMyZjlhNjIwMTJiZGRkZjJlMzU2NWNjYjVmOGYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZS5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZSB7IEdyYW50ZWQsIERlbmllZCB9OworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE4MTQwMzAxZWZkNjFmNGYzMTI1NjdkNTk0ODM0
ODg4ZTVjODMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbApAQCAtMCwwICsxLDI2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitlbnVtIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgeyAi
Z3JhbnRlZCIsICJkZW5pZWQiIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxNDI5Mjc4
NmNjOGVmZWVmNWIxYTJmYzE1ZGM3MTBiZmVjMWMzMTEwLi5iZjhhNDZiMTQ1ZTA3M2VmOTQxMmUw
NTM1NzQzYWUyMmUyYjU1YjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTg2MzgsNiAr
ODYzOCwzNiBAQCB2b2lkIERvY3VtZW50OjpmcmFtZVdhc0Rpc2Nvbm5lY3RlZEZyb21Pd25lcigp
CiAgICAgZGV0YWNoRnJvbUZyYW1lKCk7CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorCitjb25zdCBPcHRpb25hbDxib29sPiYgRG9jdW1lbnQ6OmRldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdAoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAh
PSB0aGlzKQorICAgICAgICByZXR1cm4gdG9wRG9jdW1lbnQoKS5kZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc1N0YXRlKCk7CisKKyAgICByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc1N0YXRlOworfQorCit2b2lkIERvY3VtZW50OjpzZXREZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlKGJvb2wgZ3JhbnRlZCkKK3sKKyAgICBpZiAoJnRvcERv
Y3VtZW50KCkgIT0gdGhpcykgeworICAgICAgICB0b3BEb2N1bWVudCgpLnNldERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoZ3JhbnRlZCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUgPSBncmFu
dGVkOworCisgICAgaWYgKCFncmFudGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1
dG8qIGZyYW1lID0gbV9mcmFtZTsgZnJhbWUgJiYgZnJhbWUtPndpbmRvdygpOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KG1fZnJhbWUpKSB7CisgICAgICAgIGZyYW1lLT53aW5k
b3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7Cisg
ICAgICAgIGZyYW1lLT53aW5kb3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5l
Y2Vzc2FyeSgpOworICAgIH0KK30KKworI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5H
X0FQSSkKIFdvcmtsZXQmIERvY3VtZW50OjplbnN1cmVQYWludFdvcmtsZXQoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCA3NzhjMjEzM2M1NDM1N2RkNjc3MTk5ZGY3MTk0MTdiM2VkZTkzMTFh
Li4yYjJjM2M4Y2JjN2U0NzM0ZjdlYzNhYWM3MjllM2ViZDViYjE3NzdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMTIxNCwxMiArMTIxNCwxNyBAQCBwdWJsaWM6CiAjaW5jbHVkZSA8V2ViS2l0
QWRkaXRpb25zL0RvY3VtZW50SU9TLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIERldmljZU1vdGlvbkNvbnRy
b2xsZXImIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXImIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2ltdWxhdGVEZXZpY2VPcmllbnRhdGlvbkNoYW5nZShkb3Vi
bGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEpOwogI2VuZGlmCiAKKyAgICBjb25z
dCBPcHRpb25hbDxib29sPiYgZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSgp
IGNvbnN0OworICAgIHZvaWQgc2V0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0
ZShib29sIGdyYW50ZWQpOworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisK
ICAgICBjb25zdCBEb2N1bWVudFRpbWluZyYgdGltaW5nKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1
bWVudFRpbWluZzsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIG1vbm90b25pY1RpbWVz
dGFtcCgpIGNvbnN0OwpAQCAtMTgzMSw2ICsxODM2LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2FyZUZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbiB7IGZhbHNlIH07CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgT3B0aW9uYWw8Ym9vbD4gbV9kZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlOworI2VuZGlmCisKICAgICBIYXNoU2V0PEhUTUxQ
aWN0dXJlRWxlbWVudCo+IG1fdmlld3BvcnREZXBlbmRlbnRQaWN0dXJlczsKICAgICBIYXNoU2V0
PEhUTUxQaWN0dXJlRWxlbWVudCo+IG1fYXBwZWFyYW5jZURlcGVuZGVudFBpY3R1cmVzOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWljcm90YXNrcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWljcm90YXNrcy5jcHAKaW5kZXggMjVhNDdhNjgzOTVlODI1ZjFiMGQ2MTZiOTcx
MGEzZTZiYjVkNzhhYi4uMmNjY2YwYjIyYzA3NzQyMTcwMWIxYzZmMTY2OWYyOTBhZjlkZGIyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01pY3JvdGFza3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIk1pY3JvdGFza3MuaCIKIAorI2luY2x1ZGUgIldvcmtlckds
b2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDNhMGRjM2JiMDNkY2Q3MGJlOTRlZjRiOTg2MjFkOTc5
NTYwZTdlYmEuLjQ3ZTNjNWFhNzQ4NWNmNTFkNjNlYjAzNTlmZWIxMTUwNzFiNWNiNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNDgyLDYgKzQ4MiwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgLypzdWJGcmFtZUhvc3Qq
LywgU3RyaW5nJiYgLyp0b3BGcmFtZUhvc3QqLywgdWludDY0X3QgLypmcmFtZUlEKi8sIHVpbnQ2
NF90IC8qcGFnZUlEKi8sIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2Fs
bGJhY2spIHsgY2FsbGJhY2soZmFsc2UpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN0cmluZyYmIC8qc3ViRnJhbWVIb3N0Ki8sIFN0cmluZyYmIC8qdG9wRnJhbWVI
b3N0Ki8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCB1aW50NjRfdCAvKnBhZ2VJRCovLCBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQgKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKGZhbHNl
KTsgfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFsIHZvaWQg
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhjb25zdCBTZWN1cml0
eU9yaWdpbiYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykg
eyBjYWxsYmFjayh0cnVlKTsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zZXJ0
TWVudUVsZW1lbnQoSFRNTE1lbnVFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
bW92ZU1lbnVFbGVtZW50KEhUTUxNZW51RWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBk
aWRJbnNlcnRNZW51SXRlbUVsZW1lbnQoSFRNTE1lbnVJdGVtRWxlbWVudCYpIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGRmYTExMjQ4NGEzYTQ3N2UzZGMwMjJhMzRjYTM0ZGYz
ZmZhOTNlMzIuLjFjYTM4YjEwYzNlMmE4MmZlZTE3NjIwZTA1YmFjY2I4YWY2Yjk3N2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE4MjYsNTAgKzE4MjYsMTM0IEBAIGJvb2wgRE9N
V2luZG93OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBS
ZWY8RXZlbnRMaXN0ZW5lCiAgICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzR2FtZXBhZEV2ZW50
VHlwZShldmVudFR5cGUpKQogICAgICAgICBpbmNyZW1lbnRHYW1lcGFkRXZlbnRMaXN0ZW5lckNv
dW50KCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGVsc2Ug
aWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkKKyAg
ICAgICAgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7Cisg
ICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkK
KyAgICAgICAgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2Vu
ZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCi0gICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRh
dGlvbkV2ZW50RW5hYmxlZCgpICYmIGRvY3VtZW50KCkgJiYgZG9jdW1lbnQoKS0+bG9hZGVyKCkg
JiYgZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkp
IHsKKworRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBET01XaW5kb3c6OmRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcigpIGNvbnN0Cit7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICAgICAgaWYgKChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50IHx8
IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkpIHsKLSAg
ICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkgJiYgaXNTZWN1
cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dCgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS5hZGREZXZpY2VFdmVudExpc3RlbmVy
KCp0aGlzKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50KCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0
aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQoKSkgewotICAgICAgICAgICAg
ICAgIGlmIChpc1NlY3VyZUNvbnRleHQoKSkKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQo
KS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fy
bmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0
aW9uIGxpc3RlbmVyIGZyb20gY2hpbGQgZnJhbWUgdGhhdCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJp
dHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UuIl9zKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRk
IGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93
c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIl9zKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQorICAgIHJldHVybiBkb2N1bWVudCgpID8gJmRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcigpIDogbnVsbHB0cjsKICNlbHNlCi0gICAgICAgIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSB7Ci0gICAgICAgICAgICBpZiAoaXNTYW1l
U2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpICYmIGlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBh
ZGQgYSBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIGZyb20gY2hpbGQgZnJhbWUgdGhhdCB3YXNuJ3Qg
dGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UuIl9zKTsKLSAgICAgICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZl
bnQpIHsKLSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkg
JiYgaXNTZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXItPmFkZERldmlj
ZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBpZiAoaXNTZWN1cmVDb250ZXh0KCkpCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldh
cm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3Rl
bmVyIGZyb20gY2hpbGQgZnJhbWUgdGhhdCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2lu
IGFzIHRoZSBtYWluIHBhZ2UuIl9zKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250
ZXh0IGlzIG5vdCBzZWN1cmUuIl9zKTsKLSAgICAgICAgICAgIH0KKyAgICByZXR1cm4gRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSk7CisjZW5kaWYKK30KKworRGV2aWNl
TW90aW9uQ29udHJvbGxlciogRE9NV2luZG93OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29u
c3QKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHJldHVybiBkb2N1bWVudCgpID8g
JmRvY3VtZW50KCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSA6IG51bGxwdHI7CisjZWxzZQor
ICAgIHJldHVybiBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSk7CisjZW5kaWYK
K30KKworYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRp
b24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAoreworICAgIGlmICghZnJhbWUoKSB8fCAhZnJhbWUo
KS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpIHx8ICFkb2N1bWVu
dCgpIHx8ICFkb2N1bWVudCgpLT5sb2FkZXIoKSB8fCAhZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRl
dmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkpIHsKKyAgICAgICAgbWVzc2FnZSA9ICJBUEkg
aXMgZGlzYWJsZWQiX3M7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAo
IWlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiQnJvd3NpbmcgY29udGV4
dCBpcyBub3Qgc2VjdXJlIl9zOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
aWYgKCFpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkpIHsKKyAgICAgICAgbWVzc2Fn
ZSA9ICJTb3VyY2UgZnJhbWUgZGlkIG5vdCBoYXZlIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBh
cyB0aGUgbWFpbiBwYWdlIl9zOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9BZGREZXZpY2VNb3Rp
b25PcmllbnRhdGlvbkxpc3RlbmVyKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBTdHJp
bmcgaW5uZXJNZXNzYWdlOworICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25Pcmll
bnRhdGlvbihpbm5lck1lc3NhZ2UpKSB7CisgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJC
bG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVu
dCBsaXN0ZW5lciwgcmVhc29uOiAiLCBpbm5lck1lc3NhZ2UsICIuIik7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmll
bnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKCkpIHsKKyAgICAgICAgYXV0byBwZXJtaXNzaW9u
U3RhdGUgPSBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRl
KCk7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgJiYgISpwZXJtaXNzaW9uU3RhdGUpIHsK
KyAgICAgICAgICAgIG1lc3NhZ2UgPSAiTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBl
dmVudHMgd2lsbCBiZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2Fz
IGRlbmllZC4iX3M7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KLSNlbmRp
ZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2
ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkKLSAgICAgICAgZmFpbGVkVG9SZWdpc3RlckRl
dmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKLSNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorICAgICAgICBpZiAoIXBlcm1pc3Npb25TdGF0ZSkgeworICAgICAgICAgICAgbWVz
c2FnZSA9ICJObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZp
cmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLiJfczsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHJldHVy
biB0cnVlOwogfQogCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgRE9NV2lu
ZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQorewor
ICAgIGlmICghaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9u
RXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkZXZpY2VDb250cm9sbGVyID0g
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCk7CisgICAgaWYgKCFkZXZpY2VDb250cm9sbGVy
IHx8IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghaXNBbGxv
d2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKGVycm9yTWVzc2FnZSkpIHsK
KyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKKyAgICAgICAg
ICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBlcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgZGV2aWNlQ29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9
CisKK3ZvaWQgRE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5l
Y2Vzc2FyeSgpCit7CisgICAgaWYgKGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5kZXZp
Y2VvcmllbnRhdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIGRl
dmljZUNvbnRyb2xsZXIgPSBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSkKKyAgICAgICAg
ZGV2aWNlQ29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9CisK
K3ZvaWQgRE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5
KCkKK3sKKyAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rp
b25FdmVudCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGRldmljZUNvbnRyb2xsZXIg
PSBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCk7CisgICAgaWYgKCFkZXZpY2VDb250cm9sbGVyIHx8
IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghaXNBbGxvd2Vk
VG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKGVycm9yTWVzc2FnZSkpIHsKKyAg
ICAgICAgZmFpbGVkVG9SZWdpc3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKKyAgICAg
ICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRv
Y3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVs
OjpXYXJuaW5nLCBlcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
ZGV2aWNlQ29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9CisKK3Zv
aWQgRE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKQor
eworICAgIGlmIChoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZl
bnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogZGV2aWNlQ29udHJvbGxlciA9
IGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSkKKyAgICAgICAgZGV2aWNlQ29udHJvbGxlci0+cmVt
b3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9CiAKIHZvaWQgRE9NV2luZG93OjpmYWls
ZWRUb1JlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpCiB7CkBAIC0xOTQxLDIyICsy
MDI1LDYgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICAgICAgcmVtb3ZlVW5sb2FkRXZl
bnRMaXN0ZW5lcih0aGlzKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LmJlZm9yZXVubG9hZEV2ZW50ICYmIGFsbG93c0JlZm9yZVVubG9hZExpc3RlbmVycyh0aGlzKSkK
ICAgICAgICAgcmVtb3ZlQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlzKTsKLSNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgZWxz
ZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCAmJiBkb2N1
bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkucmVt
b3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYmIGRvY3VtZW50KCkpCi0gICAg
ICAgIGRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmlj
ZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotI2Vsc2UKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSB7Ci0gICAgICAgIGlmIChEZXZpY2VNb3Rp
b25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShw
YWdlKCkpKQotICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5l
cigqdGhpcyk7Ci0gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmlj
ZW9yaWVudGF0aW9uRXZlbnQpIHsKLSAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdl
KCkpKQotICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigq
dGhpcyk7Ci0gICAgfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8g
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xsRXZlbnQpCiAgICAgICAg
IGRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKTsKQEAgLTE5NzcsNiArMjA0NSwx
MiBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5p
c0dhbWVwYWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgZGVjcmVtZW50R2FtZXBhZEV2
ZW50TGlzdGVuZXJDb3VudCgpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0
aW9uRXZlbnQpCisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVj
ZXNzYXJ5KCk7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vt
b3Rpb25FdmVudCkKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNz
YXJ5KCk7CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjA1OSwxOCArMjEzMyw5
IEBAIHZvaWQgRE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAgICAgRXZlbnRU
YXJnZXQ6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKICNpZiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKERvY3VtZW50KiBk
b2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgZG9jdW1lbnQtPmRldmljZU1v
dGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycygqdGhpcyk7Ci0g
ICAgICAgIGRvY3VtZW50LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVBbGxE
ZXZpY2VFdmVudExpc3RlbmVycygqdGhpcyk7Ci0gICAgfQotI2Vsc2UKLSAgICBpZiAoRGV2aWNl
TW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZy
b20ocGFnZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0
ZW5lcnMoKnRoaXMpOwotICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAg
ICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNl
c3NhcnkoKTsKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5
KCk7CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKG1fc2Nyb2xs
RXZlbnRMaXN0ZW5lckNvdW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBiYmJmYTk1
ODcyZTRhMzNlNzM0MjUyODFlNGFjY2I0ZjcwNTliMWM0Li4xZDhhNjQyOTJmMDFmMDlmMTUxMmJj
ZGQ2Njg2ZmVjNDcyZWJhMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTgyLDYgKzgy
LDExIEBAIGNsYXNzIFZpc3VhbFZpZXdwb3J0OwogY2xhc3MgV2ViS2l0TmFtZXNwYWNlOwogY2xh
c3MgV2ViS2l0UG9pbnQ7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorY2xhc3Mg
RGV2aWNlTW90aW9uQ29udHJvbGxlcjsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cjsKKyNlbmRpZgorCiBzdHJ1Y3QgSW1hZ2VCaXRtYXBPcHRpb25zOwogc3RydWN0IFdpbmRvd0Zl
YXR1cmVzOwogCkBAIC0zMTEsNiArMzE2LDE5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBzY3Jv
bGxFdmVudExpc3RlbmVyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbEV2ZW50TGlzdGVu
ZXJDb3VudDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7Cisg
ICAgdm9pZCBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOwor
ICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworICAg
IHZvaWQgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisKKyAgICBi
b29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdl
KSBjb25zdDsKKyAgICBib29sIGlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25M
aXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OworCisgICAgRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKiBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKKyAgICBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyKiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3Q7CisjZW5k
aWYKKwogICAgIHZvaWQgcmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb24oKTsKIAogI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKaW5kZXggMzM2N2QzZGJmNTlmYzMz
NTcyNDk3NThhYzYzZGQxNzI1ZTA3NjM2Ni4uODQyYjg1NGVlMjUxMjU4YTQxMDYyYmZlMGQwNjU0
NGVkYjNjNmZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBA
IC02OSw2ICs2OSwxMSBAQCB2b2lkIERldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2
ZW50TGlzdGVuZXJzKERPTVdpbmRvdyYgd2luZG93KQogICAgICAgICBtX2NsaWVudC5zdG9wVXBk
YXRpbmcoKTsKIH0KIAorYm9vbCBEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3Rl
bmVyKERPTVdpbmRvdyYgd2luZG93KSBjb25zdAoreworICAgIHJldHVybiBtX2xpc3RlbmVycy5j
b250YWlucygmd2luZG93KTsKK30KKwogdm9pZCBEZXZpY2VDb250cm9sbGVyOjpkaXNwYXRjaERl
dmljZUV2ZW50KEV2ZW50JiBldmVudCkKIHsKICAgICBmb3IgKGF1dG8mIGxpc3RlbmVyIDogY29w
eVRvVmVjdG9yKG1fbGlzdGVuZXJzLnZhbHVlcygpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuaAppbmRleCBlMTYwMzg1YWZlMmY5NzM1M2MwZWEyMmYyOWU4NTZmMThlMjBi
MWE4Li4zZDVmOTBjNTBlZTRhNTRmYzBhZDE3YzY0NzM1ZGQ2OTM4NzNmZmZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBhZGREZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYpOwogICAgIHZvaWQgcmVt
b3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZUFsbERl
dmljZUV2ZW50TGlzdGVuZXJzKERPTVdpbmRvdyYpOworICAgIGJvb2wgaGFzRGV2aWNlRXZlbnRM
aXN0ZW5lcihET01XaW5kb3cmKSBjb25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hEZXZpY2VFdmVu
dChFdmVudCYpOwogICAgIGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNF
bXB0eSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMzAzZDdmODJkNGIzN2Zk
YmExYjdmMmRkNGE4ZGEyNTdlOGFiOTc3Yy4uZTgyNGRmNzZhODQyZjMyMDdmYWUwZWNlNjQ0NGU5
ZTJmMjQ1ZWZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNzY0LDYgKzc2NCwx
MSBAQCBkZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogICBj
b25kaXRpb25hbDogREVWSUNFX09SSUVOVEFUSU9OCiAKK2RldmljZU9yaWVudGF0aW9uUGVybWlz
c2lvbkFQSUVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaW5pdGlhbDogZmFsc2UKKyAgY29uZGl0
aW9uYWw6IERFVklDRV9PUklFTlRBVElPTgorCiBzaG91bGRFbmFibGVUZXh0QXV0b3NpemluZ0Jv
b3N0OgogICB0eXBlOiBib29sCiAgIGluaXRpYWw6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA4MDRhMGFlOTEwMzkxMzMzMDMyMDM3YTEyMjBkNDVi
MDAzZGU4MjM4Li43MjNiZDMxMWE0NTA3MDhmZDVjZGJmNDlkMDVjY2ZmYTIwMDQ2NTEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEyLDYgKzEyLDE1IEBA
IERldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkOgogICBjb25kaXRpb246IEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCiAgIHdlYmNvcmVOYW1lOiBkZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5h
YmxlZAogCitEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgY29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorICB3ZWJjb3JlTmFtZTogZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJ
RW5hYmxlZAorICBodW1hblJlYWRhYmxlTmFtZTogIlBlcm1pc3Npb24gQVBJIGZvciBkZXZpY2Ug
b3JpZW50YXRpb24gLyBtb3Rpb24gYWNjZXNzLiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9u
OiAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIC8gRGV2aWNlTW90
aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAor
CiBKYXZhU2NyaXB0RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggM2VjNmYwMGQy
NGZjOTM5NDI2OTBhM2U3MjlmZDA3ZWQ3YTNhYTZjNy4uOTQwYjY5NzFlYTQwYTRkYjI5MzViZWEy
YTk4OTZiNzllMTVkNjUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xp
ZW50LmgKQEAgLTE3Myw2ICsxNzMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRM
b3NlUG9pbnRlckxvY2soV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNl
Y3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQorI2VuZGlmCisKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE9i
amVjdCopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9u
Z1Bhc3N3b3JkQXBwZWFyYW5jZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYTQxNjc2NmUyYjM4
M2UxYjUxNDQ4ZmM5Y2M0MDJjMDFmMWJlYjNhYS4uMzhlNWIxNzA4NjI2ZjBiNDkyZDg3MTMwZDY5
NmYzNzI4ODU5Y2UzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CkBAIC0xMTUsNyArMTE1LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFn
ZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0
czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlD
bGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGll
bnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRW
NiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwg
V0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMj4g
VmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFn
ZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJ
Q2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xp
ZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50
VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTIsIFdLUGFnZVVJQ2xpZW50
VjEzPiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTE5MDMs
NiArMTkwMywxNiBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJl
ZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGll
bnQucmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKHRvQVBJKCZwYWdlKSwgdG9BUEkoZnJhbWUp
LCB0b0FQSShyZXF1ZXN0aW5nRG9tYWluLmltcGwoKSksIHRvQVBJKGN1cnJlbnREb21haW4uaW1w
bCgpKSwgdG9BUEkobGlzdGVuZXIucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
ICAgICAgICB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICAgICB2b2lk
IHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViUGFnZVByb3h5
JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcykKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fY2xpZW50LnNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3JpZ2luKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSk7CisgICAgICAgIH0KKyNlbmRpZgorCiAgICAgICAg
IC8vIFByaW50aW5nLgogICAgICAgICBmbG9hdCBoZWFkZXJIZWlnaHQoV2ViUGFnZVByb3h5JiBw
YWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSkgZmluYWwKICAgICAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggNWU1OTczZjlhYjE4
YjQ2YTY1ZWZlMDhlZGY1ZjM1MDdhNzc1ZGYwYi4uZWE4ODcyNzU2YWMxNzIwMTkwNWFlODc5YWFh
MjY0MWQ3ZTI1ZGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VVSUNsaWVudC5oCkBAIC0xMzQsNiArMTM0LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tEaWRMb3Nl
UG9pbnRlckxvY2tDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEkK
IHR5cGVkZWYgdm9pZCAoKldLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2VDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmUsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tEaWRFeGNlZWRCYWNrZ3Jv
dW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdl
LCBXS1Jlc291cmNlTGltaXQgbGltaXQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRl
ZiB2b2lkICgqV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJh
bmNlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgqV0tQYWdlU2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1
cml0eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAK
IC8vIERlcHJlY2F0ZWQKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25h
cnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VC
dXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMTE0MCw2ICsx
MTQxLDExMCBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxMiB7CiAgICAgV0tQYWdl
UmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm07CiB9IFdLUGFnZVVJQ2xpZW50VjEyOwog
Cit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxMyB7CisgICAgV0tQYWdlVUlDbGllbnRC
YXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNl
OworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAgV0tQYWdl
VUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VGb2N1c0Nh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
Y3VzOworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxl
cnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkphdmFTY3Jp
cHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRD
b25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVuSmF2YVNj
cmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2Ny
aXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkph
dmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VTZXRTdGF0
dXNUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
dFN0YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2Vk
Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNs
aWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlF
dmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRs
ZUtleUV2ZW50OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAgICBX
S1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0FyZVZp
c2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xiYXJz
QXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdl
U2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXRNZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlzaWJs
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNp
YmxlOworICAgIFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdl
dElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaXNSZXNpemFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBXS1Bh
Z2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7Cisg
ICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWNiAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWNjsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGllbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlk
U2Nyb2xsOworICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAgIFdLUGFn
ZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcnVuT3BlblBhbmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsKKyAg
ICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7Cisg
ICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKKyAg
ICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0
byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0
YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNh
dmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAgdm9pZCogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRl
cnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdL
UGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAgICAgICAg
ICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAgIFdLUGFn
ZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAg
Ly8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFn
ZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkOworCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5lZFN0YXRl
RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVk
U3RhdGVEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVz
ZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVz
cy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2duaXplTG9u
Z01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJlIGRpZENh
bmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQbGF5aW5n
QXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Bs
YXlpbmdBdWRpb0RpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1BhZ2VEZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAg
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZURp
ZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRD
YWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRB
bGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25m
aXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2YVNjcmlw
dENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0
UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1bkphdmFT
Y3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VNZWRpYVNlc3Np
b25NZXRhZGF0YURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA2LgorICAgIFdLUGFn
ZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlTmV3UGFnZTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydDsK
KyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIFdLUGFnZVJ1bkphdmFT
Y3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
SmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbjsKKworICAgIC8vIFZlcnNpb24gNy4KKyAgICBXS1BhZ2VSdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbDsKKyAgICBXS0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZTsKKworICAgIC8vIFZlcnNpb24gOC4KKyAgICBXS1JlcXVlc3RQb2ludGVyTG9ja0Nh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RQb2lu
dGVyTG9jazsKKyAgICBXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExvc2VQb2ludGVyTG9jazsKKworICAgIC8vIFZl
cnNpb24gOS4KKyAgICBXS0hhbmRsZUF1dG9wbGF5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5RXZlbnQ7CisKKyAgICAvLyBW
ZXJzaW9uIDEwLgorICAgIFdLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2VDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRD
aGFuZ2U7CisgICAgV0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3Jl
Z3JvdW5kQ2FsbGJhY2sgICAgICAgICBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdo
aWxlSW5Gb3JlZ3JvdW5kOworCisgICAgLy8gVmVyc2lvbiAxMS4KKyAgICBXS1BhZ2VEaWRSZXNp
Z25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VDYWxsYmFjayAgICAgICAgIGRp
ZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZTsKKworICAgIC8vIFZl
cnNpb24gMTIuCisgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm07CisK
KyAgICAvLyBWZXJzaW9uIDEzLgorICAgIFdLUGFnZVNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjayAgICAgICAgICAgc2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKK30gV0tQYWdlVUlDbGllbnRWMTM7CisKICNpZmRlZiBf
X2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlLmgKaW5kZXggZGEwMzE0YWUzZjU4Y2JkZTk4MDI4ZTI3Mjg5ZWFk
NDRkNmQzNDJiYi4uODE1ZTgwMTg4OGU1ZDY2NGQ2NWFlM2NiYWFkNjY3MmEyNWZkN2RjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaApA
QCAtMzQsNiArMzQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogQGNsYXNzIFdLTmF2aWdh
dGlvbkFjdGlvbjsKIEBjbGFzcyBXS09wZW5QYW5lbFBhcmFtZXRlcnM7CiBAY2xhc3MgV0tQcmV2
aWV3RWxlbWVudEluZm87CitAY2xhc3MgV0tTZWN1cml0eU9yaWdpbjsKIEBjbGFzcyBXS1dlYlZp
ZXc7CiBAY2xhc3MgV0tXZWJWaWV3Q29uZmlndXJhdGlvbjsKIEBjbGFzcyBXS1dpbmRvd0ZlYXR1
cmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlE
ZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZGJkMDUzZTdmYmQwYTA5NWYwODg4YTdlZGEwYmMyYmJh
NzNlMjUzMi4uM2Q3NzcxNjQwOGI3NDFjY2RkODYzOGMwZGZiNTYzODcwYTgzNjBmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCkBAIC0xNzEsNiArMTcxLDE1IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENoYW5nZVNhZmVBcmVhU2hvdWxk
QWZmZWN0T2JzY3VyZWRJbnNldHM6KEJPT0wpc2FmZUFyZWFTaG91bGRBZmZlY3RPYnNjdXJlZElu
c2V0cyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRpZFByZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOihV
SVZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NGb2N1c2Vk
RWxlbWVudFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19B
UElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CisKKy8qISBAYWJzdHJhY3QgQWxsb3dzIHlvdXIgYXBw
IHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gc2VjdXJpdHkgb3JpZ2luIHNo
b3VsZCBoYXZlIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50YXRpb24gYW5kIG1vdGlvbi4K
KyBAcGFyYW0gc2VjdXJpdHlPcmlnaW4gVGhlIHNlY3VyaXR5IG9yaWdpbiB3aGljaCByZXF1ZXN0
ZWQgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBvcmllbnRhdGlvbiBhbmQgbW90aW9uLgorIEBwYXJh
bSBkZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCBvbmNlIHRoZSBh
cHAgaGFzIG1hZGUgaXRzIGRlY2lzaW9uLiBQYXNzIFlFUyB0byBhbGxvdyB0aGUgb3JpZ2luIGFj
Y2VzcywgTk8gb3RoZXJ3aXNlLgorCisgSWYgeW91IGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBtZXRo
b2QsIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50YXRpb24gYW5kIG1vdGlvbiB3aWxsIGJl
IGdyYW50ZWQuCisgKi8KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2lu
OihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RC
QSkpOworCiAjZWxzZSAvLyBUQVJHRVRfT1NfSVBIT05FCiAtICh2b2lkKV9wcmVwYXJlRm9ySW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CiAtICh2b2lkKV9jYW5jZWxJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUuaAppbmRleCBjY2I3OGEyOWUyYTRjMmZmMTZkNDI1MjVhZTVlNDYwYTc4OWJiN2Ez
Li42M2Y1NWM0NzEyNDU3MTBjZDhlOThjZWFkYTg3MDkzOGU3ZGFiZjVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMTksNiArMTE5LDkgQEAgcHJp
dmF0ZToKICAgICAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQ
cm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEFQSTo6T3BlblBhbmVs
UGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3Jv
dW5kKFdlYlBhZ2VQcm94eSYsIFdLUmVzb3VyY2VMaW1pdCkgZmluYWw7CiAgICAgICAgIHZvaWQg
c2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6
OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgVVJMJiwgQVBJOjpEYXRhJikgZmlu
YWw7CisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICAgICB2b2lk
IHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJikgZmluYWw7CiAjZW5kaWYKICAgICAgICAgYm9vbCBuZWVkc0ZvbnRBdHRyaWJ1dGVz
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlczsgfQogICAgICAgICB2b2lkIGRpZENoYW5nZUZv
bnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikgZmluYWw7CkBAIC0x
ODcsNiArMTkwLDkgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3U2F2ZURhdGFUb0Zp
bGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21w
bGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOworI2VuZGlm
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgYm9vbCB3ZWJWaWV3U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2lu
RGVjaXNpb25IYW5kbGVyIDogMTsKICNlbmRpZgogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVE
YXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNh
Z2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgOiAxOwog
ICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5E
YXRhYmFzZU5hbWVEaXNwbGF5TmFtZUN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJl
bnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA6IDE7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBiNWEwYTUwOGJjOTk2
ZDNjOWE5N2Y5M2FmM2VhM2Y5MjUwOTdmNjY1Li45MjYwNzI1ODdjMTBmZmNiOWNjOGE4YWY1Zjg3
Mjk2OGQ3YWJlYmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0KQEAgLTEzMiw2ICsxMzIsOSBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlk
IDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdT
YXZlRGF0YVRvRmlsZVN1Z2dlc3RlZEZpbGVuYW1lTWltZVR5cGVPcmlnaW5hdGluZ1VSTCA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnNhdmVEYXRhVG9G
aWxlOnN1Z2dlc3RlZEZpbGVuYW1lOm1pbWVUeXBlOm9yaWdpbmF0aW5nVVJMOildOwogICAgIG1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0luaXRpYXRl
ZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKHdlYlZpZXc6cnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnM6aW5pdGlhdGVkQnlG
cmFtZTpjb21wbGV0aW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFu
ZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJl
cXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5k
bGVyOildOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopXTsK
ICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3Rh
Rm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0
YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2Vj
dXJpdHlPcmlnaW46Y3VycmVudFF1b3RhOmN1cnJlbnRPcmlnaW5Vc2FnZTpjdXJyZW50RGF0YWJh
c2VVc2FnZTpleHBlY3RlZFVzYWdlOmRlY2lzaW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJh
c2VOYW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0
YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2Vj
dXJpdHlPcmlnaW46ZGF0YWJhc2VOYW1lOmRpc3BsYXlOYW1lOmN1cnJlbnRRdW90YTpjdXJyZW50
T3JpZ2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6ZXhwZWN0ZWRVc2FnZTpkZWNpc2lvbkhh
bmRsZXI6KV07CkBAIC04NDQsNiArODQ3LDI2IEBAIGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZVByCiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmln
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1Nob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbkRlY2lz
aW9uSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisg
ICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlm
ICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKwor
ICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShk
ZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7
CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURl
bGVnYXRlLm1fd2ViVmlldyBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzRm9yU2VjdXJpdHlPcmlnaW46d3JhcHBlcihzZWN1cml0eU9yaWdpbikgZGVjaXNpb25IYW5k
bGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildIChCT09MIGdyYW50ZWQpIG11dGFi
bGUgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVk
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0
aW9uSGFuZGxlcigpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihncmFudGVkKTsKKyAgICB9
KS5nZXQoKV07Cit9CisjZW5kaWYKKwogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQ2hh
bmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmIGZvbnRBdHRy
aWJ1dGVzKQogewogICAgIGlmICghbmVlZHNGb250QXR0cmlidXRlcygpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDY3MGYyYzU2NzZmMTkzMjgwNDRlYjcx
MTkzNDhiNWQ3YmJmOThiNC4uZTE4YTcxMzM3Zjg2NWRmMWVkYWExZTgyZWRlMGQ2YzkzMzdkMDFi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MTc0LDYg
KzcxNzQsMTggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNlck1lZGlhU3RhdGUoKQogI2Vu
ZGlmCiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAg
IGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEuc2Vj
dXJpdHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVudC0+c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzcygqdGhpcywgb3JpZ2luLmdldCgpLCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrSURdKGJvb2wgZ3JhbnRlZCkgeworICAgICAg
ICBpZiAoIXdlYWtUaGlzIHx8ICFpc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZURldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzRGVjaXNpb24oY2FsbGJhY2tJRCwgZ3JhbnRlZCksIG1f
cGFnZUlEKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcm
IG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjE1NWQxNDJlNDRmYmE1
NDQ1OGJjNzFmNTM5MWJlNmUwOWI0ZTgwMy4uZDQ4ODU3OGE5ZGY0YjQzZmJlZTU2MWNkYzE3YTVj
M2E0MDc5OTVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0
MDEsNiArMTQwMSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0Nv
bmZpcm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBj
b25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgcmVxdWVzdERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgorCiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogbm9u
RXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5U
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IGU4NjRkNGE5NmZiNjdmOWE1M2YxZDYwOWM2OWY3NzY1MjEzODRhMDAuLjc0M2ZjMDRm
NTE0ZmQyMjg5NzU5YzAwYjRhMDZlZGJkZjFkZGIzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTUzMiw2ICs1MzIsMTAgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTdG9wVVJMU2NoZW1lVGFzayh1aW50NjRf
dCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpCiAgICAgTG9hZFN5
bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1l
dGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpIERl
bGF5ZWQKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgUmVxdWVzdERldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxF
KEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJv
bURhdGEoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIHByZWZl
cnJlZEZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBS
ZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJvbUZpbGVQYXRoKFN0cmluZyBpZGVudGlmaWVy
LCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBmaWxlUGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKaW5kZXggNjdmZDdhNzIwY2UyZjMzOTc3MDM1MTQ4YmRiZDJjZWZhN2M3ZmQzNS4uNjJiNWVm
YjgxYTM3NWE1ZGRiMDIzYzM1OWFhZTRiNDdiZDJmMDBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTEzMjAsNCArMTMyMCwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcgogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoY29uc3QgU2Vj
dXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxs
YmFjaykKK3sKKyAgICBtX3BhZ2Uuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2VzcyhvcmlnaW4sIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmOTI2YTI1OGFkODVhYjA3Nzkx
NmQwY2IyMzUyODRkOGViM2JkYWE3Li4yMjdiODE0MTg2MzNkZTM3MmYxMzRmNmUxZTliM2YxNWZh
YTNlODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNjYsNiArMzY2LDEwIEBAIHByaXZhdGU6
CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0
cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQgKGJvb2wpPiYmKSBmaW5hbDsKICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyNlbmRpZgorCiAgICAg
U3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJGcmFtZT4gbV9j
YWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWlu
RnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMGY3MGIzYmJmMDNjZTc4ODgyMmU4
NmIwMDQyZTA1OTgyMjg1NTAxOS4uMDMzOWFkYTBkYjgzNWVlNjA3MjIxNzQ2M2FhZGQ4NGFlZTU1
MzgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTYzNDYsNiArNjM0NiwzMCBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNz
KFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LAogICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVE
b21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHN1YkZyYW1lSG9zdCksIFJlZ2lzdHJhYmxl
RG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdCh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBt
X3BhZ2VJRCwgcHJvbXB0RW5hYmxlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
ICNlbmRpZgorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3N0YXRpYyB1aW50NjRf
dCBuZXh0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCgpCit7
CisgICAgc3RhdGljIHVpbnQ2NF90IG5leHRDYWxsYmFja0lEID0gMDsKKyAgICByZXR1cm4gKytu
ZXh0Q2FsbGJhY2tJRDsKK30KKwordm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcmln
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7CisgICAgYXV0
byBjYWxsYmFja0lEID0gbmV4dERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNh
bGxiYWNrSUQoKTsKKyAgICBBU1NFUlQoIW1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQ2FsbGJhY2tNYXAuY29udGFpbnMoY2FsbGJhY2tJRCkpOworICAgIG1fZGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tNYXAuYWRkKGNhbGxiYWNrSUQsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVx
dWVzdERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKG9yaWdpbi5kYXRhKCksIGNhbGxi
YWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NEZWNpc2lvbih1aW50NjRfdCBjYWxsYmFja0lELCBib29sIGdyYW50ZWQp
Cit7CisgICAgYXV0byBjYWxsYmFjayA9IG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lEKTsKKyAgICBBU1NFUlQoY2FsbGJhY2sp
OworICAgIGNhbGxiYWNrKGdyYW50ZWQpOworfQorI2VuZGlmCiAgICAgCiBzdGF0aWMgU2hhcmVT
aGVldENhbGxiYWNrSUQgbmV4dFNoYXJlU2hlZXRDYWxsYmFja0lEKCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlNDcxZGYwZGFiMjg4NDI3YTI2
MzgyZmRiMjNhMWI3ZmQ1MTQyMzVhLi44ZTQwMTE2NmIwZmY4NGJmODY0NDVmNGMwNWUxMTYzMmI4
MmZlNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC0xMTExLDYgKzExMTEsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgc2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2VuZGlmCisKICAg
ICB2b2lkIHNob3dTaGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIHZvaWQg
ZGlkQ29tcGxldGVTaGFyZVNoZWV0KGJvb2wgd2FzQ29tcGxldGVkLCBTaGFyZVNoZWV0Q2FsbGJh
Y2tJRCBjb250ZXh0SWQpOwogICAgIApAQCAtMTIwNyw2ICsxMjExLDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xv
YmFsUG9zaXRpb24pOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
ICAgIHZvaWQgZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzRGVjaXNp
b24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKTsKKyNlbmRpZgorCiAjaWYgIVBM
QVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBp
bnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYK
QEAgLTE4MzcsNiArMTg0NSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFdU
Rjo6RnVuY3Rpb248dm9pZChib29sIGdyYW50ZWQpPj4gbV9zdG9yYWdlQWNjZXNzUmVzcG9uc2VD
YWxsYmFja01hcDsKICAgICBIYXNoTWFwPFNoYXJlU2hlZXRDYWxsYmFja0lELCBXVEY6OkZ1bmN0
aW9uPHZvaWQoYm9vbCBjb21wbGV0ZWQpPj4gbV9zaGFyZVNoZWV0UmVzcG9uc2VDYWxsYmFja01h
cDsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgSGFzaE1hcDx1aW50NjRf
dCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZ3JhbnRlZCk+PiBtX2RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwOworI2VuZGlmCisKICNpZiBF
TkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgdWludDY0
X3Q+IG1fYXBwbGljYXRpb25NYW5pZmVzdEZldGNoQ2FsbGJhY2tNYXA7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IGNiMGI1NzA5MzM2NGMwZTU1NDI0M2Y5MzA5YzM5MjVkNTQ4YWY0ZjAuLjdjZjFhZTU2
ZTFkYTRmMmJhZDRmNzQ2ZGQ5ZmJhNmY4YzgwY2VlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzY0LDYgKzM2
NCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICAjIE5vdGlm
aWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgRGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzRGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKQorI2VuZGlmCisK
ICAgICAjIFByaW50aW5nLgogICAgIEJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbykKICAgICBFbmRQcmludGluZygpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2ExNTVlODI5
MjZhZjE3NzQxOWVhMzUwNDRiMWYxOGU3MTUwZDZkYy4uNjNkMGZhYjMxNjA1M2EzMjUxYWRmNTVl
ODQ0NmQ5OTk1OTgxZDBkMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAzLTA2ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRh
dGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0
NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBoZWxwIHRlc3QgdGhlIERldmljZSBPcmllbnRhdGlv
biAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXVFI6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1
ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aGFuZGxlRGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRp
b246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0wMy0wNiAg
Um9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIENvbnNpZGVyIHN1cHBvcnRp
bmcgdGhlIGByZWZlcnJlcnBvbGljeWAgYXR0cmlidXRlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKaW5kZXggMGU3OWQ4MGI2MDFmMzI5NWU4YjgxNWJhMTAwOGI5OTdkMWI4MGM2Zi4uYzc3Nzg1
ZmNmMmQ1MTU3NGMwZmQ1ZjRmODZhZjczOTFjMTc4YjI2MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCkBAIC0xMDQsNiArMTA0LDkgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIGJv
b2xlYW4gaXNDb21tYW5kRW5hYmxlZChET01TdHJpbmcgbmFtZSk7CiAgICAgdW5zaWduZWQgbG9u
ZyB3aW5kb3dDb3VudCgpOwogCisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9uIE1vdGlvbi4KKyAg
ICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoYm9v
bGVhbiB2YWx1ZSk7CisKICAgICAvLyBTcGVjaWFsIERPTSB2YXJpYWJsZXMuCiAgICAgYXR0cmli
dXRlIGJvb2xlYW4gZ2xvYmFsRmxhZzsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZDQ2MjI0NmNkYjljMThmNzdj
ZTQ1ZDczMTM3MjgwNGE2NTFkZDMwMi4uOTBmYTdlYWY2MjdlODM2MjlmZDQ5NjkwNzZlZjNiZjdj
NGJkYTAyYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjk0LDYgKzEyOTQsMTMgQEAgdm9pZCBUZXN0UnVubmVy
OjpzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkKICAg
ICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFn
ZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzcyhib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNz
YWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0U2hvdWxk
QWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyIpKTsKKyAgICBXS1JldGFpblB0
cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZSh2YWx1
ZSkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0
b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgp
KTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCiB7CiAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyIpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggNzEzYTk0MzM2MzkwNWYwYzliNzYwZDU3NGFjOGYzMjRkOGQ1MTZmYy4uYWU3MDQ5ZGQ4MTEw
YjAyNmZjODNkN2U2NTc0NGMzNjhiNjBkYjEyNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM0OCw2ICszNDgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFibGVkKGJvb2wpOwogICAg
IHZvaWQgc2V0SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoYm9vbCk7CiAgICAgdm9pZCBzZXRT
aG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCk7CisgICAgdm9pZCBzZXRT
aG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGJvb2wpOwogCiAgICAg
Ym9vbCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3Q7IH0KICAgICB2b2lkIHNldERpZENhbmNlbENsaWVudFJlZGlyZWN0KGJv
b2wgdmFsdWUpIHsgbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA9IHZhbHVlOyB9CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDQ1NThiYTJjZjk1ZjM1ZWM4
YjYwMmM5ZDdhZDQ2MjljZDFmNGUxMjMuLmNmYjUyOTAzMWI4NWFhNGUyOWVhMjQyNWIzODA1N2E1
ZTY5M2M2NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0yNjIsNiArMjYyLDExIEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RQb2ludGVyTG9jayhXS1BhZ2VS
ZWYgcGFnZSwgY29uc3Qgdm9pZCopCiAgICAgV0tQYWdlRGlkQWxsb3dQb2ludGVyTG9jayhwYWdl
KTsKIH0KIAorc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2VzcyhXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2b2lk
KikKK3sKKyAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRsZURldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUmVxdWVzdChvcmlnaW4pOworfQorCiBXS1BhZ2VS
ZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNvbmZp
Z3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRp
b25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGlj
X2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwpA
QCAtNTcwLDggKzU3NSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRo
T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICByZXNldFByZWZlcmVuY2Vz
VG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMpOwogCiAgICAgcGxhdGZvcm1DcmVhdGVXZWJWaWV3
KGNvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50VjggcGFn
ZVVJQ2xpZW50ID0gewotICAgICAgICB7IDgsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBX
S1BhZ2VVSUNsaWVudFYxMyBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgMTMsIG1fbWFpbldl
YlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBA
IC02MzcsNyArNjQyLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRo
T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsCiAgICAgICAgIDAsIC8vIGZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZQogICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2ssCi0gICAgICAgIDAsCisgICAgICAg
IDAsIC8vIGRpZExvc2VQb2ludGVyTG9jaworICAgICAgICAwLCAvLyBoYW5kbGVBdXRvcGxheUV2
ZW50CisgICAgICAgIDAsIC8vIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlCisg
ICAgICAgIDAsIC8vIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVn
cm91bmQKKyAgICAgICAgMCwgLy8gZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRB
cHBlYXJhbmNlCisgICAgICAgIDAsIC8vIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybQorICAg
ICAgICBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzCiAgICAgfTsK
ICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJ
Q2xpZW50LmJhc2UpOwogCkBAIC05NDMsNiArOTU0LDggQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6
cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywg
UmUKIAogICAgIG1fc2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzID0gZmFsc2U7
CiAKKyAgICBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MgPSBm
YWxzZTsKKwogICAgIG1fd29ya1F1ZXVlTWFuYWdlci5jbGVhcldvcmtRdWV1ZSgpOwogCiAgICAg
bV9yZWplY3RzUHJvdGVjdGlvblNwYWNlQW5kQ29udGludWVGb3JBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZXMgPSBmYWxzZTsKQEAgLTI1NDgsNiArMjU2MSwxMiBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpoYW5kbGVDaGVja09mVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXS0ZyYW1lUmVmIGZy
YW1lLAogICAgIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrU2V0VXNlck1lZGlhQWNjZXNzSW5m
byhjaGVja1JlcXVlc3QsIHNhbHRTdHJpbmcuZ2V0KCksIHNldHRpbmdzRm9yT3JpZ2luKG9yaWdp
bkhhc2gpLnBlcnNpc3RlbnRQZXJtaXNzaW9uKCkpOwogfQogCitib29sIFRlc3RDb250cm9sbGVy
OjpoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1JlcXVlc3QoV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW4pCit7CisgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4
dChtYWtlU3RyaW5nKCJSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNz
IHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiBcIiIsIG9yaWdpblVzZXJWaXNpYmxlTmFtZShv
cmlnaW4pLCAiXCIuXG4iKSk7CisgICAgcmV0dXJuIG1fc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzczsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdp
blJlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3Qp
CiB7CiAgICAgYXV0byBvcmlnaW5IYXNoID0gdXNlck1lZGlhT3JpZ2luSGFzaCh1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMWQxM2I1NTIzNzM5MGI3NmZiOTJlMTBhZjkzNWQ3
OWYwYjYzMTBiNC4uZTNmMTZhNjM4Y2FiZTBmMjUwZjQ3MTZhMjc3YmE1NzBmZmFmZGIyNCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTUwLDYgKzE1MCw5IEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9y
T3JpZ2luKFdLU3RyaW5nUmVmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luU3RyaW5nLCBXS1N0cmlu
Z1JlZiB0b3BMZXZlbERvY3VtZW50T3JpZ2luU3RyaW5nKTsKICAgICB2b2lkIHJlc2V0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihXS1N0cmluZ1JlZiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpblN0
cmluZyk7CiAKKyAgICAvLyBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24uCisgICAgYm9vbCBo
YW5kbGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1JlcXVlc3QoV0tTZWN1cml0eU9y
aWdpblJlZik7CisKICAgICAvLyBDb250ZW50IEV4dGVuc2lvbnMuCiAgICAgdm9pZCBjb25maWd1
cmVDb250ZW50RXh0ZW5zaW9uRm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwogICAgIHZv
aWQgcmVzZXRDb250ZW50RXh0ZW5zaW9ucygpOwpAQCAtMTk5LDYgKzIwMiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogCiAgICAgdm9p
ZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkgeyBt
X3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IHZhbHVlOyB9CisgICAgdm9p
ZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGJvb2wgdmFs
dWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzID0gdmFs
dWU7IH0KIAogICAgIHZvaWQgc2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29sIHZhbHVlKTsKICAg
ICB2b2lkIHNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShXS1N0cmlu
Z1JlZiBob3N0TmFtZSk7CkBAIC01MDgsNiArNTEyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
cG9saWN5RGVsZWdhdGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fcG9saWN5RGVsZWdh
dGVQZXJtaXNzaXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkRG93bmxvYWRVbmRpc3Bs
YXlhYmxlTUlNRVR5cGVzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyB7IGZhbHNlIH07CiAKICAgICBib29sIG1fcmVqZWN0
c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIHsg
ZmFsc2UgfTsKICAgICBib29sIG1faGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7IGZh
bHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDY2
NjBjZGM5MjFmODk3Y2NlMmY3NzFkOGQ1M2E1YzI2ZjIxMjQ4ZjkuLjQ0MjE4YWE1MTQ3ODZmOGVl
MTEyYTk1ZTZmOGM1MTAxNTY4MWY2NmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCkBAIC03NDcsNiArNzQ3LDEzIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRp
ZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1l
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkp
ID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0g
c3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlJ1blVJUHJvY2Vzc1NjcmlwdCIpKSB7CiAgICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdl
Qm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5
KTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNjcmlwdEtleShBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2NyaXB0IikpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJmOGNlZDNi
ZjAyMDI2MWNlZWQ0MGQ3NGRlMmNhODNhMjI1OWRlYjYuLjU2MmU3YTlmNTE4OThlMTkzOGQwNDlh
MzdlOTMyYjU3N2E0ODM1NTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOS0wMy0wNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBE
ZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTMyOQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90
aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi1kZW5pZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1k
ZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1w
ZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVu
dHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3Vy
ZS1jb250ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50cy9kZXZp
Y2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWw6CisgICAgICAgICogcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9o
dHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29u
dGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZl
bnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0
OgorCiAyMDE5LTAzLTA2ICBKYXZpZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIEltcG9ydCBuZXcgdGVzdHMgZnJvbSB0aGUgQ1NTIFRleHQgMyBXUFQgdGVz
dCBzdWl0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNmU2ZTE4ZGE0ZWUxZThhMGIxNDZjYmM4MGNl
Zjk3ZDZjOGEyZDRmNS4uYzI3ODEyZWFkZGFkMWZiYjk3NDMzNWMzNzZiOGY5OGMzYWM1NzQ2YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMyw2ICszMyw3IEBAIGZhc3Qvem9vbWluZy9pb3MgWyBT
a2lwIF0KIGZhc3QvZm9ybXMvaW9zIFsgU2tpcCBdCiBmYXN0L3ZpZXdwb3J0L2lvcyBbIFNraXAg
XQogZmFzdC92aXN1YWwtdmlld3BvcnQvaW9zLyBbIFNraXAgXQorZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24gWyBTa2lwIF0KIGZhc3QvZXZlbnRzL2lvcyBbIFNraXAgXQogZmFzdC9ldmVudHMvd2F0
Y2hvcyBbIFNraXAgXQogZmFzdC9ldmVudHMvcG9pbnRlci9pb3MgWyBTa2lwIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ZDNlMWM5ODc0NDRlYjgyYjQ2NTg4ZmFkNjk4Njk3
YjY2N2M5MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogTm8gZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNz
aW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmll
bnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9u
IGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3
YXMgZGVuaWVkLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBl
cm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0
IGlzICJkZW5pZWQiCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9u
LWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBjZDBh
MmUxZmE0MjIzYmIxMjI4MWJiNDlmMjc4NzE2MjZmNWUwZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1w
ZXJtaXNzaW9uLWRlbmllZC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIERldmlj
ZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlz
dGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworaW50ZXJuYWxzLndpdGhVc2VyR2Vz
dHVyZSgoKSA9PiB7CisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50
aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOworCisgICAgICAgIGFkZEV2
ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworICAgICAgICBpbnRlcm5h
bHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICAgICAgICAgIERldmljZU1vdGlvbkV2ZW50
LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICAgICAgICAg
IHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZXN1bHQiLCAiZGVuaWVkIik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTMyMGEw
YzI0YTM0MmE5Yjk4YWFlNTU2YjZkN2Q2ZmU1NGVhNGJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3
aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFu
dGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0
IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2RjMTFlOWM4ZmE4NmZiZDVkMjY5MDE2ZmZmNDA4YjU1NGY5ZGFmYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApAQCAtMCwwICsxLDMyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNp
YyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOwor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1
ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworaW50
ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9y
ZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQi
KTsKKworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7
CisKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICAgICAg
ICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+
IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKyAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsK
K30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGNmNTc2Y2RmYjc1MDcwNjEzNzNmMWQyYmU4MjJmZmMy
ODI3ZTA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IE5vdEFs
bG93ZWRFcnJvcjogQ2FsbGluZyByZXF1ZXN0UGVybWlzc2lvbigpIHJlcXVpcmVzIGEgdXNlciBn
ZXN0dXJlCitUZXN0cyB0aGF0IERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkg
cmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGUubmFtZSBpcyAiTm90QWxsb3dlZEVycm9yIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVz
ZXItZ2VzdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2Q0NzFjNWQzMTkzZTFlNjU3MjU5MzE3N2FmZTg5NzQ1MWEyMGIzZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSByZXF1aXJlcyBhIHVzZXIg
Z2VzdHVyZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCisKK0RldmljZU1vdGlvbkV2ZW50
LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAgdGVzdEZhaWxlZCgi
cmVxdWVzdFBlcm1pc3Npb24gcHJvbWlzZSB3YXMgbm90IHJlamVjdGVkIik7Cit9LCAoX2UpID0+
IHsKKyAgICBlID0gX2U7CisgICAgY29uc29sZS5sb2coZSk7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJlLm5hbWUiLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAgZmluaXNoSlNUZXN0KCk7
Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2ZGRkNmZmMTQzYWM3ZTVjYjczZTk2NDVkZjM2NzE5NWJi
OGY3YWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZp
Y2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1p
c3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9y
aWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIu
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IE5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRp
b24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJ
IHdhcyBkZW5pZWQuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJl
cXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45MzhkNzNjZGMwMTg1MGMxNzc0MDhlOWJiMGRhYTM4MGVkOTFkYTNkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDMy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJC
YXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9u
KCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkg
PT4ge30pOworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZpY2VP
cmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4gewor
ICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlc3VsdCIsICJkZW5pZWQiKTsKKworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vv
cmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0
dXJlKCgpID0+IHsKKyAgICAgICAgICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBl
cm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
X3Jlc3VsdDsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIs
ICJkZW5pZWQiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTJlZTFh
ZmQ0MGU5ZDMzMjExZDFmZmRhNjE3YTg5YjM1NWJjODc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZl
bnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5k
IGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJl
cXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU9y
aWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQgaXMgImdy
YW50ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWdyYW50ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDFiYWRiZjBiMmU5OGY5YTJjYjM1MTAy
MDZjODcwOGU4YjJmNWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFu
dGVkLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRl
dmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJl
KCgpID0+IHsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
dGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisKKyAgICAgICAgYWRk
RXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICAgICAg
aW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICAgICAgICBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
dXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWI0MjZhMjllYWM3MTdhMjA1NzlmZjgxYzRlOWZk
ZDQ2YjgzNmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1
cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
NDogTm90QWxsb3dlZEVycm9yOiBDYWxsaW5nIHJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMg
YSB1c2VyIGdlc3R1cmUKK1Rlc3RzIHRoYXQgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0
UGVybWlzc2lvbigpIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBlLm5hbWUgaXMgIk5vdEFsbG93ZWRFcnJvciIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2Vy
LWdlc3R1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjY5OTJhZDQzNThkZDczYmNjOTUyYTcwODQ4MWU1
MmRkNmU1Y2YxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1
cmUuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IERldmljZU9yaWVudGF0aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKSByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS4iKTsKK2pzVGVzdElzQXN5
bmMgPSB0cnVlOworCisKK0RldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24o
KS50aGVuKChyZXN1bHQpID0+IHsKKyAgICB0ZXN0RmFpbGVkKCJyZXF1ZXN0UGVybWlzc2lvbiBw
cm9taXNlIHdhcyBub3QgcmVqZWN0ZWQiKTsKK30sIChfZSkgPT4geworICAgIGUgPSBfZTsKKyAg
ICBjb25zb2xlLmxvZyhlKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImUubmFtZSIsICJO
b3RBbGxvd2VkRXJyb3IiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50
cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24t
c2VjdXJlLWNvbnRleHQuaHRtbAppbmRleCBlZDJkZDIwMzc3YzU3MzY1ZTFhNWY3ZmZjNTI1NGY3
MjdkNzFiNWRjLi4zOGYyZDQyMDA5ZTkzYzRhOTM5MzIzZDcyMDM5NmQ5MWQ2NWU2ZDQ0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24t
bW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0
bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gcnVuRGV2aWNlTW90aW9uVGVzdCgpCiAgICAg
ZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2
ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKICAgICBpbnRlcm5h
bHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RD
b25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBv
ciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5v
dCBzZWN1cmUuIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVN
ZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVu
dGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNl
Y3VyZS4iKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfSk7CiB9CkBAIC00NCw3ICs0
NCw3IEBAIGZ1bmN0aW9uIHJ1bkRldmljZU9yaWVudGF0aW9uVGVzdCgpCiAgICAgZGVidWcoIiog
UmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CiAgICAgYWRkRXZlbnRM
aXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCBmdW5jdGlvbigpIHsgfSk7CiAgICAgaW50ZXJu
YWxzLnBvc3RUYXNrKCgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0
Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBu
b3Qgc2VjdXJlLiIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RDb25zb2xl
TWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmll
bnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBz
ZWN1cmUuIik7CiAgICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3QoKTsKICAgICB9KTsKIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlv
bi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBl
Y3RlZC50eHQKaW5kZXggMGZiN2Q3ZWJmMmQ4NDJkN2JiNzM0YWE4NDMzMThkODk2ODBkNDM0Ni4u
YmVmZjhmNmYwYWI3ZmRjMTRkMjE1NjU3OWQxZGViYTE4ZTFmODQwNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1
cmUtY29udGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVu
dHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQK
QEAgLTEsMTAgKzEsMTEgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzNzogRGV2aWNlIE9yaWVu
dGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IERl
dmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0
ODogRGV2aWNlIE9yaWVudGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMjU6IERldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKIFRlc3RzIHRo
YXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24g
YW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29u
dGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCisKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29u
dGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0
aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IDRlNTRkMTFkOTk0MWU3NThlMDI3
NTBiODZkNDNlMzJiYzk0MzNlZWUuLmYxMWFjMmZkNTgzNjUyMDAwOWQ5NmNhZTFmNWZhMGI4Mzdm
YWIxZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1v
cmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0
Lmh0bWwKQEAgLTYsNiArNiwxMSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdHJ5aW5nIHRv
IHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9y
aWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuIik7CiBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgaWYg
KHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cykKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKHRydWUpOworfQorCiAvLyBsb2NhbGhvc3QgaXMgc2VjdXJlIGJ5IGRlZmF1
bHQuCiAKIGxldCBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOwpAQCAtMTUsMTkgKzIwLDI3IEBA
IGludGVybmFscy5zZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKChtZXNzYWdlKSA9PiB7CiAKIGZ1
bmN0aW9uIHJ1bkRldmljZU1vdGlvblRlc3QoKQogeworICAgIGRlYnVnKCIiKTsKICAgICBpZiAo
IXdpbmRvdy5EZXZpY2VNb3Rpb25FdmVudCkgewogICAgICAgICBjb25zb2xlLmxvZygiRGV2aWNl
IE1vdGlvbiBBUEkgaXMgbm90IHN1cHBvcnRlZCIpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGxhc3RDb25zb2xlTWVzc2FnZSA9IG51bGw7
Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rpb24g
bGlzdGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCBmdW5jdGlv
bigpIHsgfSk7Ci0gICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKLSAgICAgICAgc2hvdWxk
QmVOdWxsKCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2UgbW90aW9uIGFjY2Vzcy4uLiIpOworICAgIGlu
dGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICBEZXZpY2VNb3Rpb25FdmVu
dC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgICAgIHJl
c3VsdCA9IF9yZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3Vs
dCIsICJncmFudGVkIik7CisKKyAgICAgICAgICAgIGxhc3RDb25zb2xlTWVzc2FnZSA9IG51bGw7
CisgICAgICAgICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVy
Iik7CisgICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCBmdW5jdGlv
bigpIHsgfSk7CisgICAgICAgICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4geworICAgICAg
ICAgICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNzYWdlIik7CisgICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CiAgICAg
fSk7CiB9CiAKQEAgLTM5LDEyICs1MiwyMCBAQCBmdW5jdGlvbiBydW5EZXZpY2VPcmllbnRhdGlv
blRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdl
ID0gbnVsbDsKLSAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlz
dGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0
aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91
bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBydW5EZXZpY2VNb3Rpb25U
ZXN0KCk7CisgICAgZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNz
Li4uIik7CisgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICAgIERl
dmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9
PiB7CisgICAgICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgICAgICAgICBsYXN0Q29u
c29sZU1lc3NhZ2UgPSBudWxsOworICAgICAgICAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2
aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CisgICAgICAgICAgICBhZGRFdmVudExpc3RlbmVy
KCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKKyAgICAgICAgICAgIGludGVy
bmFscy5wb3N0VGFzaygoKSA9PiB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVOdWxsKCJsYXN0
Q29uc29sZU1lc3NhZ2UiKTsKKyAgICAgICAgICAgICAgICBydW5EZXZpY2VNb3Rpb25UZXN0KCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2OWM4Mzg0ZTJjODE4
NjUyZjA0NWFjZjQ5NTU0Y2I2MmUyNzllZWFiLi4wYjhlODRkODA2OTc2NTlhNTQwOGVjYTA3Yjgw
Yjg1NTMxMzc4MDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCkBAIC03LDYgKzcsNyBAQAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogCiBjb21wb3NpdGluZy9pb3MgWyBQYXNzIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
IFsgUGFzcyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3Mg
WyBQYXNzIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1v
dGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNl
Y3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA4Njc3OWFmNDY1MTExMWIxODcxNWE1M2U3
YjExZTNiMTFiOTczYTExLi43ODI3YWJjMmVkYzI4NmMxYzY3ODFjNDkxOWU0OGRiZGE1OTkyYzk1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMv
ZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Ut
b3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEs
MTUgKzEsMTUgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NTogQmxvY2tlZCBhdHRlbXB0IHRv
IGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUg
YnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4
OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBs
aXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNDU6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90
aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRl
eHQgaXMgbm90IHNlY3VyZS4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyODogQmxvY2tlZCBhdHRl
bXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIs
IHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgogVGVzdHMgdGhhdCB0cnlp
bmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2
aWNlb3JpZW50YXRpb24gbG9ncyBhbiBlcnJvciBpbiBub24tc2VjdXJlIGNvbnRleHRzLgogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAogKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50
YXRpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVt
cHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNl
IHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29sZU1l
c3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVu
dGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNl
Y3VyZS4iCiAKICogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lcgotUEFTUyBsYXN0
Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9u
IG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMg
bm90IHNlY3VyZS4iCitQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyAiQmxvY2tlZCBhdHRlbXB0
IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJl
YXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24t
c2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0
dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQt
ZXhwZWN0ZWQudHh0CmluZGV4IDMxYjg1ZjVkN2Q0NWYzN2Y5ZDZiMTY1ZjY3MzdkZmU1OTIyZWRm
NWMuLjQ0ZmMxOGY4OTllMzI5MzQ1N2QwOGJjYTNmZDY2YjJiOTA2Y2FjMDMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50
YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlv
bi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTYgQEAKK1JlY2VpdmVk
IGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLgogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0
IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50
YXRpb24gZG9lcyBub3QgbG9nIGFuIGVycm9yIGluIHNlY3VyZSBjb250ZXh0cy4KIAogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgogCiAKKyogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24g
YWNjZXNzLi4uCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKICogUmVnaXN0ZXJpbmcgZGV2aWNl
IG9yaWVudGF0aW9uIGxpc3RlbmVyCiBQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyBudWxsCiAK
KyogUmVxdWVzdGluZyBkZXZpY2UgbW90aW9uIGFjY2Vzcy4uLgorUEFTUyByZXN1bHQgaXMgImdy
YW50ZWQiCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVuZXIKIFBBU1MgbGFzdENv
bnNvbGVNZXNzYWdlIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363890</attachid>
            <date>2019-03-07 10:04:17 -0800</date>
            <delta_ts>2019-03-07 14:37:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190307100416.patch</filename>
            <type>text/plain</type>
            <size>110634</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZkNWQxNmQwNDRhNTk5
ZWVkYzZjNjJkNmMyOGNmNTYwNTc2Y2QyMi4uNWRlYmJkODZhYjExMWZkMWI5NDc2ZTliMDQ4MTQw
Njg4MjZiZWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkV2ZW50Lmg6CisgICAgICAg
ICogZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbDoK
KyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQ6OnJlcXVl
c3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50Lmg6CisgICAgICAgICogZG9tL01pY3JvdGFza3MuY3BwOgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGV2aWNlTW90aW9uQ29udHJvbGxlciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50
YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppc0FsbG93ZWRUb0Fk
ZERldmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3Nh
cnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNl
T3JpZW50YXRpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN0
YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9EZXZpY2VDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6Omhhc0RldmljZUV2ZW50TGlz
dGVuZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5oOgorICAgICAg
ICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoKKwogMjAxOS0wMy0wNiAgUm9iIEJ1aXMgIDxyYnVpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIENvbnNpZGVyIHN1cHBvcnRpbmcgdGhlIGByZWZlcnJlcnBv
bGljeWAgYXR0cmlidXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4ZTljZDNmMTgyOTI2OGZmZjY5NjIwZTIyNGVk
MzM4M2UzMTFmMDA0Li5jMGQwNGJjYWE4YTFjNzgxNjYzODk1YzJkZWNiODZhYjNjOGE5ZTkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTAzLTA2ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlv
biAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0NTM2
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJOgor
ICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3JpZW50YXRpb24vaXNzdWVz
LzU3CisKKyAgICAgICAgVGhpcyBhZGRzIG5ldyBTUEkgdG8gV0tVSURlbGVnYXRlUHJpdmF0ZSwg
dW50aWwgd2UgY2FuIG1ha2UgdGhpcyBBUEkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAg
KFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpz
ZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bmV4dERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzRGVjaXNpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIw
MTktMDMtMDYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBDb25zaWRl
ciBzdXBwb3J0aW5nIHRoZSBgcmVmZXJyZXJwb2xpY3lgIGF0dHJpYnV0ZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNjAxMjRmYzFjZGUxN2E0MDk5OTFhYWYwNmFkZjdiMzM5ZDdiOGUzOC4uNzA1
N2U3OTFhOGNlZDc0NmFiNGI3YzAyZTVjMzI2OTM0ZGY5NTBkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTY2OSw2ICs2NjksOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQu
aWRsCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCisgICAgZG9tL0RldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKKyAgICBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZS5pZGwKICAgICBkb20vRG9jdW1lbnQuaWRsCiAgICAgZG9tL0Rv
Y3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCiAgICAgZG9tL0RvY3VtZW50RnJhZ21l
bnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAppbmRleCAyNTVhYjQ0ZDZlYjVkMjU0NGY0ZjU5NWE3NGM2NWE0M2RkN2Q4ZDYzLi41YmJlOGEz
ZTlkOGJmMTQ0NGM5MWI4YjcxMjE4NWNjNTBjZmZmMmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTU1OSw2ICs1NTksOCBAQCAkKFBS
T0pFQ1RfRElSKS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9E
YXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbAor
JChQUk9KRUNUX0RJUikvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwKKyQo
UFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmlkbAogJChQUk9KRUNUX0RJUikvZG9tL0RvY3VtZW50LmlkbAogJChQUk9KRUNUX0RJUikvZG9t
L0RvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20v
RG9jdW1lbnRGcmFnbWVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYjVmMDIyZGI2YmMzOGM4NzA1Mzc2ZDM1ZGMwYWUwZjUy
NWY5ZTFlNC4uMmI0ZDZhMzAwOGRkNDAxNTI2ODdjNzE2ZDlkODZhNWRjM2E1MzdhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTQ1
OSw2ICs0NTksMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNEZXZpY2VNb3Rpb25FdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRGV2aWNlTW90aW9uRXZlbnQuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
RXZlbnQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRG9jdW1lbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVycy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDA2Njg3OTI2NTkyODRkYTc0Y2Q2OTlkOTg2
YTUwNTFmNjQ0YmQ2YWEuLjM2MWJkZjRjOWYwY2IwMzgwYTZlNDUxMzI3MjVmNWY4YzM5YTY3ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTY5LDYgKzU2OSw4IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2RvbS9Eb2N1bWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0RvY3VtZW50
QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Eb2N1bWVu
dEZyYWdtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGI1NzVlNjhiZmZiYWJhZTkyMTY1MGQ0
YTliZjZjNDI1MzFhMWQ3OTYuLmU0MjFlNDJlM2ZhNDM5OTcyY2RjYjc3MzE5MDNmODYxZWU5N2Mz
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04MjEsNiArODIxLDcgQEAgZG9tL0RldmljZU1vdGlvbkV2
ZW50LmNwcAogZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkRhdGEuY3BwCiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKK2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBkb20vRG9jdW1lbnQuY3BwCiBkb20v
RG9jdW1lbnRFdmVudFF1ZXVlLmNwcAogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC0yNzE5
LDYgKzI3MjAsOCBAQCBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAogSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QuY3BwCiBKU0RldmljZU1vdGlvbkV2ZW50LmNwcAogSlNEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcAorSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmNwcAorSlNEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCiBKU0RvY3VtZW50LmNw
cAogSlNEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmNwcAogSlNEb2N1bWVudEZyYWdt
ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDhmMDkwOWIwM2UwMzUzZDQwOTgwYWQxNjRkY2M2MTkyYzViYzUyYTkuLjFl
NjhjMzA5MGNmMmQxZTEwZTIwM2ZkNGNmNjgzZDQ4ZGZlYWE1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTIsNiArMTI1
Miw4IEBACiAJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NUZFQTVDRTE1NkRERThDMDA2
NTQxMDEgLyogRGVjaW1hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQ2MEJCNjE2MUQwQTFCRjAwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEJCNjE0
MUQwQTFCRUMwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjBDQkYzNjFENEJDRDBFMDA5MkU4OEUg
LyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzNDFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQ
cm9wZXJ0aWVzLmggKi87IH07CisJCTQ2MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQuaCAqLzsgfTsKKwkJNDYwRTMwNzcyMjJGNEYwMzAwOUEwNjA2IC8q
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUVERDlGMjIyRjRFQzMwMEI0NkUx
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi87IH07CiAJ
CTQ2MjE4QUNCMUY3MkQ2NEUwMDU3NEZCRSAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkUwMTZBRDFGNzJENjFF
MDAyODJCMkMgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBX
aW5kb3dQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAw
OTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9u
LmggKi87IH07CkBAIC03NzIwLDYgKzc3MjIsOCBAQAogCQk0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4
OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NV2luZG93UHJvcGVydGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2MENCRjM0MUQ0QkNDRkUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3Bl
cnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01XaW5kb3dQcm9w
ZXJ0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MEQxOTQ0MUZDRTIxREQw
MEMzREI4NSAvKiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MURBNTJBMjIyRjQ4NkYw
MEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2Vy
T2JzZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG93
ZXJPYnNlcnZlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MzUyMUFB
MjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXaW5kb3dQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NjM1MjFBQzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2luZG93UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzcyNyw2ICs3NzMxLDkgQEAKIAkJNDYzRUI2MjExQjg3ODlDQjAwOTZF
RDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjQyNDA0NTIw
RUFGMEVEMDBCMjlGRDIgLyogRGF0YWJhc2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQ2NUVERDlEMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUVERDlGMjIyRjRFQzMw
MEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RUREQTAy
MjJGNEVDNDAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZEQzZB
QjFFREUwMjFEMDA3NDYyMjQgLyogSlNET01SZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVJlY3RMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDY2RUQ4RDIxRURFMDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01SZWN0TGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyogQ2FudmFz
UGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNQYXRo
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NDc2LDYgKzI3NDgzLDExIEBA
CiAJCQkJNTlBODVFQTExMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwICovLAogCQkJCTU5QTg1RUEzMTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmggKi8sCiAJCQkJNTlBODVFQUExMTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVu
dGF0aW9uRXZlbnQuaWRsICovLAorCQkJCTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwICovLAorCQkJCTQ2MURBNTJBMjIyRjQ4NkYw
MEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAqLywKKwkJCQk0NjVF
REQ5RDIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmlk
bCAqLywKKwkJCQk0NjVFREQ5RjIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oICovLAorCQkJCTQ2NUVEREEwMjIyRjRFQzQwMEI0NkUx
NiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCAqLywKIAkJ
CQlBODE4NUYzNDA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuY3BwICovLAogCQkJCUE4MTg1
RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlFMUUw
NEQwMEFGODAyMCAvKiBEb2N1bWVudC5pZGwgKi8sCkBAIC0yOTAwNiw2ICsyOTAxOCw4IEBACiAJ
CQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0IC8qIERldmlj
ZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODVFQTQxMTlENjhFQzAw
REVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2
MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NzJCNDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTcyQjQwM0EyMTc3MjU4MTAwMEFENDNFIC8qIERldmljZVJlc3BvbnNl
Q29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjc3MjVGRDFBNUIzQUQ5MDAzQzI0REQg
LyogREZBLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VNb3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50
LmgKaW5kZXggM2VjYzViZDRjMGM3ZWVjMThlOWZiOGU0MTU2ZjE4YmYzZWY0NTMzZC4uNTFkNzFh
MGU3Y2Q3ODQzZDE1ODJiMDM5Y2NlMjNhODI3MjUzZTlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkV2ZW50LmgKQEAgLTI1LDEzICsyNSwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsK
IAotY2xhc3MgRGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworY2xhc3Mg
RGV2aWNlTW90aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uRXZlbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkRldmljZU1vdGlv
bkV2ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCmluZGV4
IGYyZjVkZjIwZmNlNTNiYzEzYjVhYmU2ZDQxOGUyMGJkNWE0ZmQzODYuLjI3ZjJjNTU3MjExZDVk
MGU0ZjUyNGI2NmQ5MWRkNDg0Mjc3ZGMyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkV2ZW50LmlkbApAQCAtNTcsMyArNTcsNSBAQAogICAgIGRvdWJsZT8gYmV0YTsKICAgICBk
b3VibGU/IGdhbW1hOwogfTsKKworRGV2aWNlTW90aW9uRXZlbnQgaW1wbGVtZW50cyBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uRXZlbnQuaAppbmRleCAwMjViMmUzMmE3NTFlNDJmNjUwYmI1M2I1MTVhMTBiZGI1Mjdm
NDc4Li42Mjg3MDhiNmU4NGI1MjYxOGU5NjgzY2Q2Y2RlNjdmM2ZhMTE2OGYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgKQEAgLTI1LDEzICsyNSwxNCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uRXZlbnQgZmlu
YWwgOiBwdWJsaWMgRXZlbnQsIHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQg
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGV2aWNlT3JpZW50YXRpb25FdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIG9y
aWVudGF0aW9uKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmlkbAppbmRleCAxM2ZmN2JhZGMwZTU5MTE2NjM1OTVkMTVkMTFkYmQ2MGEzMzM5ZmRi
Li43ZjM1ZjEwZDE5MTdhNzU0Zjg2MDFiOGFhZTBiOWVkNzE5ODJhYTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCkBAIC01NSwzICs1NSw0IEBA
CiAjZW5kaWYKIH07CiAKK0RldmljZU9yaWVudGF0aW9uRXZlbnQgaW1wbGVtZW50cyBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2ZDk1Nzc1NGU5
NjVmMDE5Y2JhMDAzMDVjOTE0MzU4YjJkM2NmYjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcApAQCAtMCwwICsx
LDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvbkV2ZW50LmgiCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50OjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYg
ZG9jdW1lbnQsIFBlcm1pc3Npb25Qcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvKiB3aW5k
b3cgPSBkb2N1bWVudC5kb21XaW5kb3coKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFn
ZSgpOworICAgIGlmICghd2luZG93IHx8ICFwYWdlKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBicm93c2luZyBjb250ZXh0
Il9zIH0pOworCisgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKCkpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RB
bGxvd2VkRXJyb3IsICJDYWxsaW5nIHJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2Vy
IGdlc3R1cmUiX3MgfSk7CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghd2lu
ZG93LT5pc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2FnZSkp
IHsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1ZXN0UGVybWlz
c2lvbigpIGZhaWxlZCwgcmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOworICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisK
KyAgICBpZiAoYXV0byBwZXJtaXNzaW9uU3RhdGUgPSBkb2N1bWVudC5kZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc1N0YXRlKCkpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUo
KnBlcm1pc3Npb25TdGF0ZSA/IFBlcm1pc3Npb25TdGF0ZTo6R3JhbnRlZCA6IFBlcm1pc3Npb25T
dGF0ZTo6RGVuaWVkKTsKKworICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZG9jdW1lbnQudG9wT3JpZ2luKCksIFtk
b2N1bWVudCA9IG1ha2VXZWFrUHRyKGRvY3VtZW50KSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChkb2N1bWVudCkKKyAgICAg
ICAgICAgIGRvY3VtZW50LT5zZXREZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRl
KGdyYW50ZWQpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoZ3JhbnRlZCA/IFBlcm1pc3Npb25T
dGF0ZTo6R3JhbnRlZCA6IFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9KTsKK30KKyNl
bmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJhZTY4MWYz
OGY5ZDg5ZTdiMDdkN2EyNDRiZjZmNzM1N2Y4NmY4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaApAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZl
cnJlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQgeworcHVibGljOgorCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICB1c2luZyBQZXJtaXNzaW9uU3RhdGUgPSBEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlOworICAgIHVzaW5nIFBlcm1pc3Npb25Q
cm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEVudW1lcmF0aW9uPFBlcm1pc3Npb25TdGF0
ZT4+OworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiwgUGVybWlz
c2lvblByb21pc2UmJik7CisjZW5kaWYKKworcHJvdGVjdGVkOgorICAgIERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25FdmVudCgpID0gZGVmYXVsdDsKKyAgICB+RGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvbkV2ZW50KCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ODMxYTQ2NWYwYjc2YmIyNWE4MDU4NzFhYzJmNTZlNzI3MjBlZTc5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25FdmVudC5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRp
dGlvbmFsPURFVklDRV9PUklFTlRBVElPTiwKKyAgICBOb0ludGVyZmFjZU9iamVjdAorXSBpbnRl
cmZhY2UgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKKyAgICBbQ2FsbFdpdGg9RG9j
dW1lbnQsIEVuYWJsZWRCeVNldHRpbmc9RGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJXSBz
dGF0aWMgUHJvbWlzZTxEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlPiBy
ZXF1ZXN0UGVybWlzc2lvbigpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRkNjVlZGJhNTYwYTMyZjlhNjIwMTJiZGRkZjJlMzU2NWNjYjVmOGYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZS5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZSB7IEdyYW50ZWQsIERlbmllZCB9OworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE4MTQwMzAxZWZkNjFmNGYzMTI1NjdkNTk0ODM0
ODg4ZTVjODMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbApAQCAtMCwwICsxLDI2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitlbnVtIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgeyAi
Z3JhbnRlZCIsICJkZW5pZWQiIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxNDI5Mjc4
NmNjOGVmZWVmNWIxYTJmYzE1ZGM3MTBiZmVjMWMzMTEwLi5iZjhhNDZiMTQ1ZTA3M2VmOTQxMmUw
NTM1NzQzYWUyMmUyYjU1YjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTg2MzgsNiAr
ODYzOCwzNiBAQCB2b2lkIERvY3VtZW50OjpmcmFtZVdhc0Rpc2Nvbm5lY3RlZEZyb21Pd25lcigp
CiAgICAgZGV0YWNoRnJvbUZyYW1lKCk7CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorCitjb25zdCBPcHRpb25hbDxib29sPiYgRG9jdW1lbnQ6OmRldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzU3RhdGUoKSBjb25zdAoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAh
PSB0aGlzKQorICAgICAgICByZXR1cm4gdG9wRG9jdW1lbnQoKS5kZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc1N0YXRlKCk7CisKKyAgICByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc1N0YXRlOworfQorCit2b2lkIERvY3VtZW50OjpzZXREZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlKGJvb2wgZ3JhbnRlZCkKK3sKKyAgICBpZiAoJnRvcERv
Y3VtZW50KCkgIT0gdGhpcykgeworICAgICAgICB0b3BEb2N1bWVudCgpLnNldERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoZ3JhbnRlZCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUgPSBncmFu
dGVkOworCisgICAgaWYgKCFncmFudGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1
dG8qIGZyYW1lID0gbV9mcmFtZTsgZnJhbWUgJiYgZnJhbWUtPndpbmRvdygpOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KG1fZnJhbWUpKSB7CisgICAgICAgIGZyYW1lLT53aW5k
b3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7Cisg
ICAgICAgIGZyYW1lLT53aW5kb3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5l
Y2Vzc2FyeSgpOworICAgIH0KK30KKworI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1BBSU5USU5H
X0FQSSkKIFdvcmtsZXQmIERvY3VtZW50OjplbnN1cmVQYWludFdvcmtsZXQoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCA3NzhjMjEzM2M1NDM1N2RkNjc3MTk5ZGY3MTk0MTdiM2VkZTkzMTFh
Li4yYjJjM2M4Y2JjN2U0NzM0ZjdlYzNhYWM3MjllM2ViZDViYjE3NzdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMTIxNCwxMiArMTIxNCwxNyBAQCBwdWJsaWM6CiAjaW5jbHVkZSA8V2ViS2l0
QWRkaXRpb25zL0RvY3VtZW50SU9TLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIERldmljZU1vdGlvbkNvbnRy
b2xsZXImIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKICAgICBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXImIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2ltdWxhdGVEZXZpY2VPcmllbnRhdGlvbkNoYW5nZShkb3Vi
bGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEpOwogI2VuZGlmCiAKKyAgICBjb25z
dCBPcHRpb25hbDxib29sPiYgZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSgp
IGNvbnN0OworICAgIHZvaWQgc2V0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0
ZShib29sIGdyYW50ZWQpOworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisK
ICAgICBjb25zdCBEb2N1bWVudFRpbWluZyYgdGltaW5nKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1
bWVudFRpbWluZzsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIG1vbm90b25pY1RpbWVz
dGFtcCgpIGNvbnN0OwpAQCAtMTgzMSw2ICsxODM2LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2FyZUZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbiB7IGZhbHNlIH07CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgT3B0aW9uYWw8Ym9vbD4gbV9kZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRlOworI2VuZGlmCisKICAgICBIYXNoU2V0PEhUTUxQ
aWN0dXJlRWxlbWVudCo+IG1fdmlld3BvcnREZXBlbmRlbnRQaWN0dXJlczsKICAgICBIYXNoU2V0
PEhUTUxQaWN0dXJlRWxlbWVudCo+IG1fYXBwZWFyYW5jZURlcGVuZGVudFBpY3R1cmVzOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWljcm90YXNrcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWljcm90YXNrcy5jcHAKaW5kZXggMjVhNDdhNjgzOTVlODI1ZjFiMGQ2MTZiOTcx
MGEzZTZiYjVkNzhhYi4uMmNjY2YwYjIyYzA3NzQyMTcwMWIxYzZmMTY2OWYyOTBhZjlkZGIyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01pY3JvdGFza3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIk1pY3JvdGFza3MuaCIKIAorI2luY2x1ZGUgIldvcmtlckds
b2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDNhMGRjM2JiMDNkY2Q3MGJlOTRlZjRiOTg2MjFkOTc5
NTYwZTdlYmEuLjQ3ZTNjNWFhNzQ4NWNmNTFkNjNlYjAzNTlmZWIxMTUwNzFiNWNiNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNDgyLDYgKzQ4MiwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgLypzdWJGcmFtZUhvc3Qq
LywgU3RyaW5nJiYgLyp0b3BGcmFtZUhvc3QqLywgdWludDY0X3QgLypmcmFtZUlEKi8sIHVpbnQ2
NF90IC8qcGFnZUlEKi8sIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2Fs
bGJhY2spIHsgY2FsbGJhY2soZmFsc2UpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN0cmluZyYmIC8qc3ViRnJhbWVIb3N0Ki8sIFN0cmluZyYmIC8qdG9wRnJhbWVI
b3N0Ki8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCB1aW50NjRfdCAvKnBhZ2VJRCovLCBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQgKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKGZhbHNl
KTsgfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFsIHZvaWQg
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhjb25zdCBTZWN1cml0
eU9yaWdpbiYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykg
eyBjYWxsYmFjayh0cnVlKTsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zZXJ0
TWVudUVsZW1lbnQoSFRNTE1lbnVFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
bW92ZU1lbnVFbGVtZW50KEhUTUxNZW51RWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBk
aWRJbnNlcnRNZW51SXRlbUVsZW1lbnQoSFRNTE1lbnVJdGVtRWxlbWVudCYpIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGRmYTExMjQ4NGEzYTQ3N2UzZGMwMjJhMzRjYTM0ZGYz
ZmZhOTNlMzIuLjFjYTM4YjEwYzNlMmE4MmZlZTE3NjIwZTA1YmFjY2I4YWY2Yjk3N2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE4MjYsNTAgKzE4MjYsMTM0IEBAIGJvb2wgRE9N
V2luZG93OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBS
ZWY8RXZlbnRMaXN0ZW5lCiAgICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzR2FtZXBhZEV2ZW50
VHlwZShldmVudFR5cGUpKQogICAgICAgICBpbmNyZW1lbnRHYW1lcGFkRXZlbnRMaXN0ZW5lckNv
dW50KCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGVsc2Ug
aWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkKKyAg
ICAgICAgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7Cisg
ICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkK
KyAgICAgICAgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2Vu
ZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCi0gICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRh
dGlvbkV2ZW50RW5hYmxlZCgpICYmIGRvY3VtZW50KCkgJiYgZG9jdW1lbnQoKS0+bG9hZGVyKCkg
JiYgZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkp
IHsKKworRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBET01XaW5kb3c6OmRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcigpIGNvbnN0Cit7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICAgICAgaWYgKChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50IHx8
IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkpIHsKLSAg
ICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkgJiYgaXNTZWN1
cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dCgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS5hZGREZXZpY2VFdmVudExpc3RlbmVy
KCp0aGlzKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50KCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0
aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQoKSkgewotICAgICAgICAgICAg
ICAgIGlmIChpc1NlY3VyZUNvbnRleHQoKSkKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQo
KS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2Fy
bmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0
aW9uIGxpc3RlbmVyIGZyb20gY2hpbGQgZnJhbWUgdGhhdCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJp
dHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UuIl9zKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRk
IGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93
c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIl9zKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQorICAgIHJldHVybiBkb2N1bWVudCgpID8gJmRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcigpIDogbnVsbHB0cjsKICNlbHNlCi0gICAgICAgIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSB7Ci0gICAgICAgICAgICBpZiAoaXNTYW1l
U2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpICYmIGlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkJsb2NrZWQgYXR0ZW1wdCB0byBh
ZGQgYSBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIGZyb20gY2hpbGQgZnJhbWUgdGhhdCB3YXNuJ3Qg
dGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2luIGFzIHRoZSBtYWluIHBhZ2UuIl9zKTsKLSAgICAgICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZl
bnQpIHsKLSAgICAgICAgICAgIGlmIChpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkg
JiYgaXNTZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXItPmFkZERldmlj
ZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBpZiAoaXNTZWN1cmVDb250ZXh0KCkpCi0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldh
cm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3Rl
bmVyIGZyb20gY2hpbGQgZnJhbWUgdGhhdCB3YXNuJ3QgdGhlIHNhbWUgc2VjdXJpdHkgb3JpZ2lu
IGFzIHRoZSBtYWluIHBhZ2UuIl9zKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250
ZXh0IGlzIG5vdCBzZWN1cmUuIl9zKTsKLSAgICAgICAgICAgIH0KKyAgICByZXR1cm4gRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSk7CisjZW5kaWYKK30KKworRGV2aWNl
TW90aW9uQ29udHJvbGxlciogRE9NV2luZG93OjpkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29u
c3QKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHJldHVybiBkb2N1bWVudCgpID8g
JmRvY3VtZW50KCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSA6IG51bGxwdHI7CisjZWxzZQor
ICAgIHJldHVybiBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSk7CisjZW5kaWYK
K30KKworYm9vbCBET01XaW5kb3c6OmlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRp
b24oU3RyaW5nJiBtZXNzYWdlKSBjb25zdAoreworICAgIGlmICghZnJhbWUoKSB8fCAhZnJhbWUo
KS0+c2V0dGluZ3MoKS5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpIHx8ICFkb2N1bWVu
dCgpIHx8ICFkb2N1bWVudCgpLT5sb2FkZXIoKSB8fCAhZG9jdW1lbnQoKS0+bG9hZGVyKCktPmRl
dmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkKCkpIHsKKyAgICAgICAgbWVzc2FnZSA9ICJBUEkg
aXMgZGlzYWJsZWQiX3M7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAo
IWlzU2VjdXJlQ29udGV4dCgpKSB7CisgICAgICAgIG1lc3NhZ2UgPSAiQnJvd3NpbmcgY29udGV4
dCBpcyBub3Qgc2VjdXJlIl9zOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
aWYgKCFpc1NhbWVTZWN1cml0eU9yaWdpbkFzTWFpbkZyYW1lKCkpIHsKKyAgICAgICAgbWVzc2Fn
ZSA9ICJTb3VyY2UgZnJhbWUgZGlkIG5vdCBoYXZlIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBh
cyB0aGUgbWFpbiBwYWdlIl9zOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIERPTVdpbmRvdzo6aXNBbGxvd2VkVG9BZGREZXZpY2VNb3Rp
b25PcmllbnRhdGlvbkxpc3RlbmVyKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBTdHJp
bmcgaW5uZXJNZXNzYWdlOworICAgIGlmICghaXNBbGxvd2VkVG9Vc2VEZXZpY2VNb3Rpb25Pcmll
bnRhdGlvbihpbm5lck1lc3NhZ2UpKSB7CisgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJC
bG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVu
dCBsaXN0ZW5lciwgcmVhc29uOiAiLCBpbm5lck1lc3NhZ2UsICIuIik7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoZnJhbWUoKS0+c2V0dGluZ3MoKS5kZXZpY2VPcmll
bnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKCkpIHsKKyAgICAgICAgYXV0byBwZXJtaXNzaW9u
U3RhdGUgPSBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1N0YXRl
KCk7CisgICAgICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgJiYgISpwZXJtaXNzaW9uU3RhdGUpIHsK
KyAgICAgICAgICAgIG1lc3NhZ2UgPSAiTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBl
dmVudHMgd2lsbCBiZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2Fz
IGRlbmllZC4iX3M7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KLSNlbmRp
ZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2
ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkKLSAgICAgICAgZmFpbGVkVG9SZWdpc3RlckRl
dmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKLSNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorICAgICAgICBpZiAoIXBlcm1pc3Npb25TdGF0ZSkgeworICAgICAgICAgICAgbWVz
c2FnZSA9ICJObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZp
cmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLiJfczsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHJldHVy
biB0cnVlOwogfQogCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgRE9NV2lu
ZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQorewor
ICAgIGlmICghaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9u
RXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkZXZpY2VDb250cm9sbGVyID0g
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCk7CisgICAgaWYgKCFkZXZpY2VDb250cm9sbGVy
IHx8IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghaXNBbGxv
d2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKGVycm9yTWVzc2FnZSkpIHsK
KyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKKyAgICAgICAg
ICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBlcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgZGV2aWNlQ29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9
CisKK3ZvaWQgRE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5l
Y2Vzc2FyeSgpCit7CisgICAgaWYgKGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5kZXZp
Y2VvcmllbnRhdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIGRl
dmljZUNvbnRyb2xsZXIgPSBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSkKKyAgICAgICAg
ZGV2aWNlQ29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9CisK
K3ZvaWQgRE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5
KCkKK3sKKyAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rp
b25FdmVudCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGRldmljZUNvbnRyb2xsZXIg
PSBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCk7CisgICAgaWYgKCFkZXZpY2VDb250cm9sbGVyIHx8
IGRldmljZUNvbnRyb2xsZXItPmhhc0RldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghaXNBbGxvd2Vk
VG9BZGREZXZpY2VNb3Rpb25PcmllbnRhdGlvbkxpc3RlbmVyKGVycm9yTWVzc2FnZSkpIHsKKyAg
ICAgICAgZmFpbGVkVG9SZWdpc3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVuZXIoKTsKKyAgICAg
ICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRv
Y3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVs
OjpXYXJuaW5nLCBlcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
ZGV2aWNlQ29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9CisKK3Zv
aWQgRE9NV2luZG93OjpzdG9wTGlzdGVuaW5nRm9yRGV2aWNlTW90aW9uSWZOZWNlc3NhcnkoKQor
eworICAgIGlmIChoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZl
bnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogZGV2aWNlQ29udHJvbGxlciA9
IGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSkKKyAgICAgICAgZGV2aWNlQ29udHJvbGxlci0+cmVt
b3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Cit9CiAKIHZvaWQgRE9NV2luZG93OjpmYWls
ZWRUb1JlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpCiB7CkBAIC0xOTQxLDIyICsy
MDI1LDYgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICAgICAgcmVtb3ZlVW5sb2FkRXZl
bnRMaXN0ZW5lcih0aGlzKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LmJlZm9yZXVubG9hZEV2ZW50ICYmIGFsbG93c0JlZm9yZVVubG9hZExpc3RlbmVycyh0aGlzKSkK
ICAgICAgICAgcmVtb3ZlQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlzKTsKLSNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgZWxz
ZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCAmJiBkb2N1
bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkucmVt
b3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYmIGRvY3VtZW50KCkpCi0gICAg
ICAgIGRvY3VtZW50KCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmlj
ZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotI2Vsc2UKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSB7Ci0gICAgICAgIGlmIChEZXZpY2VNb3Rp
b25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShw
YWdlKCkpKQotICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5l
cigqdGhpcyk7Ci0gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmlj
ZW9yaWVudGF0aW9uRXZlbnQpIHsKLSAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdl
KCkpKQotICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcigq
dGhpcyk7Ci0gICAgfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8g
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xsRXZlbnQpCiAgICAgICAg
IGRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKTsKQEAgLTE5NzcsNiArMjA0NSwx
MiBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5p
c0dhbWVwYWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgZGVjcmVtZW50R2FtZXBhZEV2
ZW50TGlzdGVuZXJDb3VudCgpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0
aW9uRXZlbnQpCisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVj
ZXNzYXJ5KCk7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vt
b3Rpb25FdmVudCkKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNz
YXJ5KCk7CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjA1OSwxOCArMjEzMyw5
IEBAIHZvaWQgRE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAgICAgRXZlbnRU
YXJnZXQ6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKICNpZiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKERvY3VtZW50KiBk
b2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgZG9jdW1lbnQtPmRldmljZU1v
dGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycygqdGhpcyk7Ci0g
ICAgICAgIGRvY3VtZW50LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS5yZW1vdmVBbGxE
ZXZpY2VFdmVudExpc3RlbmVycygqdGhpcyk7Ci0gICAgfQotI2Vsc2UKLSAgICBpZiAoRGV2aWNl
TW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZy
b20ocGFnZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0
ZW5lcnMoKnRoaXMpOwotICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAg
ICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8gRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNl
c3NhcnkoKTsKKyAgICAgICAgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5
KCk7CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKG1fc2Nyb2xs
RXZlbnRMaXN0ZW5lckNvdW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBiYmJmYTk1
ODcyZTRhMzNlNzM0MjUyODFlNGFjY2I0ZjcwNTliMWM0Li4xZDhhNjQyOTJmMDFmMDlmMTUxMmJj
ZGQ2Njg2ZmVjNDcyZWJhMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTgyLDYgKzgy
LDExIEBAIGNsYXNzIFZpc3VhbFZpZXdwb3J0OwogY2xhc3MgV2ViS2l0TmFtZXNwYWNlOwogY2xh
c3MgV2ViS2l0UG9pbnQ7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorY2xhc3Mg
RGV2aWNlTW90aW9uQ29udHJvbGxlcjsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cjsKKyNlbmRpZgorCiBzdHJ1Y3QgSW1hZ2VCaXRtYXBPcHRpb25zOwogc3RydWN0IFdpbmRvd0Zl
YXR1cmVzOwogCkBAIC0zMTEsNiArMzE2LDE5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBzY3Jv
bGxFdmVudExpc3RlbmVyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbEV2ZW50TGlzdGVu
ZXJDb3VudDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7Cisg
ICAgdm9pZCBzdG9wTGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOwor
ICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworICAg
IHZvaWQgc3RvcExpc3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KCk7CisKKyAgICBi
b29sIGlzQWxsb3dlZFRvVXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oU3RyaW5nJiBtZXNzYWdl
KSBjb25zdDsKKyAgICBib29sIGlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25M
aXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OworCisgICAgRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKiBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdDsKKyAgICBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyKiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3Q7CisjZW5k
aWYKKwogICAgIHZvaWQgcmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb24oKTsKIAogI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKaW5kZXggMzM2N2QzZGJmNTlmYzMz
NTcyNDk3NThhYzYzZGQxNzI1ZTA3NjM2Ni4uODQyYjg1NGVlMjUxMjU4YTQxMDYyYmZlMGQwNjU0
NGVkYjNjNmZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBA
IC02OSw2ICs2OSwxMSBAQCB2b2lkIERldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2
ZW50TGlzdGVuZXJzKERPTVdpbmRvdyYgd2luZG93KQogICAgICAgICBtX2NsaWVudC5zdG9wVXBk
YXRpbmcoKTsKIH0KIAorYm9vbCBEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3Rl
bmVyKERPTVdpbmRvdyYgd2luZG93KSBjb25zdAoreworICAgIHJldHVybiBtX2xpc3RlbmVycy5j
b250YWlucygmd2luZG93KTsKK30KKwogdm9pZCBEZXZpY2VDb250cm9sbGVyOjpkaXNwYXRjaERl
dmljZUV2ZW50KEV2ZW50JiBldmVudCkKIHsKICAgICBmb3IgKGF1dG8mIGxpc3RlbmVyIDogY29w
eVRvVmVjdG9yKG1fbGlzdGVuZXJzLnZhbHVlcygpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuaAppbmRleCBlMTYwMzg1YWZlMmY5NzM1M2MwZWEyMmYyOWU4NTZmMThlMjBi
MWE4Li4zZDVmOTBjNTBlZTRhNTRmYzBhZDE3YzY0NzM1ZGQ2OTM4NzNmZmZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBhZGREZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyYpOwogICAgIHZvaWQgcmVt
b3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZUFsbERl
dmljZUV2ZW50TGlzdGVuZXJzKERPTVdpbmRvdyYpOworICAgIGJvb2wgaGFzRGV2aWNlRXZlbnRM
aXN0ZW5lcihET01XaW5kb3cmKSBjb25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hEZXZpY2VFdmVu
dChFdmVudCYpOwogICAgIGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNF
bXB0eSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggMzAzZDdmODJkNGIzN2Zk
YmExYjdmMmRkNGE4ZGEyNTdlOGFiOTc3Yy4uZTgyNGRmNzZhODQyZjMyMDdmYWUwZWNlNjQ0NGU5
ZTJmMjQ1ZWZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNzY0LDYgKzc2NCwx
MSBAQCBkZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZDoKICAgaW5pdGlhbDogdHJ1ZQogICBj
b25kaXRpb25hbDogREVWSUNFX09SSUVOVEFUSU9OCiAKK2RldmljZU9yaWVudGF0aW9uUGVybWlz
c2lvbkFQSUVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaW5pdGlhbDogZmFsc2UKKyAgY29uZGl0
aW9uYWw6IERFVklDRV9PUklFTlRBVElPTgorCiBzaG91bGRFbmFibGVUZXh0QXV0b3NpemluZ0Jv
b3N0OgogICB0eXBlOiBib29sCiAgIGluaXRpYWw6IGZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA4MDRhMGFlOTEwMzkxMzMzMDMyMDM3YTEyMjBkNDVi
MDAzZGU4MjM4Li43MjNiZDMxMWE0NTA3MDhmZDVjZGJmNDlkMDVjY2ZmYTIwMDQ2NTEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEyLDYgKzEyLDE1IEBA
IERldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkOgogICBjb25kaXRpb246IEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCiAgIHdlYmNvcmVOYW1lOiBkZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5h
YmxlZAogCitEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgY29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorICB3ZWJjb3JlTmFtZTogZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJ
RW5hYmxlZAorICBodW1hblJlYWRhYmxlTmFtZTogIlBlcm1pc3Npb24gQVBJIGZvciBkZXZpY2Ug
b3JpZW50YXRpb24gLyBtb3Rpb24gYWNjZXNzLiIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9u
OiAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIC8gRGV2aWNlTW90
aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAor
CiBKYXZhU2NyaXB0RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggM2VjNmYwMGQy
NGZjOTM5NDI2OTBhM2U3MjlmZDA3ZWQ3YTNhYTZjNy4uOTQwYjY5NzFlYTQwYTRkYjI5MzViZWEy
YTk4OTZiNzllMTVkNjUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xp
ZW50LmgKQEAgLTE3Myw2ICsxNzMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRM
b3NlUG9pbnRlckxvY2soV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFNl
Y3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQorI2VuZGlmCisKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE9i
amVjdCopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9u
Z1Bhc3N3b3JkQXBwZWFyYW5jZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYTQxNjc2NmUyYjM4
M2UxYjUxNDQ4ZmM5Y2M0MDJjMDFmMWJlYjNhYS4uMzhlNWIxNzA4NjI2ZjBiNDkyZDg3MTMwZDY5
NmYzNzI4ODU5Y2UzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CkBAIC0xMTUsNyArMTE1LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFn
ZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0
czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlD
bGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGll
bnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRW
NiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwg
V0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMj4g
VmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFn
ZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJ
Q2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xp
ZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50
VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTIsIFdLUGFnZVVJQ2xpZW50
VjEzPiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTE5MDMs
NiArMTkwMywxNiBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJl
ZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGll
bnQucmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKHRvQVBJKCZwYWdlKSwgdG9BUEkoZnJhbWUp
LCB0b0FQSShyZXF1ZXN0aW5nRG9tYWluLmltcGwoKSksIHRvQVBJKGN1cnJlbnREb21haW4uaW1w
bCgpKSwgdG9BUEkobGlzdGVuZXIucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
ICAgICAgICB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICAgICB2b2lk
IHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViUGFnZVByb3h5
JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcykKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fY2xpZW50LnNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3JpZ2luKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSk7CisgICAgICAgIH0KKyNlbmRpZgorCiAgICAgICAg
IC8vIFByaW50aW5nLgogICAgICAgICBmbG9hdCBoZWFkZXJIZWlnaHQoV2ViUGFnZVByb3h5JiBw
YWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSkgZmluYWwKICAgICAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggNWU1OTczZjlhYjE4
YjQ2YTY1ZWZlMDhlZGY1ZjM1MDdhNzc1ZGYwYi4uZWE4ODcyNzU2YWMxNzIwMTkwNWFlODc5YWFh
MjY0MWQ3ZTI1ZGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VVSUNsaWVudC5oCkBAIC0xMzQsNiArMTM0LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tEaWRMb3Nl
UG9pbnRlckxvY2tDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEkK
IHR5cGVkZWYgdm9pZCAoKldLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2VDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmUsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tEaWRFeGNlZWRCYWNrZ3Jv
dW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdl
LCBXS1Jlc291cmNlTGltaXQgbGltaXQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRl
ZiB2b2lkICgqV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJh
bmNlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgqV0tQYWdlU2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1
cml0eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAK
IC8vIERlcHJlY2F0ZWQKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25h
cnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VC
dXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMTE0MCw2ICsx
MTQxLDExMCBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxMiB7CiAgICAgV0tQYWdl
UmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm07CiB9IFdLUGFnZVVJQ2xpZW50VjEyOwog
Cit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxMyB7CisgICAgV0tQYWdlVUlDbGllbnRC
YXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNl
OworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAgV0tQYWdl
VUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VGb2N1c0Nh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
Y3VzOworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxl
cnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkphdmFTY3Jp
cHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRD
b25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVuSmF2YVNj
cmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2Ny
aXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkph
dmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VTZXRTdGF0
dXNUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
dFN0YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2Vk
Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNs
aWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlF
dmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRs
ZUtleUV2ZW50OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAgICBX
S1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0FyZVZp
c2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xiYXJz
QXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdl
U2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXRNZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlzaWJs
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNp
YmxlOworICAgIFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdl
dElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaXNSZXNpemFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBXS1Bh
Z2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7Cisg
ICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWNiAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWNjsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGllbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlk
U2Nyb2xsOworICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAgIFdLUGFn
ZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcnVuT3BlblBhbmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsKKyAg
ICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7Cisg
ICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKKyAg
ICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0
byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0
YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNh
dmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAgdm9pZCogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRl
cnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdL
UGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAgICAgICAg
ICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAgIFdLUGFn
ZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAg
Ly8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFn
ZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkOworCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5lZFN0YXRl
RGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVk
U3RhdGVEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVz
ZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVz
cy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2duaXplTG9u
Z01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJlIGRpZENh
bmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQbGF5aW5n
QXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Bs
YXlpbmdBdWRpb0RpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1BhZ2VEZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAg
IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZURp
ZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRD
YWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRB
bGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25m
aXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2YVNjcmlw
dENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0
UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1bkphdmFT
Y3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VNZWRpYVNlc3Np
b25NZXRhZGF0YURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA2LgorICAgIFdLUGFn
ZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlTmV3UGFnZTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydDsK
KyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIFdLUGFnZVJ1bkphdmFT
Y3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
SmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0NoZWNrVXNlck1lZGlhUGVybWlzc2lvbkNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbjsKKworICAgIC8vIFZlcnNpb24gNy4KKyAgICBXS1BhZ2VSdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbDsKKyAgICBXS0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZTsKKworICAgIC8vIFZlcnNpb24gOC4KKyAgICBXS1JlcXVlc3RQb2ludGVyTG9ja0Nh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RQb2lu
dGVyTG9jazsKKyAgICBXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExvc2VQb2ludGVyTG9jazsKKworICAgIC8vIFZl
cnNpb24gOS4KKyAgICBXS0hhbmRsZUF1dG9wbGF5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5RXZlbnQ7CisKKyAgICAvLyBW
ZXJzaW9uIDEwLgorICAgIFdLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2VDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRD
aGFuZ2U7CisgICAgV0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3Jl
Z3JvdW5kQ2FsbGJhY2sgICAgICAgICBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdo
aWxlSW5Gb3JlZ3JvdW5kOworCisgICAgLy8gVmVyc2lvbiAxMS4KKyAgICBXS1BhZ2VEaWRSZXNp
Z25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VDYWxsYmFjayAgICAgICAgIGRp
ZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZTsKKworICAgIC8vIFZl
cnNpb24gMTIuCisgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm07CisK
KyAgICAvLyBWZXJzaW9uIDEzLgorICAgIFdLUGFnZVNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjayAgICAgICAgICAgc2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKK30gV0tQYWdlVUlDbGllbnRWMTM7CisKICNpZmRlZiBf
X2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlLmgKaW5kZXggZGEwMzE0YWUzZjU4Y2JkZTk4MDI4ZTI3Mjg5ZWFk
NDRkNmQzNDJiYi4uODE1ZTgwMTg4OGU1ZDY2NGQ2NWFlM2NiYWFkNjY3MmEyNWZkN2RjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaApA
QCAtMzQsNiArMzQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogQGNsYXNzIFdLTmF2aWdh
dGlvbkFjdGlvbjsKIEBjbGFzcyBXS09wZW5QYW5lbFBhcmFtZXRlcnM7CiBAY2xhc3MgV0tQcmV2
aWV3RWxlbWVudEluZm87CitAY2xhc3MgV0tTZWN1cml0eU9yaWdpbjsKIEBjbGFzcyBXS1dlYlZp
ZXc7CiBAY2xhc3MgV0tXZWJWaWV3Q29uZmlndXJhdGlvbjsKIEBjbGFzcyBXS1dpbmRvd0ZlYXR1
cmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlE
ZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZGJkMDUzZTdmYmQwYTA5NWYwODg4YTdlZGEwYmMyYmJh
NzNlMjUzMi4uM2Q3NzcxNjQwOGI3NDFjY2RkODYzOGMwZGZiNTYzODcwYTgzNjBmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCkBAIC0xNzEsNiArMTcxLDE1IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENoYW5nZVNhZmVBcmVhU2hvdWxk
QWZmZWN0T2JzY3VyZWRJbnNldHM6KEJPT0wpc2FmZUFyZWFTaG91bGRBZmZlY3RPYnNjdXJlZElu
c2V0cyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRpZFByZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOihV
SVZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NGb2N1c2Vk
RWxlbWVudFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19B
UElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CisKKy8qISBAYWJzdHJhY3QgQWxsb3dzIHlvdXIgYXBw
IHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gc2VjdXJpdHkgb3JpZ2luIHNo
b3VsZCBoYXZlIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50YXRpb24gYW5kIG1vdGlvbi4K
KyBAcGFyYW0gc2VjdXJpdHlPcmlnaW4gVGhlIHNlY3VyaXR5IG9yaWdpbiB3aGljaCByZXF1ZXN0
ZWQgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBvcmllbnRhdGlvbiBhbmQgbW90aW9uLgorIEBwYXJh
bSBkZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCBvbmNlIHRoZSBh
cHAgaGFzIG1hZGUgaXRzIGRlY2lzaW9uLiBQYXNzIFlFUyB0byBhbGxvdyB0aGUgb3JpZ2luIGFj
Y2VzcywgTk8gb3RoZXJ3aXNlLgorCisgSWYgeW91IGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBtZXRo
b2QsIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50YXRpb24gYW5kIG1vdGlvbiB3aWxsIGJl
IGdyYW50ZWQuCisgKi8KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2lu
OihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RC
QSkpOworCiAjZWxzZSAvLyBUQVJHRVRfT1NfSVBIT05FCiAtICh2b2lkKV9wcmVwYXJlRm9ySW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CiAtICh2b2lkKV9jYW5jZWxJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUuaAppbmRleCBjY2I3OGEyOWUyYTRjMmZmMTZkNDI1MjVhZTVlNDYwYTc4OWJiN2Ez
Li42M2Y1NWM0NzEyNDU3MTBjZDhlOThjZWFkYTg3MDkzOGU3ZGFiZjVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMTksNiArMTE5LDkgQEAgcHJp
dmF0ZToKICAgICAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQ
cm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEFQSTo6T3BlblBhbmVs
UGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3Jv
dW5kKFdlYlBhZ2VQcm94eSYsIFdLUmVzb3VyY2VMaW1pdCkgZmluYWw7CiAgICAgICAgIHZvaWQg
c2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6
OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgVVJMJiwgQVBJOjpEYXRhJikgZmlu
YWw7CisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICAgICB2b2lk
IHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJikgZmluYWw7CiAjZW5kaWYKICAgICAgICAgYm9vbCBuZWVkc0ZvbnRBdHRyaWJ1dGVz
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlczsgfQogICAgICAgICB2b2lkIGRpZENoYW5nZUZv
bnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzJikgZmluYWw7CkBAIC0x
ODcsNiArMTkwLDkgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3U2F2ZURhdGFUb0Zp
bGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdVUkwgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21w
bGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOworI2VuZGlm
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAgICAgYm9vbCB3ZWJWaWV3U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2lu
RGVjaXNpb25IYW5kbGVyIDogMTsKICNlbmRpZgogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVE
YXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNh
Z2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgOiAxOwog
ICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5E
YXRhYmFzZU5hbWVEaXNwbGF5TmFtZUN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJl
bnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA6IDE7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBiNWEwYTUwOGJjOTk2
ZDNjOWE5N2Y5M2FmM2VhM2Y5MjUwOTdmNjY1Li45MjYwNzI1ODdjMTBmZmNiOWNjOGE4YWY1Zjg3
Mjk2OGQ3YWJlYmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0KQEAgLTEzMiw2ICsxMzIsOSBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlk
IDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdT
YXZlRGF0YVRvRmlsZVN1Z2dlc3RlZEZpbGVuYW1lTWltZVR5cGVPcmlnaW5hdGluZ1VSTCA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnNhdmVEYXRhVG9G
aWxlOnN1Z2dlc3RlZEZpbGVuYW1lOm1pbWVUeXBlOm9yaWdpbmF0aW5nVVJMOildOwogICAgIG1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0luaXRpYXRl
ZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKHdlYlZpZXc6cnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnM6aW5pdGlhdGVkQnlG
cmFtZTpjb21wbGV0aW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFu
ZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJl
cXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5k
bGVyOildOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopXTsK
ICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3Rh
Rm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0
YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2Vj
dXJpdHlPcmlnaW46Y3VycmVudFF1b3RhOmN1cnJlbnRPcmlnaW5Vc2FnZTpjdXJyZW50RGF0YWJh
c2VVc2FnZTpleHBlY3RlZFVzYWdlOmRlY2lzaW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJh
c2VOYW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0
YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2Vj
dXJpdHlPcmlnaW46ZGF0YWJhc2VOYW1lOmRpc3BsYXlOYW1lOmN1cnJlbnRRdW90YTpjdXJyZW50
T3JpZ2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6ZXhwZWN0ZWRVc2FnZTpkZWNpc2lvbkhh
bmRsZXI6KV07CkBAIC04NDQsNiArODQ3LDI2IEBAIGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZVByCiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmln
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1Nob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbkRlY2lz
aW9uSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisg
ICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOworICAgIGlm
ICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKKwor
ICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShk
ZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7
CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURl
bGVnYXRlLm1fd2ViVmlldyBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzRm9yU2VjdXJpdHlPcmlnaW46d3JhcHBlcihzZWN1cml0eU9yaWdpbikgZGVjaXNpb25IYW5k
bGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildIChCT09MIGdyYW50ZWQpIG11dGFi
bGUgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVk
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0
aW9uSGFuZGxlcigpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihncmFudGVkKTsKKyAgICB9
KS5nZXQoKV07Cit9CisjZW5kaWYKKwogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkQ2hh
bmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMmIGZvbnRBdHRy
aWJ1dGVzKQogewogICAgIGlmICghbmVlZHNGb250QXR0cmlidXRlcygpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDY3MGYyYzU2NzZmMTkzMjgwNDRlYjcx
MTkzNDhiNWQ3YmJmOThiNC4uZTE4YTcxMzM3Zjg2NWRmMWVkYWExZTgyZWRlMGQ2YzkzMzdkMDFi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MTc0LDYg
KzcxNzQsMTggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNlck1lZGlhU3RhdGUoKQogI2Vu
ZGlmCiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAg
IGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEuc2Vj
dXJpdHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVudC0+c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzcygqdGhpcywgb3JpZ2luLmdldCgpLCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrSURdKGJvb2wgZ3JhbnRlZCkgeworICAgICAg
ICBpZiAoIXdlYWtUaGlzIHx8ICFpc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZURldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzRGVjaXNpb24oY2FsbGJhY2tJRCwgZ3JhbnRlZCksIG1f
cGFnZUlEKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcm
IG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjE1NWQxNDJlNDRmYmE1
NDQ1OGJjNzFmNTM5MWJlNmUwOWI0ZTgwMy4uZDQ4ODU3OGE5ZGY0YjQzZmJlZTU2MWNkYzE3YTVj
M2E0MDc5OTVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0
MDEsNiArMTQwMSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0Nv
bmZpcm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBj
b25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgcmVxdWVzdERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgorCiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogbm9u
RXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5U
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IGU4NjRkNGE5NmZiNjdmOWE1M2YxZDYwOWM2OWY3NzY1MjEzODRhMDAuLjc0M2ZjMDRm
NTE0ZmQyMjg5NzU5YzAwYjRhMDZlZGJkZjFkZGIzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTUzMiw2ICs1MzIsMTAgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTdG9wVVJMU2NoZW1lVGFzayh1aW50NjRf
dCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpCiAgICAgTG9hZFN5
bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1l
dGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpIERl
bGF5ZWQKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgUmVxdWVzdERldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxF
KEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJv
bURhdGEoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIHByZWZl
cnJlZEZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBS
ZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJvbUZpbGVQYXRoKFN0cmluZyBpZGVudGlmaWVy
LCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBmaWxlUGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKaW5kZXggNjdmZDdhNzIwY2UyZjMzOTc3MDM1MTQ4YmRiZDJjZWZhN2M3ZmQzNS4uNjJiNWVm
YjgxYTM3NWE1ZGRiMDIzYzM1OWFhZTRiNDdiZDJmMDBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTEzMjAsNCArMTMyMCwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcgogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoY29uc3QgU2Vj
dXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxs
YmFjaykKK3sKKyAgICBtX3BhZ2Uuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2VzcyhvcmlnaW4sIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmOTI2YTI1OGFkODVhYjA3Nzkx
NmQwY2IyMzUyODRkOGViM2JkYWE3Li4yMjdiODE0MTg2MzNkZTM3MmYxMzRmNmUxZTliM2YxNWZh
YTNlODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNjYsNiArMzY2LDEwIEBAIHByaXZhdGU6
CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0
cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQgKGJvb2wpPiYmKSBmaW5hbDsKICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyNlbmRpZgorCiAgICAg
U3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJGcmFtZT4gbV9j
YWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWlu
RnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMGY3MGIzYmJmMDNjZTc4ODgyMmU4
NmIwMDQyZTA1OTgyMjg1NTAxOS4uMDMzOWFkYTBkYjgzNWVlNjA3MjIxNzQ2M2FhZGQ4NGFlZTU1
MzgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTYzNDYsNiArNjM0NiwzMCBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNz
KFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LAogICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVE
b21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHN1YkZyYW1lSG9zdCksIFJlZ2lzdHJhYmxl
RG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdCh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBt
X3BhZ2VJRCwgcHJvbXB0RW5hYmxlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
ICNlbmRpZgorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3N0YXRpYyB1aW50NjRf
dCBuZXh0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCgpCit7
CisgICAgc3RhdGljIHVpbnQ2NF90IG5leHRDYWxsYmFja0lEID0gMDsKKyAgICByZXR1cm4gKytu
ZXh0Q2FsbGJhY2tJRDsKK30KKwordm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcmln
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7CisgICAgYXV0
byBjYWxsYmFja0lEID0gbmV4dERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNh
bGxiYWNrSUQoKTsKKyAgICBBU1NFUlQoIW1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQ2FsbGJhY2tNYXAuY29udGFpbnMoY2FsbGJhY2tJRCkpOworICAgIG1fZGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tNYXAuYWRkKGNhbGxiYWNrSUQsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVx
dWVzdERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKG9yaWdpbi5kYXRhKCksIGNhbGxi
YWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NEZWNpc2lvbih1aW50NjRfdCBjYWxsYmFja0lELCBib29sIGdyYW50ZWQp
Cit7CisgICAgYXV0byBjYWxsYmFjayA9IG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lEKTsKKyAgICBBU1NFUlQoY2FsbGJhY2sp
OworICAgIGNhbGxiYWNrKGdyYW50ZWQpOworfQorI2VuZGlmCiAgICAgCiBzdGF0aWMgU2hhcmVT
aGVldENhbGxiYWNrSUQgbmV4dFNoYXJlU2hlZXRDYWxsYmFja0lEKCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlNDcxZGYwZGFiMjg4NDI3YTI2
MzgyZmRiMjNhMWI3ZmQ1MTQyMzVhLi44ZTQwMTE2NmIwZmY4NGJmODY0NDVmNGMwNWUxMTYzMmI4
MmZlNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC0xMTExLDYgKzExMTEsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgc2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2VuZGlmCisKICAg
ICB2b2lkIHNob3dTaGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIHZvaWQg
ZGlkQ29tcGxldGVTaGFyZVNoZWV0KGJvb2wgd2FzQ29tcGxldGVkLCBTaGFyZVNoZWV0Q2FsbGJh
Y2tJRCBjb250ZXh0SWQpOwogICAgIApAQCAtMTIwNyw2ICsxMjExLDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xv
YmFsUG9zaXRpb24pOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
ICAgIHZvaWQgZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzRGVjaXNp
b24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKTsKKyNlbmRpZgorCiAjaWYgIVBM
QVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBp
bnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYK
QEAgLTE4MzcsNiArMTg0NSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFdU
Rjo6RnVuY3Rpb248dm9pZChib29sIGdyYW50ZWQpPj4gbV9zdG9yYWdlQWNjZXNzUmVzcG9uc2VD
YWxsYmFja01hcDsKICAgICBIYXNoTWFwPFNoYXJlU2hlZXRDYWxsYmFja0lELCBXVEY6OkZ1bmN0
aW9uPHZvaWQoYm9vbCBjb21wbGV0ZWQpPj4gbV9zaGFyZVNoZWV0UmVzcG9uc2VDYWxsYmFja01h
cDsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgSGFzaE1hcDx1aW50NjRf
dCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZ3JhbnRlZCk+PiBtX2RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwOworI2VuZGlmCisKICNpZiBF
TkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgdWludDY0
X3Q+IG1fYXBwbGljYXRpb25NYW5pZmVzdEZldGNoQ2FsbGJhY2tNYXA7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IGNiMGI1NzA5MzM2NGMwZTU1NDI0M2Y5MzA5YzM5MjVkNTQ4YWY0ZjAuLjdjZjFhZTU2
ZTFkYTRmMmJhZDRmNzQ2ZGQ5ZmJhNmY4YzgwY2VlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzY0LDYgKzM2
NCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICAjIE5vdGlm
aWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgRGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzRGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKQorI2VuZGlmCisK
ICAgICAjIFByaW50aW5nLgogICAgIEJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbykKICAgICBFbmRQcmludGluZygpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2ExNTVlODI5
MjZhZjE3NzQxOWVhMzUwNDRiMWYxOGU3MTUwZDZkYy4uNjNkMGZhYjMxNjA1M2EzMjUxYWRmNTVl
ODQ0NmQ5OTk1OTgxZDBkMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAzLTA2ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRh
dGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0
NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBoZWxwIHRlc3QgdGhlIERldmljZSBPcmllbnRhdGlv
biAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXVFI6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1
ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aGFuZGxlRGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3NSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRp
b246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0wMy0wNiAg
Um9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIENvbnNpZGVyIHN1cHBvcnRp
bmcgdGhlIGByZWZlcnJlcnBvbGljeWAgYXR0cmlidXRlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKaW5kZXggMGU3OWQ4MGI2MDFmMzI5NWU4YjgxNWJhMTAwOGI5OTdkMWI4MGM2Zi4uYzc3Nzg1
ZmNmMmQ1MTU3NGMwZmQ1ZjRmODZhZjczOTFjMTc4YjI2MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCkBAIC0xMDQsNiArMTA0LDkgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIGJv
b2xlYW4gaXNDb21tYW5kRW5hYmxlZChET01TdHJpbmcgbmFtZSk7CiAgICAgdW5zaWduZWQgbG9u
ZyB3aW5kb3dDb3VudCgpOwogCisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9uIE1vdGlvbi4KKyAg
ICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoYm9v
bGVhbiB2YWx1ZSk7CisKICAgICAvLyBTcGVjaWFsIERPTSB2YXJpYWJsZXMuCiAgICAgYXR0cmli
dXRlIGJvb2xlYW4gZ2xvYmFsRmxhZzsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZDQ2MjI0NmNkYjljMThmNzdj
ZTQ1ZDczMTM3MjgwNGE2NTFkZDMwMi4uOTBmYTdlYWY2MjdlODM2MjlmZDQ5NjkwNzZlZjNiZjdj
NGJkYTAyYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjk0LDYgKzEyOTQsMTMgQEAgdm9pZCBUZXN0UnVubmVy
OjpzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkKICAg
ICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFn
ZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzcyhib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNz
YWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0U2hvdWxk
QWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyIpKTsKKyAgICBXS1JldGFpblB0
cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZSh2YWx1
ZSkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0
b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgp
KTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCiB7CiAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyIpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggNzEzYTk0MzM2MzkwNWYwYzliNzYwZDU3NGFjOGYzMjRkOGQ1MTZmYy4uYWU3MDQ5ZGQ4MTEw
YjAyNmZjODNkN2U2NTc0NGMzNjhiNjBkYjEyNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM0OCw2ICszNDgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFibGVkKGJvb2wpOwogICAg
IHZvaWQgc2V0SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoYm9vbCk7CiAgICAgdm9pZCBzZXRT
aG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCk7CisgICAgdm9pZCBzZXRT
aG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGJvb2wpOwogCiAgICAg
Ym9vbCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3Q7IH0KICAgICB2b2lkIHNldERpZENhbmNlbENsaWVudFJlZGlyZWN0KGJv
b2wgdmFsdWUpIHsgbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA9IHZhbHVlOyB9CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDQ1NThiYTJjZjk1ZjM1ZWM4
YjYwMmM5ZDdhZDQ2MjljZDFmNGUxMjMuLmNmYjUyOTAzMWI4NWFhNGUyOWVhMjQyNWIzODA1N2E1
ZTY5M2M2NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0yNjIsNiArMjYyLDExIEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RQb2ludGVyTG9jayhXS1BhZ2VS
ZWYgcGFnZSwgY29uc3Qgdm9pZCopCiAgICAgV0tQYWdlRGlkQWxsb3dQb2ludGVyTG9jayhwYWdl
KTsKIH0KIAorc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2VzcyhXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2b2lk
KikKK3sKKyAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRsZURldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUmVxdWVzdChvcmlnaW4pOworfQorCiBXS1BhZ2VS
ZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNvbmZp
Z3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRp
b25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGlj
X2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwpA
QCAtNTcwLDggKzU3NSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRo
T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICByZXNldFByZWZlcmVuY2Vz
VG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMpOwogCiAgICAgcGxhdGZvcm1DcmVhdGVXZWJWaWV3
KGNvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50VjggcGFn
ZVVJQ2xpZW50ID0gewotICAgICAgICB7IDgsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBX
S1BhZ2VVSUNsaWVudFYxMyBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgMTMsIG1fbWFpbldl
YlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBA
IC02MzcsNyArNjQyLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRo
T3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsCiAgICAgICAgIDAsIC8vIGZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZQogICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2ssCi0gICAgICAgIDAsCisgICAgICAg
IDAsIC8vIGRpZExvc2VQb2ludGVyTG9jaworICAgICAgICAwLCAvLyBoYW5kbGVBdXRvcGxheUV2
ZW50CisgICAgICAgIDAsIC8vIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlCisg
ICAgICAgIDAsIC8vIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVn
cm91bmQKKyAgICAgICAgMCwgLy8gZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRB
cHBlYXJhbmNlCisgICAgICAgIDAsIC8vIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybQorICAg
ICAgICBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzCiAgICAgfTsK
ICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJ
Q2xpZW50LmJhc2UpOwogCkBAIC05NDMsNiArOTU0LDggQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6
cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywg
UmUKIAogICAgIG1fc2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzID0gZmFsc2U7
CiAKKyAgICBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MgPSBm
YWxzZTsKKwogICAgIG1fd29ya1F1ZXVlTWFuYWdlci5jbGVhcldvcmtRdWV1ZSgpOwogCiAgICAg
bV9yZWplY3RzUHJvdGVjdGlvblNwYWNlQW5kQ29udGludWVGb3JBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZXMgPSBmYWxzZTsKQEAgLTI1NDgsNiArMjU2MSwxMiBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpoYW5kbGVDaGVja09mVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXS0ZyYW1lUmVmIGZy
YW1lLAogICAgIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrU2V0VXNlck1lZGlhQWNjZXNzSW5m
byhjaGVja1JlcXVlc3QsIHNhbHRTdHJpbmcuZ2V0KCksIHNldHRpbmdzRm9yT3JpZ2luKG9yaWdp
bkhhc2gpLnBlcnNpc3RlbnRQZXJtaXNzaW9uKCkpOwogfQogCitib29sIFRlc3RDb250cm9sbGVy
OjpoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1JlcXVlc3QoV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW4pCit7CisgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0VGV4
dChtYWtlU3RyaW5nKCJSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNz
IHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiBcIiIsIG9yaWdpblVzZXJWaXNpYmxlTmFtZShv
cmlnaW4pLCAiXCIuXG4iKSk7CisgICAgcmV0dXJuIG1fc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzczsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxlVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdp
blJlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVlc3Qp
CiB7CiAgICAgYXV0byBvcmlnaW5IYXNoID0gdXNlck1lZGlhT3JpZ2luSGFzaCh1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMWQxM2I1NTIzNzM5MGI3NmZiOTJlMTBhZjkzNWQ3
OWYwYjYzMTBiNC4uZTNmMTZhNjM4Y2FiZTBmMjUwZjQ3MTZhMjc3YmE1NzBmZmFmZGIyNCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTUwLDYgKzE1MCw5IEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9y
T3JpZ2luKFdLU3RyaW5nUmVmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luU3RyaW5nLCBXS1N0cmlu
Z1JlZiB0b3BMZXZlbERvY3VtZW50T3JpZ2luU3RyaW5nKTsKICAgICB2b2lkIHJlc2V0VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihXS1N0cmluZ1JlZiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpblN0
cmluZyk7CiAKKyAgICAvLyBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24uCisgICAgYm9vbCBo
YW5kbGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1JlcXVlc3QoV0tTZWN1cml0eU9y
aWdpblJlZik7CisKICAgICAvLyBDb250ZW50IEV4dGVuc2lvbnMuCiAgICAgdm9pZCBjb25maWd1
cmVDb250ZW50RXh0ZW5zaW9uRm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwogICAgIHZv
aWQgcmVzZXRDb250ZW50RXh0ZW5zaW9ucygpOwpAQCAtMTk5LDYgKzIwMiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogCiAgICAgdm9p
ZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkgeyBt
X3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IHZhbHVlOyB9CisgICAgdm9p
ZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGJvb2wgdmFs
dWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzID0gdmFs
dWU7IH0KIAogICAgIHZvaWQgc2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29sIHZhbHVlKTsKICAg
ICB2b2lkIHNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShXS1N0cmlu
Z1JlZiBob3N0TmFtZSk7CkBAIC01MDgsNiArNTEyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
cG9saWN5RGVsZWdhdGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fcG9saWN5RGVsZWdh
dGVQZXJtaXNzaXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkRG93bmxvYWRVbmRpc3Bs
YXlhYmxlTUlNRVR5cGVzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyB7IGZhbHNlIH07CiAKICAgICBib29sIG1fcmVqZWN0
c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIHsg
ZmFsc2UgfTsKICAgICBib29sIG1faGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7IGZh
bHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDY2
NjBjZGM5MjFmODk3Y2NlMmY3NzFkOGQ1M2E1YzI2ZjIxMjQ4ZjkuLjQ0MjE4YWE1MTQ3ODZmOGVl
MTEyYTk1ZTZmOGM1MTAxNTY4MWY2NmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCkBAIC03NDcsNiArNzQ3LDEzIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRp
ZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1l
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkp
ID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0g
c3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlJ1blVJUHJvY2Vzc1NjcmlwdCIpKSB7CiAgICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdl
Qm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5
KTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNjcmlwdEtleShBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2NyaXB0IikpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJmOGNlZDNi
ZjAyMDI2MWNlZWQ0MGQ3NGRlMmNhODNhMjI1OWRlYjYuLjU2MmU3YTlmNTE4OThlMTkzOGQwNDlh
MzdlOTMyYjU3N2E0ODM1NTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOS0wMy0wNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBE
ZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTMyOQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90
aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi1kZW5pZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1k
ZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1w
ZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVu
dHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3Vy
ZS1jb250ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50cy9kZXZp
Y2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWw6CisgICAgICAgICogcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9o
dHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29u
dGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZl
bnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0
OgorCiAyMDE5LTAzLTA2ICBKYXZpZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIEltcG9ydCBuZXcgdGVzdHMgZnJvbSB0aGUgQ1NTIFRleHQgMyBXUFQgdGVz
dCBzdWl0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNmU2ZTE4ZGE0ZWUxZThhMGIxNDZjYmM4MGNl
Zjk3ZDZjOGEyZDRmNS4uYzI3ODEyZWFkZGFkMWZiYjk3NDMzNWMzNzZiOGY5OGMzYWM1NzQ2YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMyw2ICszMyw3IEBAIGZhc3Qvem9vbWluZy9pb3MgWyBT
a2lwIF0KIGZhc3QvZm9ybXMvaW9zIFsgU2tpcCBdCiBmYXN0L3ZpZXdwb3J0L2lvcyBbIFNraXAg
XQogZmFzdC92aXN1YWwtdmlld3BvcnQvaW9zLyBbIFNraXAgXQorZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24gWyBTa2lwIF0KIGZhc3QvZXZlbnRzL2lvcyBbIFNraXAgXQogZmFzdC9ldmVudHMvd2F0
Y2hvcyBbIFNraXAgXQogZmFzdC9ldmVudHMvcG9pbnRlci9pb3MgWyBTa2lwIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ZDNlMWM5ODc0NDRlYjgyYjQ2NTg4ZmFkNjk4Njk3
YjY2N2M5MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogTm8gZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNz
aW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmll
bnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9u
IGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3
YXMgZGVuaWVkLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBl
cm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0
IGlzICJkZW5pZWQiCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9u
LWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBjZDBh
MmUxZmE0MjIzYmIxMjI4MWJiNDlmMjc4NzE2MjZmNWUwZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1w
ZXJtaXNzaW9uLWRlbmllZC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIERldmlj
ZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlz
dGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworaW50ZXJuYWxzLndpdGhVc2VyR2Vz
dHVyZSgoKSA9PiB7CisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50
aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOworCisgICAgICAgIGFkZEV2
ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworICAgICAgICBpbnRlcm5h
bHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICAgICAgICAgIERldmljZU1vdGlvbkV2ZW50
LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICAgICAgICAg
IHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZXN1bHQiLCAiZGVuaWVkIik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTMyMGEw
YzI0YTM0MmE5Yjk4YWFlNTU2YjZkN2Q2ZmU1NGVhNGJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3
aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFu
dGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0
IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2RjMTFlOWM4ZmE4NmZiZDVkMjY5MDE2ZmZmNDA4YjU1NGY5ZGFmYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rldmlj
ZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApAQCAtMCwwICsxLDMyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNp
YyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOwor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1
ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworaW50
ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9y
ZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQi
KTsKKworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7
CisKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICAgICAg
ICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+
IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKyAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsK
K30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGNmNTc2Y2RmYjc1MDcwNjEzNzNmMWQyYmU4MjJmZmMy
ODI3ZTA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IE5vdEFs
bG93ZWRFcnJvcjogQ2FsbGluZyByZXF1ZXN0UGVybWlzc2lvbigpIHJlcXVpcmVzIGEgdXNlciBn
ZXN0dXJlCitUZXN0cyB0aGF0IERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkg
cmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGUubmFtZSBpcyAiTm90QWxsb3dlZEVycm9yIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVz
ZXItZ2VzdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2Q0NzFjNWQzMTkzZTFlNjU3MjU5MzE3N2FmZTg5NzQ1MWEyMGIzZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSByZXF1aXJlcyBhIHVzZXIg
Z2VzdHVyZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCisKK0RldmljZU1vdGlvbkV2ZW50
LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAgdGVzdEZhaWxlZCgi
cmVxdWVzdFBlcm1pc3Npb24gcHJvbWlzZSB3YXMgbm90IHJlamVjdGVkIik7Cit9LCAoX2UpID0+
IHsKKyAgICBlID0gX2U7CisgICAgY29uc29sZS5sb2coZSk7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJlLm5hbWUiLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAgZmluaXNoSlNUZXN0KCk7
Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2ZGRkNmZmMTQzYWM3ZTVjYjczZTk2NDVkZjM2NzE5NWJi
OGY3YWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZp
Y2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1p
c3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9y
aWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIu
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IE5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRp
b24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgQVBJ
IHdhcyBkZW5pZWQuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJl
cXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45MzhkNzNjZGMwMTg1MGMxNzc0MDhlOWJiMGRhYTM4MGVkOTFkYTNkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDMy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJC
YXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9u
KCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkg
PT4ge30pOworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZpY2VP
cmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4gewor
ICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlc3VsdCIsICJkZW5pZWQiKTsKKworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vv
cmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0
dXJlKCgpID0+IHsKKyAgICAgICAgICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBl
cm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
X3Jlc3VsdDsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIs
ICJkZW5pZWQiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTJlZTFh
ZmQ0MGU5ZDMzMjExZDFmZmRhNjE3YTg5YjM1NWJjODc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZl
bnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5k
IGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJl
cXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU9y
aWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQgaXMgImdy
YW50ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJt
aXNzaW9uLWdyYW50ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDFiYWRiZjBiMmU5OGY5YTJjYjM1MTAy
MDZjODcwOGU4YjJmNWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFu
dGVkLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRl
dmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJl
KCgpID0+IHsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCku
dGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisKKyAgICAgICAgYWRk
RXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisKKyAgICAgICAg
aW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICAgICAgICBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
dXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWI0MjZhMjllYWM3MTdhMjA1NzlmZjgxYzRlOWZk
ZDQ2YjgzNmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1
cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
NDogTm90QWxsb3dlZEVycm9yOiBDYWxsaW5nIHJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMg
YSB1c2VyIGdlc3R1cmUKK1Rlc3RzIHRoYXQgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0
UGVybWlzc2lvbigpIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBlLm5hbWUgaXMgIk5vdEFsbG93ZWRFcnJvciIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2Vy
LWdlc3R1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjY5OTJhZDQzNThkZDczYmNjOTUyYTcwODQ4MWU1
MmRkNmU1Y2YxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1
cmUuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IERldmljZU9yaWVudGF0aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKSByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS4iKTsKK2pzVGVzdElzQXN5
bmMgPSB0cnVlOworCisKK0RldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24o
KS50aGVuKChyZXN1bHQpID0+IHsKKyAgICB0ZXN0RmFpbGVkKCJyZXF1ZXN0UGVybWlzc2lvbiBw
cm9taXNlIHdhcyBub3QgcmVqZWN0ZWQiKTsKK30sIChfZSkgPT4geworICAgIGUgPSBfZTsKKyAg
ICBjb25zb2xlLmxvZyhlKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImUubmFtZSIsICJO
b3RBbGxvd2VkRXJyb3IiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50
cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24t
c2VjdXJlLWNvbnRleHQuaHRtbAppbmRleCBlZDJkZDIwMzc3YzU3MzY1ZTFhNWY3ZmZjNTI1NGY3
MjdkNzFiNWRjLi4zOGYyZDQyMDA5ZTkzYzRhOTM5MzIzZDcyMDM5NmQ5MWQ2NWU2ZDQ0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24t
bW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0
bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gcnVuRGV2aWNlTW90aW9uVGVzdCgpCiAgICAg
ZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2
ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKICAgICBpbnRlcm5h
bHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RD
b25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBv
ciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5v
dCBzZWN1cmUuIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVN
ZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVu
dGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNl
Y3VyZS4iKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfSk7CiB9CkBAIC00NCw3ICs0
NCw3IEBAIGZ1bmN0aW9uIHJ1bkRldmljZU9yaWVudGF0aW9uVGVzdCgpCiAgICAgZGVidWcoIiog
UmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CiAgICAgYWRkRXZlbnRM
aXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCBmdW5jdGlvbigpIHsgfSk7CiAgICAgaW50ZXJu
YWxzLnBvc3RUYXNrKCgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0
Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBu
b3Qgc2VjdXJlLiIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RDb25zb2xl
TWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmll
bnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBz
ZWN1cmUuIik7CiAgICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3QoKTsKICAgICB9KTsKIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlv
bi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBl
Y3RlZC50eHQKaW5kZXggMGZiN2Q3ZWJmMmQ4NDJkN2JiNzM0YWE4NDMzMThkODk2ODBkNDM0Ni4u
MGZhZDBhOGVjYWI4YmVjOTIxY2FiY2YxYTgyZGY0N2ZlMzBjZjIzMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1
cmUtY29udGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVu
dHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQK
QEAgLTEsMTAgKzEsMTEgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzNzogRGV2aWNlIE9yaWVu
dGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IERl
dmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1
MDogRGV2aWNlIE9yaWVudGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMjU6IERldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKIFRlc3RzIHRo
YXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24g
YW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29u
dGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCisKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29u
dGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0
aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IDRlNTRkMTFkOTk0MWU3NThlMDI3
NTBiODZkNDNlMzJiYzk0MzNlZWUuLmYxMWFjMmZkNTgzNjUyMDAwOWQ5NmNhZTFmNWZhMGI4Mzdm
YWIxZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1v
cmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0
Lmh0bWwKQEAgLTYsNiArNiwxMSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdHJ5aW5nIHRv
IHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9y
aWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuIik7CiBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgaWYg
KHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cykKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKHRydWUpOworfQorCiAvLyBsb2NhbGhvc3QgaXMgc2VjdXJlIGJ5IGRlZmF1
bHQuCiAKIGxldCBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOwpAQCAtMTUsMTkgKzIwLDI3IEBA
IGludGVybmFscy5zZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKChtZXNzYWdlKSA9PiB7CiAKIGZ1
bmN0aW9uIHJ1bkRldmljZU1vdGlvblRlc3QoKQogeworICAgIGRlYnVnKCIiKTsKICAgICBpZiAo
IXdpbmRvdy5EZXZpY2VNb3Rpb25FdmVudCkgewogICAgICAgICBjb25zb2xlLmxvZygiRGV2aWNl
IE1vdGlvbiBBUEkgaXMgbm90IHN1cHBvcnRlZCIpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGxhc3RDb25zb2xlTWVzc2FnZSA9IG51bGw7
Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rpb24g
bGlzdGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCBmdW5jdGlv
bigpIHsgfSk7Ci0gICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKLSAgICAgICAgc2hvdWxk
QmVOdWxsKCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2UgbW90aW9uIGFjY2Vzcy4uLiIpOworICAgIGlu
dGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICBEZXZpY2VNb3Rpb25FdmVu
dC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgICAgIHJl
c3VsdCA9IF9yZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3Vs
dCIsICJncmFudGVkIik7CisKKyAgICAgICAgICAgIGxhc3RDb25zb2xlTWVzc2FnZSA9IG51bGw7
CisgICAgICAgICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVy
Iik7CisgICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCBmdW5jdGlv
bigpIHsgfSk7CisgICAgICAgICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4geworICAgICAg
ICAgICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNzYWdlIik7CisgICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CiAgICAg
fSk7CiB9CiAKQEAgLTM5LDEyICs1MiwyMCBAQCBmdW5jdGlvbiBydW5EZXZpY2VPcmllbnRhdGlv
blRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFzdENvbnNvbGVNZXNzYWdl
ID0gbnVsbDsKLSAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlz
dGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0
aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91
bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBydW5EZXZpY2VNb3Rpb25U
ZXN0KCk7CisgICAgZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gYWNjZXNz
Li4uIik7CisgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICAgIERl
dmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9
PiB7CisgICAgICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgICAgICAgICBsYXN0Q29u
c29sZU1lc3NhZ2UgPSBudWxsOworICAgICAgICAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2
aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CisgICAgICAgICAgICBhZGRFdmVudExpc3RlbmVy
KCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKKyAgICAgICAgICAgIGludGVy
bmFscy5wb3N0VGFzaygoKSA9PiB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVOdWxsKCJsYXN0
Q29uc29sZU1lc3NhZ2UiKTsKKyAgICAgICAgICAgICAgICBydW5EZXZpY2VNb3Rpb25UZXN0KCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2OWM4Mzg0ZTJjODE4
NjUyZjA0NWFjZjQ5NTU0Y2I2MmUyNzllZWFiLi4wYjhlODRkODA2OTc2NTlhNTQwOGVjYTA3Yjgw
Yjg1NTMxMzc4MDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCkBAIC03LDYgKzcsNyBAQAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogCiBjb21wb3NpdGluZy9pb3MgWyBQYXNzIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
IFsgUGFzcyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3Mg
WyBQYXNzIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1v
dGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNl
Y3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA4Njc3OWFmNDY1MTExMWIxODcxNWE1M2U3
YjExZTNiMTFiOTczYTExLi43ODI3YWJjMmVkYzI4NmMxYzY3ODFjNDkxOWU0OGRiZGE1OTkyYzk1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMv
ZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Ut
b3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEs
MTUgKzEsMTUgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NTogQmxvY2tlZCBhdHRlbXB0IHRv
IGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUg
YnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4
OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBs
aXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNDU6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90
aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRl
eHQgaXMgbm90IHNlY3VyZS4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyODogQmxvY2tlZCBhdHRl
bXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIs
IHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgogVGVzdHMgdGhhdCB0cnlp
bmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2
aWNlb3JpZW50YXRpb24gbG9ncyBhbiBlcnJvciBpbiBub24tc2VjdXJlIGNvbnRleHRzLgogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAogKiBSZWdpc3RlcmluZyBkZXZpY2Ugb3JpZW50
YXRpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVt
cHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNl
IHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29uc29sZU1l
c3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVu
dGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNl
Y3VyZS4iCiAKICogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lcgotUEFTUyBsYXN0
Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9u
IG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMg
bm90IHNlY3VyZS4iCitQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyAiQmxvY2tlZCBhdHRlbXB0
IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJl
YXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24t
c2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0
dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQt
ZXhwZWN0ZWQudHh0CmluZGV4IDMxYjg1ZjVkN2Q0NWYzN2Y5ZDZiMTY1ZjY3MzdkZmU1OTIyZWRm
NWMuLjQ0ZmMxOGY4OTllMzI5MzQ1N2QwOGJjYTNmZDY2YjJiOTA2Y2FjMDMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50
YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlv
bi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTYgQEAKK1JlY2VpdmVk
IGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkg
b3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLgogVGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0
IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50
YXRpb24gZG9lcyBub3QgbG9nIGFuIGVycm9yIGluIHNlY3VyZSBjb250ZXh0cy4KIAogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgogCiAKKyogUmVxdWVzdGluZyBkZXZpY2Ugb3JpZW50YXRpb24g
YWNjZXNzLi4uCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKICogUmVnaXN0ZXJpbmcgZGV2aWNl
IG9yaWVudGF0aW9uIGxpc3RlbmVyCiBQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyBudWxsCiAK
KyogUmVxdWVzdGluZyBkZXZpY2UgbW90aW9uIGFjY2Vzcy4uLgorUEFTUyByZXN1bHQgaXMgImdy
YW50ZWQiCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVuZXIKIFBBU1MgbGFzdENv
bnNvbGVNZXNzYWdlIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363930</attachid>
            <date>2019-03-07 14:37:20 -0800</date>
            <delta_ts>2019-03-07 14:55:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190307143720.patch</filename>
            <type>text/plain</type>
            <size>123319</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg2YzJkYjFmNGFlMDQy
ZWNhNDM0OTg4OTA0NTEwM2Y0N2JkMzU4NS4uNjU4M2YzMjEzYWM4ZjUyOGJiNzMwNDNlZGJiMzNl
NDExZmM1OTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE5LTAzLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25F
dmVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICog
ZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250
cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
OjpzaG91bGRBbGxvd0FjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OnNldEFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBk
b20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyOjphY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9u
RXZlbnQuaDoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGw6CisgICAg
ICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50OjpyZXF1ZXN0UGVy
bWlzc2lvbik6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5o
OiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmlk
bDogQWRkZWQuCisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25QZXJtaXNzaW9uU3RhdGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICog
ZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAq
IGRvbS9NaWNyb3Rhc2tzLmNwcDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OmRldmljZU1vdGlvbkNvbnRyb2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aXNBbGxvd2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRh
dGlvbkxpc3RlbmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RhcnRM
aXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3Nh
cnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmlj
ZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExp
c3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5o
OgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlh
bWw6CisKIDIwMTktMDMtMDcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPUyBXS10gUkVHUkVTU0lPTiAocjI0MjEzMik6IEZpeGVkIHBvc2l0aW9u
IGJhbm5lcnMgZmxpY2tlciBhbmQgbW92ZSB3aGVuIHNjcm9sbGluZyAoQXBwbGUsIFRlc2xhLCBZ
b3VUdWJlLCBSZWRkaXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFlNjBkMWJiMTY5NzdjOGM5MWUzNzdjOTBmOWMz
ODA1ZWQ5ZTg5NDguLjg4NTIxYTUwNWUzMTlmODQyOWVmZmYyZTUxMmJhNjlmMDhiOGY3ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTktMDMtMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9u
IC8gTW90aW9uIHBlcm1pc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTUzMjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NjQ1MzY3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEk6Cisg
ICAgICAgIC0gaHR0cHM6Ly9naXRodWIuY29tL3czYy9kZXZpY2VvcmllbnRhdGlvbi9pc3N1ZXMv
NTcKKworICAgICAgICBUaGlzIGFkZHMgbmV3IFNQSSB0byBXS1VJRGVsZWdhdGVQcml2YXRlLCB1
bnRpbCB3ZSBjYW4gbWFrZSB0aGlzIEFQSS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAg
ICAgKEFQSTo6VUlDbGllbnQ6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAo
V0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
VUlDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNl
dERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnNob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpuZXh0RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NEZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAx
OS0wMy0wNyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gRGlzYWJsZSBwZXJtaXNzaXZlIGNhbGwgbG9nZ2luZyBpbiBzYW5kYm94CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGY1MmJkNGY1NjA2NDQ5MmVjOGE0NDdhNzFlODU2ZGI5ZDA0ZDQ0NDYu
LjRjYWNmYzZlMDU2YTY0OWQxNzA5MjRkODgyYTQyMDVkNTY1ZmJjMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC02NjksNiArNjY5LDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMK
ICAgICBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsCiAgICAgZG9tL0RldmljZU1vdGlvbkV2
ZW50LmlkbAogICAgIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbAorICAgIGRvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsCisgICAgZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsCiAgICAgZG9tL0RvY3VtZW50LmlkbAogICAgIGRv
bS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogICAgIGRvbS9Eb2N1bWVudEZy
YWdtZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKaW5kZXggYzQyMzAwNjJjMjNkYWNjODAxMjg1ZjdjZGY0MGMwOTNlNjMyOTkzMS4uZTI4
MTY5ODJmMjg5ZTQxOWFmNjU4MGRmOTkzZWI3ODdlNDVjZjU2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC01NjIsNiArNTYyLDggQEAg
JChQUk9KRUNUX0RJUikvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCiAkKFBST0pFQ1RfRElSKS9k
b20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vRGV2aWNlTW90
aW9uRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5p
ZGwKKyQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRs
CiskKFBST0pFQ1RfRElSKS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9Eb2N1bWVudC5pZGwKICQoUFJPSkVDVF9ESVIp
L2RvbS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogJChQUk9KRUNUX0RJUikv
ZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGM2NGFhM2NmNTkyYTQ5M2I1OWJjZDgyNDAxMWEw
ZWNkZDdlN2YxYTcuLjIwMjI1NGM3MjBmMGJmMDM0MmY3NDBlYzhhOWZlMmZmOTMzZDI2OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC00NTksNiArNDU5LDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRGV2aWNlTW90aW9uRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RldmljZU1vdGlvbkV2ZW50LmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25FdmVudC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNl
T3JpZW50YXRpb25FdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNEb2N1bWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4ZTY1ZDQ3ZTdhMWMyOWE0ZjhmNDQx
MjFjMzA4NTlhZTU1NDM3NTYyLi5lM2ZjMTc2ZmI4MTQ5YjIzODlkMDU2Njk3ZDhiNjdjOWM4MzFj
OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTU2OSw2ICs1NjksOCBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vRGF0YVRyYW5zZmVySXRlbUxp
c3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9kb20vRG9jdW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Eb2N1
bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRG9j
dW1lbnRGcmFnbWVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0ZTM5MmYzM2RkZWVkYjI2YTQ2
MjdlOTM0MzhhMDMzZTM4ZmRjMmE3Li43NWNkZjVlM2EzOTczMzc4Zjc3OGRkZGY1MTE0OGE3M2Zk
MjA1ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtODIwLDkgKzgyMCwxMSBAQCBkb20vRGVjb2RlZERh
dGFEb2N1bWVudFBhcnNlci5jcHAKIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcAogZG9t
L0RldmljZU1vdGlvbkRhdGEuY3BwCiBkb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCitkb20vRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcAogZG9tL0RldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuY3BwCiBk
b20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKK2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uRXZlbnQuY3BwCiBkb20vRG9jdW1lbnQuY3BwCiBkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNw
cAogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC0yNzIyLDYgKzI3MjQsOCBAQCBKU0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmNwcAogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCiBKU0Rl
dmljZU1vdGlvbkV2ZW50LmNwcAogSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAorSlNEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmNwcAorSlNEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQuY3BwCiBKU0RvY3VtZW50LmNwcAogSlNEb2N1bWVudEFuZEVsZW1l
bnRFdmVudEhhbmRsZXJzLmNwcAogSlNEb2N1bWVudEZyYWdtZW50LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkwMjIyMWFl
Nzg0NTMzNGRmN2RhYTJlMDBkNWZlNDEyMjE0MTAwNDYuLjMxZTRhYWIxMmU4ZDc2MDVjNDAwMTFm
ZTFjNDIwOGMxNmY2YTFlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTQsNiArMTI1NCw4IEBACiAJCTQ1RkVBNUQwMTU2
RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NUZFQTVDRTE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MEJCNjE2
MUQwQTFCRjAwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEJCNjE0MUQwQTFCRUMwMDIyMTgxMiAvKiBC
YXNlNjRVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NjBDQkYzNjFENEJDRDBFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBD
QkYzNDFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggKi87IH07CisJ
CTQ2MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MURB
NTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAq
LzsgfTsKKwkJNDYwRTMwNzcyMjJGNEYwMzAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2NUVERDlGMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi87IH07CiAJCTQ2MjE4QUNCMUY3MkQ2NEUwMDU3
NEZCRSAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzNTIxQUEyMDgxMDkwQjAw
QzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VC
NjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC0xMjcxLDYg
KzEyNzMsNyBAQAogCQk0NkI5NTE5ODIwN0Q2MzQ3MDBBN0QyREQgLyogR2xvYmFsRnJhbWVJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkI5NTE5MTIwN0Q2MzJEMDBBN0QyREQgLyogR2xvYmFsRnJhbWVJZGVudGlmaWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZCOTUxOTkyMDdE
NjM0RDAwQTdEMkREIC8qIFJlbW90ZURPTVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOEUyMDdENjMyQTAwQTdEMkREIC8qIFJlbW90
ZURPTVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQ2Qjk1MTlBMjA3RDYzNTQwMEE3RDJERCAvKiBSZW1vdGVGcmFtZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOTIyMDdENjMyRTAw
QTdEMkREIC8qIFJlbW90ZUZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovOyB9OwogCQk0NkJDQkJD
MjIwODUwMDhGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkJDQkJDMDIwODUwMDdGMDA3MTA2
MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDMzc2NjIyMDg1MTc3RDAwQzczODI5IC8qIEpTUmVt
b3RlRE9NV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkMzNzY2MTIwODUxNzZEMDBDNzM4MjkgLyogSlNSZW1vdGVET01XaW5kb3cuaCAqLzsg
fTsKIAkJNDZDNjk2Q0IxRTcyMDVGNzAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5
NzkzNyAvKiBDUFVNb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTc3MjUsNiArNzcyOCw4IEBACiAJCTQ2MENCRjMzMUQ0QkNDRkUwMDky
RTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJv
cGVydGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVdpbmRvd1By
b3BlcnRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYwRDE5NDQxRkNFMjFE
RDAwQzNEQjg1IC8qIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYxREE1MkEyMjJGNDg2
RjAwRDA1QTg3IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYxREE1MkMyMjJGNDg2RjAwRDA1QTg3IC8q
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyogUG93
ZXJPYnNlcnZlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
b3dlck9ic2VydmVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNTIx
QUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdpbmRvd1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2MzUyMUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaW5kb3dQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03NzMyLDYgKzc3MzcsOSBAQAogCQk0NjNFQjYyMTFCODc4OUNCMDA5
NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUYWdDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NDI0MDQ1
MjBFQUYwRUQwMEIyOUZEMiAvKiBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERhdGFiYXNlTWFuYWdlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW50
aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDY1RUREOUQyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
bkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RUREOUYyMjJGNEVD
MzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVFRERB
MDIyMkY0RUM0MDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkRD
NkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjZFRDhEMjFFREUwMTM1MDA1RTQzRjYgLyogSlNET01SZWN0TGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVJlY3RMaXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NzFFMDYzMUQ2N0E1N0IwMEM2QjQ5NyAvKiBDYW52
YXNQYXRoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhbnZhc1Bh
dGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzc1NCw2ICs3NzYyLDggQEAK
IAkJNDZCOTUxOTIyMDdENjMyRTAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2Qjk1MTkzMjA3RDYzMkYwMEE3RDJERCAvKiBBYnN0cmFjdERPTVdpbmRvdy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBYnN0cmFjdERPTVdpbmRv
dy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjk1MTk0MjA3RDYzMzAwMEE3
RDJERCAvKiBBYnN0cmFjdEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFic3RyYWN0RnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NkI5NUJGMjIyMzFDRkI4MDA1M0E1MDQgLyogRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ2Qjk1QkY0MjIzMUNGQjgwMDUzQTUwNCAvKiBEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QkNCQkJFMjA4NTAwNUIwMDcxMDYzOCAv
KiBKU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2QkNCQkMwMjA4NTAwN0YwMDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRv
d0Jhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZW1vdGVET01XaW5k
b3dCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QkNCQkMxMjA4NTAwODAw
MDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NDg0LDYgKzI3NDk0LDggQEAKIAkJCQkzMUZCMUE1NDEyMEE1
RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwICovLAogCQkJCTMxRkIxQTU1MTIw
QTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5oICovLAogCQkJCTMxRkIxQTU2MTIw
QTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5pZGwgKi8sCisJCQkJNDZCOTVCRjIy
MjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJv
bGxlci5jcHAgKi8sCisJCQkJNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovLAogCQkJCTU5QThGMUQ3MTFBNjk1
MjAwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTU5QThGMUQz
MTFBNjk1MDgwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwICovLAog
CQkJCTU5QThGMUQ1MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIuaCAqLywKQEAgLTI3NDkyLDYgKzI3NTA0LDExIEBACiAJCQkJNTlBODVFQTExMTlENjhEOTAw
REVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwICovLAogCQkJCTU5QTg1RUEzMTE5
RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggKi8sCiAJCQkJNTlBODVF
QUExMTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsICovLAorCQkJ
CTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuY3BwICovLAorCQkJCTQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQuaCAqLywKKwkJCQk0NjVFREQ5RDIyMkY0RUMzMDBCNDZFMTYgLyog
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk0NjVFREQ5RjIyMkY0
RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5o
ICovLAorCQkJCTQ2NUVEREEwMjIyRjRFQzQwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCAqLywKIAkJCQlBODE4NUYzNDA5NzY1NzY1MDA1ODI2
RDkgLyogRG9jdW1lbnQuY3BwICovLAogCQkJCUE4MTg1RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBE
b2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlFMUUwNEQwMEFGODAyMCAvKiBEb2N1bWVudC5p
ZGwgKi8sCkBAIC0yOTAxNiwxMiArMjkwMzMsMTUgQEAKIAkJCQkzMUZCMUE1OTEyMEE1RDA2MDBE
QzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFG
QjFBNUIxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxRkIxQTVEMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlB
OEYxRDgxMUE2OTUyMDAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTQwMzc5RDEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5MzA5QTEzMTFGNEFFNkEwMDI1MDYw
MyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU5
QThGMUQ2MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTU5MEUxQjQ5MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmll
bnRhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QTg1RUE0MTE5RDY4RUMwMERFRjFF
RiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjBFMzA3
NTIyMkY0RUZEMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQk0NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyQjQw
MUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3MkI0MDNBMjE3NzI1ODEwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZl
cnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY3NzI1RkQxQTVCM0FEOTAwM0MyNEREIC8qIERG
QS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
TW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCmlu
ZGV4IDNlY2M1YmQ0YzBjN2VlYzE4ZTlmYjhlNDE1NmYxOGJmM2VmNDUzM2QuLjUxZDcxYTBlN2Nk
Nzg0M2QxNTgyYjAzOWNjZTIzYTgyNzI1M2U5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25FdmVudC5oCkBAIC0yNSwxMyArMjUsMTQgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU1vdGlvbkRhdGE7CiAKLWNs
YXNzIERldmljZU1vdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIERldmlj
ZU1vdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25FdmVu
dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbAppbmRleCBmMmY1
ZGYyMGZjZTUzYmMxM2I1YWJlNmQ0MThlMjBiZDVhNGZkMzg2Li4yN2YyYzU1NzIxMWQ1ZDBlNGY1
MjRiNjZkOTFkZDQ4NDI3N2RjMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlTW90aW9uRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwKQEAgLTU3LDMgKzU3LDUgQEAKICAgICBkb3VibGU/IGJldGE7CiAgICAgZG91Ymxl
PyBnYW1tYTsKIH07CisKK0RldmljZU1vdGlvbkV2ZW50IGltcGxlbWVudHMgRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNDkyNjhkYmM4OTE0YzQ3YTBhYTY0Y2Y4MzdjOTM1ZjZmMTM0ZGI1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29u
dHJvbGxlci5oIgorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUg
IkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkK
K3sKKyAgICBBU1NFUlQoJm1fZG9jdW1lbnQudG9wRG9jdW1lbnQoKSA9PSAmbV9kb2N1bWVudCk7
Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpz
aG91bGRBbGxvd0FjY2VzcyhGdW5jdGlvbjx2b2lkKGJvb2wgZ3JhbnRlZCk+JiYgY2FsbGJhY2sp
Cit7CisgICAgaWYgKG1fYWNjZXNzU3RhdGUpCisgICAgICAgIHJldHVybiBjYWxsYmFjaygqbV9h
Y2Nlc3NTdGF0ZSk7CisKKyAgICBhdXRvKiBwYWdlID0gbV9kb2N1bWVudC5wYWdlKCk7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soZmFsc2UpOworCisgICAgbV9wZW5k
aW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBpZiAobV9wZW5kaW5n
UmVxdWVzdHMuc2l6ZSgpID4gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyht
X2RvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgc2V0QWNjZXNzU3RhdGUoZ3JhbnRlZCk7CisgICAgfSk7Cit9CisKK3ZvaWQg
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpzZXRBY2Nlc3NTdGF0
ZShib29sIGdyYW50ZWQpCit7CisgICAgQVNTRVJUKCFtX2FjY2Vzc1N0YXRlKTsKKworICAgIG1f
YWNjZXNzU3RhdGUgPSBncmFudGVkOworCisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBXVEZN
b3ZlKG1fcGVuZGluZ1JlcXVlc3RzKTsKKyAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBwZW5kaW5n
UmVxdWVzdHMpCisgICAgICAgIHJlcXVlc3QoZ3JhbnRlZCk7CisKKyAgICBpZiAoIWdyYW50ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZy
YW1lKCk7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dChtX2RvY3VtZW50LmZyYW1lKCkpKSB7CisgICAgICAgIGZyYW1lLT53aW5kb3co
KS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAg
ICAgIGZyYW1lLT53aW5kb3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vz
c2FyeSgpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MWZjNzkyNTM0ODYyY2E2M2M2OTE1MmZmMzhjMTBjZmFiY2ZkYWI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFzcyBE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyPiB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKERvY3VtZW50Jik7CisKKyAgICBj
b25zdCBPcHRpb25hbDxib29sPiYgYWNjZXNzU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vz
c1N0YXRlOyB9CisgICAgdm9pZCBzaG91bGRBbGxvd0FjY2VzcyhGdW5jdGlvbjx2b2lkKGJvb2wg
Z3JhbnRlZCk+JiYpOworCitwcml2YXRlOgorICAgIHZvaWQgc2V0QWNjZXNzU3RhdGUoYm9vbCk7
CisKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBPcHRpb25hbDxib29sPiBtX2FjY2Vz
c1N0YXRlOworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKGJvb2wpPj4gbV9wZW5kaW5nUmVxdWVz
dHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmgKaW5kZXggMDI1YjJlMzJhNzUxZTQyZjY1MGJiNTNiNTE1YTEwYmRiNTI3ZjQ3OC4uNjI4
NzA4YjZlODRiNTI2MThlOTY4M2NkNmNkZTY3ZjNmYTExNjhmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCkBAIC0yNSwxMyArMjUsMTQgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmlj
ZU9yaWVudGF0aW9uRGF0YTsKIAotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25FdmVudCBmaW5hbCA6
IHB1YmxpYyBFdmVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGZpbmFsIDogcHVi
bGljIEV2ZW50LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPERldmljZU9yaWVudGF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBvcmllbnRhdGlv
bikKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5p
ZGwKaW5kZXggMTNmZjdiYWRjMGU1OTExNjYzNTk1ZDE1ZDExZGJkNjBhMzMzOWZkYi4uN2YzNWYx
MGQxOTE3YTc1NGY4NjAxYjhhYWUwYjllZDcxOTgyYWEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbApAQCAtNTUsMyArNTUsNCBAQAogI2VuZGlm
CiB9OwogCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGltcGxlbWVudHMgRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTA5NjE2ZDYxZjZmOTE0NDEx
ZDM4Y2FkNTBmMzRkZGMxZGQ5NzZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25FdmVudC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJVc2Vy
R2VzdHVyZUluZGljYXRvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQ6
OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUGVybWlzc2lvblByb21pc2Um
JiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRvbVdpbmRvdygpOwor
ICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBicm93c2luZyBjb250ZXh0Il9zIH0pOworCisgICAg
aWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCisgICAg
ICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJD
YWxsaW5nIHJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUiX3MgfSk7
CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghd2luZG93LT5pc0FsbG93ZWRU
b1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgZG9j
dW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwg
cmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOworICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5k
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5zaG91bGRBbGxvd0Fj
Y2VzcyhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7
CisgICAgICAgIHByb21pc2UucmVzb2x2ZShncmFudGVkID8gUGVybWlzc2lvblN0YXRlOjpHcmFu
dGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0pOworfQorI2VuZGlmCisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmFlNjgxZjM4ZjlkODllN2Iw
N2Q3YTI0NGJmNmY3MzU3Zjg2Zjg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudCB7CitwdWJsaWM6CisKKyNpZiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorICAgIHVzaW5nIFBlcm1pc3Npb25TdGF0ZSA9IERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU7CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47CisgICAg
c3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlz
ZSYmKTsKKyNlbmRpZgorCitwcm90ZWN0ZWQ6CisgICAgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
bkV2ZW50KCkgPSBkZWZhdWx0OworICAgIH5EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQo
KSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY4MzFhNDY1ZjBiNzZiYjI1YTgwNTg3MWFjMmY1NmU3MjcyMGVlNzkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2
ZW50LmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9REVW
SUNFX09SSUVOVEFUSU9OLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQgeworICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwgRW5h
YmxlZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUEldIHN0YXRpYyBQcm9t
aXNlPERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU+IHJlcXVlc3RQZXJt
aXNzaW9uKCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ2NWVk
YmE1NjBhMzJmOWE2MjAxMmJkZGRmMmUzNTY1Y2NiNWY4ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlIHsgR3JhbnRlZCwgRGVuaWVkIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMTgxNDAzMDFlZmQ2MWY0ZjMxMjU2N2Q1OTQ4MzQ4ODhlNWM4MzMz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Vu
dW0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSB7ICJncmFudGVkIiwg
ImRlbmllZCIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE0MjkyNzg2Y2M4ZWZlZWY1
YjFhMmZjMTVkYzcxMGJmZWMxYzMxMTAuLjY3YjFiMWUxNThkNzI2MTY4ZTc0MWY3YTNiNzZkNGQ4
MWUwYWRiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjQ1LDYgKzI0NSw3IEBACiAK
ICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogI2luY2x1ZGUgIkRldmljZU1vdGlvbkV2
ZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIgogI2VuZGlmCiAKQEAg
LTg2MzgsNiArODYzOSwyMCBAQCB2b2lkIERvY3VtZW50OjpmcmFtZVdhc0Rpc2Nvbm5lY3RlZEZy
b21Pd25lcigpCiAgICAgZGV0YWNoRnJvbUZyYW1lKCk7CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorCitEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXImIERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIo
KQoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAhPSB0aGlzKQorICAgICAgICByZXR1cm4gdG9w
RG9jdW1lbnQoKS5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKTsK
KworICAgIGlmICghbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIp
CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyID0g
c3RkOjptYWtlX3VuaXF1ZTxEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXI+KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyOworfQorCisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJ
KQogV29ya2xldCYgRG9jdW1lbnQ6OmVuc3VyZVBhaW50V29ya2xldCgpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDc3OGMyMTMzYzU0MzU3ZGQ2NzcxOTlkZjcxOTQxN2IzZWRlOTMxMWEuLmFj
ZGE4MDYyZDQzMDZjMDY2YjA3YWRhODEyNTMwZjBiMjc4ZmE0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0yMjUsMTIgKzIyNSwxNSBAQCBjbGFzcyBUb3VjaDsKIGNsYXNzIFRvdWNoTGlzdDsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50OwogY2xhc3MgRGV2aWNlTW90aW9u
Q29udHJvbGxlcjsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50OwogY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOwogI2VuZGlmCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7CisjZW5kaWYKIAogI2lmIEVOQUJMRShURVhUX0FVVE9T
SVpJTkcpCiBjbGFzcyBUZXh0QXV0b1NpemluZzsKQEAgLTEyMTQsMTIgKzEyMTcsMTYgQEAgcHVi
bGljOgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudElPUy5oPgogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyJiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29u
c3Q7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyJiBkZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNpbXVsYXRlRGV2aWNl
T3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1h
KTsKICNlbmRpZgogCisgICAgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyJiBkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKTsKKyNlbmRp
ZiAvLyBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAgICAgY29uc3QgRG9jdW1lbnRUaW1p
bmcmIHRpbWluZygpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRUaW1pbmc7IH0KIAogICAgIFdF
QkNPUkVfRVhQT1JUIGRvdWJsZSBtb25vdG9uaWNUaW1lc3RhbXAoKSBjb25zdDsKQEAgLTE4NzIs
MTIgKzE4NzksMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEhhc0ZyYW1lU3BlY2lmaWNTdG9y
YWdlQWNjZXNzKGJvb2wpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlTW90
aW9uQ2xpZW50PiBtX2RldmljZU1vdGlvbkNsaWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2
aWNlTW90aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxEZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gbV9kZXZpY2VPcmllbnRhdGlvbkNs
aWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBt
X2RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKICNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0
cjxEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI+IG1fZGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOworI2VuZGlmCiAKICAgICBHZW5lcmlj
VGFza1F1ZXVlPFRpbWVyPiBtX2xvZ01lc3NhZ2VUYXNrUXVldWU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3Bw
CmluZGV4IGMwZGIyOTE4NjRkOTYxNDllZmY1MGE0M2ViZDJmODdmNjA1NGQwZTcuLjkzNzExOTA5
Zjk0MDVlNzBhNjVmNGFiNWQzNzNkMTg1ZDVkNDIwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFdmVudFBh
dGguaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiVXNlckdl
c3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlUG9ydC5jcHAKaW5kZXggMTg4Y2MzMWZlYmI3ODdmOTRkNDc0ZDFkNjYxZjE4
N2U1NjY0NDk5YS4uNDAyMjRmODc0ODRmNmE3ZDY0ZTliOWEyNjQwNTJiM2ZmZjY5ZmFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5o
IgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NaWNyb3Rhc2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNw
cAppbmRleCAyNWE0N2E2ODM5NWU4MjVmMWIwZDYxNmI5NzEwYTNlNmJiNWQ3OGFiLi4yY2NjZjBi
MjJjMDc3NDIxNzAxYjFjNmYxNjY5ZjI5MGFmOWRkYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWljcm90YXNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01pY3JvdGFz
a3MuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
TWljcm90YXNrcy5oIgogCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5k
ZXggM2EwZGMzYmIwM2RjZDcwYmU5NGVmNGI5ODYyMWQ5Nzk1NjBlN2ViYS4uNDdlM2M1YWE3NDg1
Y2Y1MWQ2M2ViMDM1OWZlYjExNTA3MWI1Y2I1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC00ODIsNiArNDgyLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFzU3Rv
cmFnZUFjY2VzcyhTdHJpbmcmJiAvKnN1YkZyYW1lSG9zdCovLCBTdHJpbmcmJiAvKnRvcEZyYW1l
SG9zdCovLCB1aW50NjRfdCAvKmZyYW1lSUQqLywgdWludDY0X3QgLypwYWdlSUQqLywgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxz
ZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgLypz
dWJGcmFtZUhvc3QqLywgU3RyaW5nJiYgLyp0b3BGcmFtZUhvc3QqLywgdWludDY0X3QgLypmcmFt
ZUlEKi8sIHVpbnQ2NF90IC8qcGFnZUlEKi8sIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAo
Ym9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soZmFsc2UpOyB9CiAKKyNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQorICAgIHZpcnR1YWwgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKHRydWUpOyB9Cisj
ZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRNZW51RWxlbWVudChIVE1MTWVudUVs
ZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTWVudUVsZW1lbnQoSFRNTE1l
bnVFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVJdGVtRWxlbWVu
dChIVE1MTWVudUl0ZW1FbGVtZW50JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5k
ZXggZGZhMTEyNDg0YTNhNDc3ZTNkYzAyMmEzNGNhMzRkZjNmZmE5M2UzMi4uNTk4OTFkMjNhMDQy
ZmJiZDc3ODM0MjdkNTAzYWExMjQxOTNhNmFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRXZl
bnQuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCkBAIC0xODI2LDUwICsx
ODI3LDEzNCBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZQogICAgIGVsc2UgaWYgKGV2ZW50TmFt
ZXMoKS5pc0dhbWVwYWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgaW5jcmVtZW50R2Ft
ZXBhZEV2ZW50TGlzdGVuZXJDb3VudCgpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9y
aWVudGF0aW9uRXZlbnQpCisgICAgICAgIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRp
b25JZk5lY2Vzc2FyeSgpOworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
ZGV2aWNlbW90aW9uRXZlbnQpCisgICAgICAgIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9u
SWZOZWNlc3NhcnkoKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9CiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnNldHRp
bmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSAmJiBkb2N1bWVudCgpICYmIGRv
Y3VtZW50KCktPmxvYWRlcigpICYmIGRvY3VtZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmllbnRh
dGlvbkV2ZW50RW5hYmxlZCgpKSB7CisKK0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogRE9N
V2luZG93OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdAorewogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgICAgIGlmICgoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
ZXZpY2Vtb3Rpb25FdmVudCB8fCBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVu
dGF0aW9uRXZlbnQpKSB7Ci0gICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01h
aW5GcmFtZSgpICYmIGlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkKLSAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkuYWRk
RGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkuYWRkRGV2
aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNTZWN1cmVDb250ZXh0KCkpCi0gICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fz
bid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxv
Y2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVu
ZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiJfcyk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVudCgp
LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSA6IG51bGxwdHI7CiAjZWxzZQotICAgICAg
ICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewotICAg
ICAgICAgICAgaWYgKGlzU2FtZVNlY3VyaXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3Vy
ZUNvbnRleHQoKSkgewotICAgICAgICAgICAgICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVy
KiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAg
ICAgICAgICAgICAgICAgICBjb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlz
KTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJC
bG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxk
IGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBw
YWdlLiJfcyk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
ZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0gICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlP
cmlnaW5Bc01haW5GcmFtZSgpICYmIGlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgICAgICAgICBj
b250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU2VjdXJlQ29udGV4dCgpKQotICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmlj
ZSBvcmllbnRhdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBz
YW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRl
bXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVz
ZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiJfcyk7Ci0gICAgICAgICAgICB9
CisgICAgcmV0dXJuIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpOwor
I2VuZGlmCit9CisKK0RldmljZU1vdGlvbkNvbnRyb2xsZXIqIERPTVdpbmRvdzo6ZGV2aWNlTW90
aW9uQ29udHJvbGxlcigpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBy
ZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkg
OiBudWxscHRyOworI2Vsc2UKKyAgICByZXR1cm4gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJv
bShwYWdlKCkpOworI2VuZGlmCit9CisKK2Jvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURl
dmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBpZiAo
IWZyYW1lKCkgfHwgIWZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVu
YWJsZWQoKSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+bG9hZGVyKCkgfHwgIWRvY3Vt
ZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CisgICAg
ICAgIG1lc3NhZ2UgPSAiQVBJIGlzIGRpc2FibGVkIl9zOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKCFpc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBtZXNzYWdl
ID0gIkJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZSJfczsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIGlmICghaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgp
KSB7CisgICAgICAgIG1lc3NhZ2UgPSAiU291cmNlIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgc2Ft
ZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZSJfczsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBET01XaW5kb3c6OmlzQWxs
b3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0Cit7CisgICAgU3RyaW5nIGlubmVyTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRv
VXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oaW5uZXJNZXNzYWdlKSkgeworICAgICAgICBtZXNz
YWdlID0gbWFrZVN0cmluZygiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogIiwgaW5uZXJNZXNzYWdlLCAi
LiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGZyYW1lKCktPnNl
dHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7CisgICAg
ICAgIGF1dG8gYWNjZXNzU3RhdGUgPSBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5hY2Nlc3NTdGF0ZSgpOworICAgICAgICBpZiAoYWNjZXNz
U3RhdGUgJiYgISphY2Nlc3NTdGF0ZSkgeworICAgICAgICAgICAgbWVzc2FnZSA9ICJObyBkZXZp
Y2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVy
bWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLiJfczsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KQot
ICAgICAgICBmYWlsZWRUb1JlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpOwotI2Vu
ZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIGlmICghYWNjZXNzU3Rh
dGUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRh
dGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVl
c3RlZCBhbmQgZ3JhbnRlZC4iX3M7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCit2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRh
dGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpOworICAg
IGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVu
dExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGVycm9yTWVz
c2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0
ZW5lcihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMt
PmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xsZXItPmFkZERldmljZUV2
ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0Zv
ckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQoreworICAgIGlmIChoYXNFdmVudExpc3Rl
bmVycyhldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChhdXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKCkpCisgICAgICAgIGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50
TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JE
ZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKCFoYXNFdmVudExpc3RlbmVycyhl
dmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBh
dXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2aWNlTW90aW9uQ29udHJvbGxlcigpOworICAgIGlm
ICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExp
c3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGVycm9yTWVzc2Fn
ZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5l
cihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25F
dmVudExpc3RlbmVyKCk7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3Vt
ZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlz
dGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmlj
ZU1vdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnRO
YW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1
dG8qIGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkpCisgICAgICAg
IGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQog
CiB2b2lkIERPTVdpbmRvdzo6ZmFpbGVkVG9SZWdpc3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVu
ZXIoKQogewpAQCAtMTk0MSwyMiArMjAyNiw2IEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVu
dExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAg
ICAgICAgIHJlbW92ZVVubG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7CiAgICAgZWxzZSBpZiAoZXZl
bnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmV1bmxvYWRFdmVudCAmJiBhbGxvd3NCZWZvcmVV
bmxvYWRMaXN0ZW5lcnModGhpcykpCiAgICAgICAgIHJlbW92ZUJlZm9yZVVubG9hZEV2ZW50TGlz
dGVuZXIodGhpcyk7Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2
aWNlbW90aW9uRXZlbnQgJiYgZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNl
TW90aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAg
IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVu
dCAmJiBkb2N1bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIoKS5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSNlbHNlCi0gICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewot
ICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1v
dGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRyb2xsZXItPnJl
bW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0gICAgICAgIGlmIChE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92
ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0KLSNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LnNjcm9sbEV2ZW50KQogICAgICAgICBkZWNyZW1lbnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50
KCk7CkBAIC0xOTc3LDYgKzIwNDYsMTIgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlz
dGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICBl
bHNlIGlmIChldmVudE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAg
ICAgIGRlY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKTsKICNlbmRpZgorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAgICBzdG9wTGlzdGVuaW5nRm9y
RGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpCisgICAgICAgIHN0b3BMaXN0ZW5pbmdG
b3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTIwNTksMTggKzIxMzQsOSBAQCB2b2lkIERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMoKQogICAgIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwog
CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAg
ICAgIGRvY3VtZW50LT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZl
bnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgICAgICBkb2N1bWVudC0+ZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgIH0K
LSNlbHNlCi0gICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJl
bW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSAgICBpZiAoRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50
TGlzdGVuZXJzKCp0aGlzKTsKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotI2VuZGlm
IC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JE
ZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JE
ZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIGlmIChtX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKaW5kZXggYmJiZmE5NTg3MmU0YTMzZTczNDI1MjgxZTRhY2NiNGY3MDU5YjFjNC4u
MWQ4YTY0MjkyZjAxZjA5ZjE1MTJiY2RkNjY4NmZlYzQ3MmViYTJmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCkBAIC04Miw2ICs4MiwxMSBAQCBjbGFzcyBWaXN1YWxWaWV3cG9ydDsKIGNsYXNz
IFdlYktpdE5hbWVzcGFjZTsKIGNsYXNzIFdlYktpdFBvaW50OwogCisjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKK2NsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7CitjbGFzcyBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CisjZW5kaWYKKwogc3RydWN0IEltYWdlQml0bWFwT3B0
aW9uczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIApAQCAtMzExLDYgKzMxNiwxOSBAQCBwdWJs
aWM6CiAgICAgdW5zaWduZWQgc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50KCkgY29uc3QgeyByZXR1
cm4gbV9zY3JvbGxFdmVudExpc3RlbmVyQ291bnQ7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50
YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgc3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVu
dGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90
aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25J
Zk5lY2Vzc2FyeSgpOworCisgICAgYm9vbCBpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVu
dGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisgICAgYm9vbCBpc0FsbG93ZWRUb0FkZERl
dmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKKwor
ICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKCkgY29uc3Q7CisgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciogZGV2aWNlTW90aW9uQ29u
dHJvbGxlcigpIGNvbnN0OworI2VuZGlmCisKICAgICB2b2lkIHJlc2V0QWxsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKCk7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElP
U19HRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNl
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3Bw
CmluZGV4IDMzNjdkM2RiZjU5ZmMzMzU3MjQ5NzU4YWM2M2RkMTcyNWUwNzYzNjYuLjg0MmI4NTRl
ZTI1MTI1OGE0MTA2MmJmZTBkMDY1NDRlZGIzYzZmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VDb250cm9sbGVyLmNwcApAQCAtNjksNiArNjksMTEgQEAgdm9pZCBEZXZpY2VDb250cm9s
bGVyOjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyhET01XaW5kb3cmIHdpbmRvdykKICAg
ICAgICAgbV9jbGllbnQuc3RvcFVwZGF0aW5nKCk7CiB9CiAKK2Jvb2wgRGV2aWNlQ29udHJvbGxl
cjo6aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRvdykgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9saXN0ZW5lcnMuY29udGFpbnMoJndpbmRvdyk7Cit9CisKIHZvaWQgRGV2aWNl
Q29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgZm9y
IChhdXRvJiBsaXN0ZW5lciA6IGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycy52YWx1ZXMoKSkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKaW5kZXggZTE2MDM4NWFmZTJmOTcz
NTNjMGVhMjJmMjllODU2ZjE4ZTIwYjFhOC4uM2Q1ZjkwYzUwZWU0YTU0ZmMwYWQxN2M2NDczNWRk
NjkzODczZmZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKQEAgLTQ2
LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihET01X
aW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jik7
CiAgICAgdm9pZCByZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyhET01XaW5kb3cmKTsKKyAg
ICBib29sIGhhc0RldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93JikgY29uc3Q7CiAKICAgICB2
b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQoRXZlbnQmKTsKICAgICBib29sIGlzQWN0aXZlKCkgeyBy
ZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
CmluZGV4IDMwM2Q3ZjgyZDRiMzdmZGJhMWI3ZjJkZDRhOGRhMjU3ZThhYjk3N2MuLmU4MjRkZjc2
YTg0MmYzMjA3ZmFlMGVjZTY0NDRlOWUyZjI0NWVmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwKQEAgLTc2NCw2ICs3NjQsMTEgQEAgZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6
CiAgIGluaXRpYWw6IHRydWUKICAgY29uZGl0aW9uYWw6IERFVklDRV9PUklFTlRBVElPTgogCitk
ZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkOgorICB0eXBlOiBib29sCisgIGlu
aXRpYWw6IGZhbHNlCisgIGNvbmRpdGlvbmFsOiBERVZJQ0VfT1JJRU5UQVRJT04KKwogc2hvdWxk
RW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdDoKICAgdHlwZTogYm9vbAogICBpbml0aWFsOiBmYWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggODA0YTBhZTkx
MDM5MTMzMzAzMjAzN2ExMjIwZDQ1YjAwM2RlODIzOC4uNzIzYmQzMTFhNDUwNzA4ZmQ1Y2RiZjQ5
ZDA1Y2NmZmEyMDA0NjUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sCkBAIC0xMiw2ICsxMiwxNSBAQCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZDoKICAg
Y29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICB3ZWJjb3JlTmFtZTogZGV2
aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQKIAorRGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9u
QVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGNvbmRp
dGlvbjogRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgd2ViY29yZU5hbWU6IGRldmljZU9y
aWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJQZXJt
aXNzaW9uIEFQSSBmb3IgZGV2aWNlIG9yaWVudGF0aW9uIC8gbW90aW9uIGFjY2Vzcy4iCisgIGh1
bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkRldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBl
cm1pc3Npb24oKSAvIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkiCisgIGNh
dGVnb3J5OiBleHBlcmltZW50YWwKKwogSmF2YVNjcmlwdEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wK
ICAgZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCmluZGV4IDNlYzZmMDBkMjRmYzkzOTQyNjkwYTNlNzI5ZmQwN2VkN2EzYWE2YzcuLjk0
MGI2OTcxZWE0MGE0ZGIyOTM1YmVhMmE5ODk2Yjc5ZTE1ZDY1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0xNzMsNiArMTczLDEwIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKFdlYktpdDo6V2ViUGFnZVByb3h5
KikgeyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdmly
dHVhbCB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7
IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBPYmplY3QqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2UoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBPYmplY3QqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCmluZGV4IGE0MTY3NjZlMmIzODNlMWI1MTQ0OGZjOWNjNDAyYzAxZjFiZWIzYWEuLjM4ZTVi
MTcwODYyNmYwYjQ5MmQ4NzEzMGQ2OTZmMzcyODg1OWNlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IENsaWVudFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRl
ZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJ
Q2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xp
ZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50
VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYx
MSwgV0tQYWdlVUlDbGllbnRWMTI+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxX
S1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1Bh
Z2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VV
SUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNs
aWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xp
ZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMz4gVmVyc2lvbnM7CiB9OwogCiAjaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCkBAIC0xOTAzLDYgKzE5MDMsMTYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGll
bnQKICAgICAgICAgICAgIG1fY2xpZW50LnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSh0b0FQ
SSgmcGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkocmVxdWVzdGluZ0RvbWFpbi5pbXBsKCkpLCB0
b0FQSShjdXJyZW50RG9tYWluLmltcGwoKSksIHRvQVBJKGxpc3RlbmVyLnB0cigpKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICAgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5h
bAorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtX2Ns
aWVudC5zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHRvQVBJKCZw
YWdlKSwgdG9BUEkoJm9yaWdpbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOworICAgICAg
ICB9CisjZW5kaWYKKwogICAgICAgICAvLyBQcmludGluZy4KICAgICAgICAgZmxvYXQgaGVhZGVy
SGVpZ2h0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUpIGZpbmFsCiAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVu
dC5oCmluZGV4IDVlNTk3M2Y5YWIxOGI0NmE2NWVmZTA4ZWRmNWYzNTA3YTc3NWRmMGIuLmVhODg3
Mjc1NmFjMTcyMDE5MDVhZTg3OWFhYTI2NDFkN2UyNWRiZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtMTM0LDYgKzEzNCw3IEBAIHR5
cGVkZWYgdm9pZCAoKldLRGlkTG9zZVBvaW50ZXJMb2NrQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdl
LCBjb25zdCB2b2lkKiBjbGllbnRJCiB0eXBlZGVmIHZvaWQgKCpXS0hhc1ZpZGVvSW5QaWN0dXJl
SW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBib29sIGhhc1ZpZGVv
SW5QaWN0dXJlSW5QaWN0dXJlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9p
ZCAoKldLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENh
bGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tSZXNvdXJjZUxpbWl0IGxpbWl0LCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlc2lnbklucHV0RWxlbWVu
dFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldL
UGFnZVNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjayko
V0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAo
KldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1Bh
Z2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1v
ZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKQEAgLTExNDAsNiArMTE0MSwxMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlD
bGllbnRWMTIgewogICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOwog
fSBXS1BhZ2VVSUNsaWVudFYxMjsKIAordHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTMg
eworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VD
cmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAg
ICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNs
aWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlRm9j
dXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZm9jdXM7CisgICAg
V0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAg
ICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAg
ICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7
CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjAgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjA7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNz
aW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAg
IG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAg
V0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVX
aGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhh
bmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sYmFyc0FyZVZpc2libGU7CisgICAg
V0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklz
VmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1Bh
Z2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2li
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c0Jhcklz
VmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOworICAgIFdLUGFnZVNldElzUmVz
aXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VT
ZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjYgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjY7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREcmF3Owor
ICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNl
UXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0
YWJhc2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsKKyAgICBXS1BhZ2VEZWNp
ZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAg
IGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdl
SGVhZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVySGVpZ2h0Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJIZWlnaHQ7CisgICAgV0tQ
YWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFnZURyYXdGb290ZXJDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zvb3RlcjsKKyAgICBXS1Bh
Z2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKKyAgICB2b2lkKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZy
YW1lCisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyOworICAg
IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZTsKKworICAg
IC8vIFZlcnNpb24gMS4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMSAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMTsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAg
IFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7
CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMTsKKworICAgIC8vIFZlcnNpb24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQ
aWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dD
b2xvclBpY2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VV
bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsKKworICAgIC8vIFZlcnNpb24gMy4K
KyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0
LgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW51c2VkMjsgLy8gVXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2Vk
IHRvIGJlIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzLgorICAgIHZvaWQqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2Vk
NDsgLy8gVXNlZCB0byBiZSBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
LgorICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJz
aW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdDsKKyAgICBXS1BhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENsaWNrQXV0b0ZpbGxCdXR0b247CisgICAgV0tQ
YWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAg
ICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBX
S1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUg
ICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7Cisg
ICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjUgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7
CisgICAgV0tQYWdlTWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZTsKKworICAgIC8v
IFZlcnNpb24gNi4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmly
bTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9uIDcuCisg
ICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tGdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDguCisgICAg
V0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRlckxvY2tD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMb3NlUG9p
bnRlckxvY2s7CisKKyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxheUV2ZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdXRv
cGxheUV2ZW50OworCisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0dXJl
SW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhhc1ZpZGVv
SW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dyb3VuZFJl
c291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhjZWVkQmFj
a2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZlcnNpb24g
MTEuCisgICAgV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJh
bmNlQ2FsbGJhY2sgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFw
cGVhcmFuY2U7CisKKyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDb25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VTaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ2FsbGJhY2sgICAgICAgICAg
IHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3M7Cit9IFdLUGFnZVVJ
Q2xpZW50VjEzOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCmluZGV4IGRhMDMxNGFl
M2Y1OGNiZGU5ODAyOGUyNzI4OWVhZDQ0ZDZkMzQyYmIuLjgxNWU4MDE4ODhlNWQ2NjRkNjVhZTNj
YmFhZDY2NzJhMjVmZDdkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlLmgKQEAgLTM0LDYgKzM0LDcgQEAgTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KIEBjbGFzcyBXS05hdmlnYXRpb25BY3Rpb247CiBAY2xhc3MgV0tPcGVuUGFuZWxQYXJh
bWV0ZXJzOwogQGNsYXNzIFdLUHJldmlld0VsZW1lbnRJbmZvOworQGNsYXNzIFdLU2VjdXJpdHlP
cmlnaW47CiBAY2xhc3MgV0tXZWJWaWV3OwogQGNsYXNzIFdLV2ViVmlld0NvbmZpZ3VyYXRpb247
CiBAY2xhc3MgV0tXaW5kb3dGZWF0dXJlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGRiZDA1M2U3ZmJk
MGEwOTVmMDg4OGE3ZWRhMGJjMmJiYTczZTI1MzIuLjNkNzc3MTY0MDhiNzQxY2NkZDg2MzhjMGRm
YjU2Mzg3MGE4MzYwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTcxLDYgKzE3MSwxNSBAQCBzdHJ1
Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
aWRDaGFuZ2VTYWZlQXJlYVNob3VsZEFmZmVjdE9ic2N1cmVkSW5zZXRzOihCT09MKXNhZmVBcmVh
U2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwog
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRQcmVzZW50Rm9jdXNlZEVs
ZW1lbnRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTIuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkaWREaXNtaXNzRm9jdXNlZEVsZW1lbnRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJv
bGxlciAqKWNvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOworCisvKiEgQGFi
c3RyYWN0IEFsbG93cyB5b3VyIGFwcCB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIGdp
dmVuIHNlY3VyaXR5IG9yaWdpbiBzaG91bGQgaGF2ZSBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9y
aWVudGF0aW9uIGFuZCBtb3Rpb24uCisgQHBhcmFtIHNlY3VyaXR5T3JpZ2luIFRoZSBzZWN1cml0
eSBvcmlnaW4gd2hpY2ggcmVxdWVzdGVkIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50YXRp
b24gYW5kIG1vdGlvbi4KKyBAcGFyYW0gZGVjaXNpb25IYW5kbGVyIFRoZSBkZWNpc2lvbiBoYW5k
bGVyIHRvIGNhbGwgb25jZSB0aGUgYXBwIGhhcyBtYWRlIGl0cyBkZWNpc2lvbi4gUGFzcyBZRVMg
dG8gYWxsb3cgdGhlIG9yaWdpbiBhY2Nlc3MsIE5PIG90aGVyd2lzZS4KKworIElmIHlvdSBkbyBu
b3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kLCBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9yaWVudGF0
aW9uIGFuZCBtb3Rpb24gd2lsbCBiZSBncmFudGVkLgorICovCistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NGb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2lu
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKwogI2Vsc2UgLy8gVEFSR0VUX09TX0lQSE9ORQog
LSAodm9pZClfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwogLSAo
dm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggY2NiNzhhMjllMmE0YzJmZjE2
ZDQyNTI1YWU1ZTQ2MGE3ODliYjdhMy4uNjNmNTVjNDcxMjQ1NzEwY2Q4ZTk4Y2VhZGE4NzA5Mzhl
N2RhYmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApA
QCAtMTE5LDYgKzExOSw5IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdl
YlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5KikgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291
cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZChXZWJQYWdlUHJveHkmLCBXS1Jlc291cmNlTGltaXQp
IGZpbmFsOwogICAgICAgICB2b2lkIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2Vi
UGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0
IFVSTCYsIEFQSTo6RGF0YSYpIGZpbmFsOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICAgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogI2VuZGlmCiAgICAgICAgIGJv
b2wgbmVlZHNGb250QXR0cmlidXRlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdWlEZWxlZ2F0
ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM7IH0KICAg
ICAgICAgdm9pZCBkaWRDaGFuZ2VGb250QXR0cmlidXRlcyhjb25zdCBXZWJDb3JlOjpGb250QXR0
cmlidXRlcyYpIGZpbmFsOwpAQCAtMTg3LDYgKzE5MCw5IEBAIHByaXZhdGU6CiAgICAgICAgIGJv
b2wgd2ViVmlld1NhdmVEYXRhVG9GaWxlU3VnZ2VzdGVkRmlsZW5hbWVNaW1lVHlwZU9yaWdpbmF0
aW5nVVJMIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3UnVuT3BlblBhbmVsV2l0aFBhcmFtZXRl
cnNJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdl
YlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNp
b25IYW5kbGVyIDogMTsKKyNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisg
ICAgICAgIGJvb2wgd2ViVmlld1Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NGb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7CiAjZW5kaWYKICAgICAg
ICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVu
dFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdl
RGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VR
dW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFD
dXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lv
bkhhbmRsZXIgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0KaW5kZXggYjVhMGE1MDhiYzk5NmQzYzlhOTdmOTNhZjNlYTNmOTI1MDk3ZjY2NS4uOTI2MDcy
NTg3YzEwZmZjYjljYzhhOGFmNWY4NzI5NjhkN2FiZWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMzIsNiArMTMyLDkgQEAgdm9pZCBVSURl
bGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3U2F2ZURhdGFUb0ZpbGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVU
eXBlT3JpZ2luYXRpbmdVUkwgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzpzYXZlRGF0YVRvRmlsZTpzdWdnZXN0ZWRGaWxlbmFtZTptaW1lVHlwZTpvcmln
aW5hdGluZ1VSTDopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UnVuT3BlblBhbmVs
V2l0aFBhcmFtZXRlcnNJbml0aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bk9wZW5QYW5lbFdpdGhQ
YXJhbWV0ZXJzOmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KV07CiAgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2Vj
dXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3Vy
aXR5T3JpZ2luOmRlY2lzaW9uSGFuZGxlcjopXTsKKyNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1Nob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFu
ZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnNo
b3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdp
bjpkZWNpc2lvbkhhbmRsZXI6KV07CiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVu
dE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5k
bGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVj
aWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmN1cnJlbnRRdW90YTpjdXJyZW50T3Jp
Z2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6ZXhwZWN0ZWRVc2FnZTpkZWNpc2lvbkhhbmRs
ZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFG
b3JTZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVu
dE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5k
bGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVj
aWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlTmFtZTpkaXNwbGF5TmFt
ZTpjdXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4
cGVjdGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwpAQCAtODQ0LDYgKzg0NywyNiBAQCBib29s
IFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJh
bWVQcm94eSogd2ViRnJhbWVQcgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6c2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV91aURlbGVnYXRlLm1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
Rm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIpCisgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUubV9k
ZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxl
ckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpz
aG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmln
aW46ZGVjaXNpb25IYW5kbGVyOikpOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRl
bGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgc2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luOndyYXBwZXIoc2VjdXJp
dHlPcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIp
XSAoQk9PTCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRp
b25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBj
aGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZ3JhbnRlZCk7CisgICAgfSkuZ2V0KCldOworfQorI2VuZGlmCisKIHZvaWQgVUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZv
bnRBdHRyaWJ1dGVzJiBmb250QXR0cmlidXRlcykKIHsKICAgICBpZiAoIW5lZWRzRm9udEF0dHJp
YnV0ZXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDA2
NzBmMmM1Njc2ZjE5MzI4MDQ0ZWI3MTE5MzQ4YjVkN2JiZjk4YjQuLmUxOGE3MTMzN2Y4NjVkZjFl
ZGFhMWU4MmVkZTBkNmM5MzM3ZDAxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNzE3NCw2ICs3MTc0LDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVh
clVzZXJNZWRpYVN0YXRlKCkKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3MoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgdWludDY0
X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShvcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpOworICAgIG1fdWlDbGllbnQtPnNo
b3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoKnRoaXMsIG9yaWdpbi5n
ZXQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjYWxsYmFja0lEXShi
b29sIGdyYW50ZWQpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhaXNWYWxpZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0RlY2lzaW9uKGNh
bGxiYWNrSUQsIGdyYW50ZWQpLCBtX3BhZ2VJRCk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogdm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJl
cXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCiB7CiAgICAgaWYgKCFpc1JlcXVl
c3RJRFZhbGlkKHJlcXVlc3RJRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IGY1YjBiMTk1NTQ0MzIzYTZjNTZlNDZiNWYxMWMxZDY4OTBhYzk3YjEuLjNlZjk3ZjNm
NjI5ODVjZTQ0NzhlZTYzMzRlNjY4ZDhiOTVhNGQyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0xNDAxLDYgKzE0MDEsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2
b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisjZW5kaWYKKwogICAgIHN0
YXRpYyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJhbFdlYlBhZ2VQcm94eSgpOwogCiAjaWYgRU5B
QkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBhZmExZDY3YmIxMDEzMDQ4MmEyOGM4OWRiMmU2
NTA3N2U3YmIxNDcyLi4wYjEyZTJiYmZiNWUwYjVhZTUyMDNlYjMyNWE1ODYzMTljZjBkOTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC01MzMsNiArNTMzLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU3Rv
cFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJ
ZGVudGlmaWVyKQogICAgIExvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soc3RydWN0IFdlYktp
dDo6VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIElQQzo6
RGF0YVJlZmVyZW5jZSBkYXRhKSBEZWxheWVkCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgIFJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7
CisjZW5kaWYKKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgUmVnaXN0ZXJB
dHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKFN0cmluZyBpZGVudGlmaWVyLCBTdHJpbmcgY29u
dGVudFR5cGUsIFN0cmluZyBwcmVmZXJyZWRGaWxlTmFtZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlIGRhdGEpCiAgICAgUmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21GaWxl
UGF0aChTdHJpbmcgaWRlbnRpZmllciwgU3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJpbmcgZmlsZVBh
dGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDY3ZmQ3YTcyMGNlMmYzMzk3NzAzNTE0OGJk
YmQyY2VmYTdjN2ZkMzUuLjYyYjVlZmI4MWEzNzVhNWRkYjAyM2MzNTlhYWU0YjQ3YmQyZjAwYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xMzIwLDQgKzEzMjAsMTEgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwg
U3RyaW5nJiYgdG9wRnIKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7CisgICAgbV9wYWdlLnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mob3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggZjkyNmEyNThhZDg1YWIwNzc5MTZkMGNiMjM1Mjg0ZDhlYjNiZGFhNy4uMjI3YjgxNDE4NjMz
ZGUzNzJmMTM0ZjZlMWU5YjNmMTVmYWEzZTg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzY2
LDYgKzM2NiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3Ry
aW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4m
JikgZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAg
dm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikg
ZmluYWw7CisjZW5kaWYKKwogICAgIFN0cmluZyBtX2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0YWJs
ZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0
YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNl
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDg0MGEwMmRlMDhkMzZjM2FhY2YxMDlhNGUxOTM1MzRmZmU3YjFiMGIuLmFiZGY2NGQzNmMxYmMx
YWNiMDA0NDI1YWJjNTY4M2FlZWNjNzQ5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MzQ2LDYgKzYzNDYsMzAgQEAgdm9pZCBXZWJQYWdl
OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRv
cEZyYW1lSG9zdCwKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc2Vz
c2lvbklEKCksIFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChzdWJG
cmFtZUhvc3QpLCBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QodG9w
RnJhbWVIb3N0KSwgZnJhbWVJRCwgbV9wYWdlSUQsIHByb21wdEVuYWJsZWQpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAjZW5kaWYKKworI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCitzdGF0aWMgdWludDY0X3QgbmV4dERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVy
bWlzc2lvbkNhbGxiYWNrSUQoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBuZXh0Q2FsbGJhY2tJ
RCA9IDA7CisgICAgcmV0dXJuICsrbmV4dENhbGxiYWNrSUQ7Cit9CisKK3ZvaWQgV2ViUGFnZTo6
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNhbGxiYWNrKQoreworICAgIGF1dG8gY2FsbGJhY2tJRCA9IG5leHREZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKCk7CisgICAgQVNTRVJUKCFtX2RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLmNvbnRhaW5zKGNhbGxiYWNr
SUQpKTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNr
TWFwLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyhvcmlnaW4uZGF0YSgpLCBjYWxsYmFja0lEKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVj
ZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzRGVjaXNpb24odWludDY0X3QgY2Fs
bGJhY2tJRCwgYm9vbCBncmFudGVkKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX2RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwLnRha2UoY2FsbGJhY2tJRCk7
CisgICAgQVNTRVJUKGNhbGxiYWNrKTsKKyAgICBjYWxsYmFjayhncmFudGVkKTsKK30KKyNlbmRp
ZgogICAgIAogc3RhdGljIFNoYXJlU2hlZXRDYWxsYmFja0lEIG5leHRTaGFyZVNoZWV0Q2FsbGJh
Y2tJRCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggMWQwMTBhODMxYzBlZDVlZmFhNDcyNDA5YjFhMGNiMTQwMzM4OWM0Ny4uZDczZTg0ZDdjNTMz
YWE0MjdiYThjODMzNzU5ZjExZjZhYjZkMDAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTExMCw2ICsxMTEwLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNhbGxiYWNrKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFy
ZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNhbGxiYWNrKTsKICAgICB2b2lkIGRpZENvbXBsZXRlU2hhcmVTaGVldChib29sIHdhc0NvbXBs
ZXRlZCwgU2hhcmVTaGVldENhbGxiYWNrSUQgY29udGV4dElkKTsKICAgICAKQEAgLTEyMDYsNiAr
MTIxMCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRy
YWdTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIGRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0RlY2lzaW9uKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRl
ZCk7CisjZW5kaWYKKwogI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgV2ViQ29yZTo6S2V5
Ym9hcmRFdmVudCopOwogI2VuZGlmCkBAIC0xODM2LDYgKzE4NDQsMTAgQEAgcHJpdmF0ZToKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBncmFudGVkKT4+IG1f
c3RvcmFnZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tNYXA7CiAgICAgSGFzaE1hcDxTaGFyZVNoZWV0
Q2FsbGJhY2tJRCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgY29tcGxldGVkKT4+IG1fc2hhcmVT
aGVldFJlc3BvbnNlQ2FsbGJhY2tNYXA7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQorICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
IGdyYW50ZWQpPj4gbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25DYWxsYmFj
a01hcDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgIEhh
c2hNYXA8dWludDY0X3QsIHVpbnQ2NF90PiBtX2FwcGxpY2F0aW9uTWFuaWZlc3RGZXRjaENhbGxi
YWNrTWFwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBjY2U3NzIyMjZhNTliODc1YWE2MDhiOGYyYTdh
MDMwYzZmMDZmZjJmLi45ZDcyMzlkYjVhMDMyYTAyZWMwMjI0NzYzYTA3NmQ2OTY2MDMxNjgzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KQEAgLTM2Myw2ICszNjMsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lS
ZWNlaXZlciB7CiAgICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQp
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIERpZFJlY2VpdmVEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0RlY2lzaW9uKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGJv
b2wgZ3JhbnRlZCkKKyNlbmRpZgorCiAgICAgIyBQcmludGluZy4KICAgICBCZWdpblByaW50aW5n
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pCiAg
ICAgRW5kUHJpbnRpbmcoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDBhYTM4ODExNDIxYzc2NjNlMWYxOTU4NTc0MGJjMWU5YTExOWY4ZmUuLmEz
ODFhZGM1Yzg2ZjBkNTY5OWM5ZDhiYjI2YTk3ZjgwZjA2OGEzY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0w
My0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTMyOQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gaGVscCB0ZXN0
IHRoZSBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkuCisKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0
ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNl
dFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OmhhbmRsZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUmVxdWVzdCk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZSk6CisKIDIwMTktMDMtMDcgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBNYWtlIGl0IHBvc3NpYmxlIHRv
IHB1cmdlIG9ubHkgc2NyaXB0LWFjY2Vzc2libGUgY29va2llcwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwKaW5kZXggOWNmNDQ5M2U2MGU3ODYzMzhiMTNlYWYwYWI2NTA3YzQzNWMzMTM3OC4uYzI1
MzI4OTc5MDdlNDkxMDUwNGRjMzdlYWEyNmQ1MzM1ODllMTFmNCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCkBAIC0xMDQsNiArMTA0LDkgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAg
IGJvb2xlYW4gaXNDb21tYW5kRW5hYmxlZChET01TdHJpbmcgbmFtZSk7CiAgICAgdW5zaWduZWQg
bG9uZyB3aW5kb3dDb3VudCgpOwogCisgICAgLy8gRGV2aWNlIE9yaWVudGF0aW9uIE1vdGlvbi4K
KyAgICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
Ym9vbGVhbiB2YWx1ZSk7CisKICAgICAvLyBTcGVjaWFsIERPTSB2YXJpYWJsZXMuCiAgICAgYXR0
cmlidXRlIGJvb2xlYW4gZ2xvYmFsRmxhZzsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggODI0YTVmNjg0MzE2OTM3
MDM0ZTg2YzE0OTAzMTc3YmJjY2I2ZmVkNi4uYjc5ZDA4YTJhZmU4NDZlNTU5ZGU0MmE4N2Q4Zjgx
NTNkMmJjMjQwZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjk0LDYgKzEyOTQsMTMgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkK
ICAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCku
cGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7CiB9
CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzcyhib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBt
ZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyIpKTsKKyAgICBXS1JldGFp
blB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZSh2
YWx1ZSkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5n
bGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5Lmdl
dCgpKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCiB7
CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyIpKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgK
aW5kZXggNmQxMTY0OGJiYzk0NmZhODY2NTY0MDdmZjMxMjI3NDcxYmIzMzI0OC4uOGRmY2Y2Y2Fm
MzIyMzI1NDk0N2M5ZGRmYWYzMDIxNzc3MTcxNjk4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM0OCw2ICszNDgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFibGVkKGJvb2wpOwog
ICAgIHZvaWQgc2V0SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoYm9vbCk7CiAgICAgdm9pZCBz
ZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCk7CisgICAgdm9pZCBz
ZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGJvb2wpOwogCiAg
ICAgYm9vbCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkQ2Fu
Y2VsQ2xpZW50UmVkaXJlY3Q7IH0KICAgICB2b2lkIHNldERpZENhbmNlbENsaWVudFJlZGlyZWN0
KGJvb2wgdmFsdWUpIHsgbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA9IHZhbHVlOyB9CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDU1NGUwM2E2ZmFiODNk
NDNhMjc4YTUzZjc2NGVhNDUzM2QwNDZhZmQuLjA4OTY0Y2RkZTU2M2ZkYjM5Nzc3MzZjN2FiNDRm
MWU5ZWUxMmMzNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC0yNjIsNiArMjYyLDExIEBAIHN0YXRpYyB2b2lkIHJlcXVlc3RQb2ludGVyTG9jayhXS1Bh
Z2VSZWYgcGFnZSwgY29uc3Qgdm9pZCopCiAgICAgV0tQYWdlRGlkQWxsb3dQb2ludGVyTG9jayhw
YWdlKTsKIH0KIAorc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2VzcyhXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2
b2lkKikKK3sKKyAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmhhbmRsZURl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUmVxdWVzdChvcmlnaW4pOworfQorCiBXS1Bh
Z2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmln
YXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0gc3Rh
dGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
OwpAQCAtNTcwLDggKzU3NSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdX
aXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICByZXNldFByZWZlcmVu
Y2VzVG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMpOwogCiAgICAgcGxhdGZvcm1DcmVhdGVXZWJW
aWV3KGNvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50Vjgg
cGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDgsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAg
ICBXS1BhZ2VVSUNsaWVudFYxMyBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgMTMsIG1fbWFp
bldlYlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVk
Rm9yVXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3Nl
CkBAIC02MzcsNyArNjQyLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdX
aXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gcnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsCiAgICAgICAgIDAsIC8vIGZ1bGxzY3JlZW5NYXlSZXR1
cm5Ub0lubGluZQogICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2ssCi0gICAgICAgIDAsCisgICAg
ICAgIDAsIC8vIGRpZExvc2VQb2ludGVyTG9jaworICAgICAgICAwLCAvLyBoYW5kbGVBdXRvcGxh
eUV2ZW50CisgICAgICAgIDAsIC8vIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdl
CisgICAgICAgIDAsIC8vIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZv
cmVncm91bmQKKyAgICAgICAgMCwgLy8gZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dv
cmRBcHBlYXJhbmNlCisgICAgICAgIDAsIC8vIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybQor
ICAgICAgICBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzCiAgICAg
fTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFn
ZVVJQ2xpZW50LmJhc2UpOwogCkBAIC05NDMsNiArOTU0LDggQEAgYm9vbCBUZXN0Q29udHJvbGxl
cjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9u
cywgUmUKIAogICAgIG1fc2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzID0gZmFs
c2U7CiAKKyAgICBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mg
PSBmYWxzZTsKKwogICAgIG1fd29ya1F1ZXVlTWFuYWdlci5jbGVhcldvcmtRdWV1ZSgpOwogCiAg
ICAgbV9yZWplY3RzUHJvdGVjdGlvblNwYWNlQW5kQ29udGludWVGb3JBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZXMgPSBmYWxzZTsKQEAgLTI1NDgsNiArMjU2MSwxMiBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpoYW5kbGVDaGVja09mVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXS0ZyYW1lUmVm
IGZyYW1lLAogICAgIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrU2V0VXNlck1lZGlhQWNjZXNz
SW5mbyhjaGVja1JlcXVlc3QsIHNhbHRTdHJpbmcuZ2V0KCksIHNldHRpbmdzRm9yT3JpZ2luKG9y
aWdpbkhhc2gpLnBlcnNpc3RlbnRQZXJtaXNzaW9uKCkpOwogfQogCitib29sIFRlc3RDb250cm9s
bGVyOjpoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1JlcXVlc3QoV0tTZWN1
cml0eU9yaWdpblJlZiBvcmlnaW4pCit7CisgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+b3V0cHV0
VGV4dChtYWtlU3RyaW5nKCJSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNj
ZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiBcIiIsIG9yaWdpblVzZXJWaXNpYmxlTmFt
ZShvcmlnaW4pLCAiXCIuXG4iKSk7CisgICAgcmV0dXJuIG1fc2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6aGFuZGxl
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9y
aWdpblJlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHJlcXVl
c3QpCiB7CiAgICAgYXV0byBvcmlnaW5IYXNoID0gdXNlck1lZGlhT3JpZ2luSGFzaCh1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNGIzNTNkYjQyYjU1MmU4OTgyNjEyNDJlM2E1
ZDA3YTA0MGYzZTU2Ni4uM2FiZTJkYjBhMTcxNjgwY2E3ZGUyNjQxMjYwNzdjNjA2ZDdiYmEyNyAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTUwLDYgKzE1MCw5
IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50
Rm9yT3JpZ2luKFdLU3RyaW5nUmVmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luU3RyaW5nLCBXS1N0
cmluZ1JlZiB0b3BMZXZlbERvY3VtZW50T3JpZ2luU3RyaW5nKTsKICAgICB2b2lkIHJlc2V0VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihXS1N0cmluZ1JlZiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
blN0cmluZyk7CiAKKyAgICAvLyBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24uCisgICAgYm9v
bCBoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1JlcXVlc3QoV0tTZWN1cml0
eU9yaWdpblJlZik7CisKICAgICAvLyBDb250ZW50IEV4dGVuc2lvbnMuCiAgICAgdm9pZCBjb25m
aWd1cmVDb250ZW50RXh0ZW5zaW9uRm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwogICAg
IHZvaWQgcmVzZXRDb250ZW50RXh0ZW5zaW9ucygpOwpAQCAtMTk5LDYgKzIwMiw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2wpOwogCiAgICAg
dm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1ZSkg
eyBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IHZhbHVlOyB9CisgICAg
dm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGJvb2wg
dmFsdWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzID0g
dmFsdWU7IH0KIAogICAgIHZvaWQgc2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29sIHZhbHVlKTsK
ICAgICB2b2lkIHNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShXS1N0
cmluZ1JlZiBob3N0TmFtZSk7CkBAIC01MDksNiArNTEzLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fcG9saWN5RGVsZWdhdGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fcG9saWN5RGVs
ZWdhdGVQZXJtaXNzaXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkRG93bmxvYWRVbmRp
c3BsYXlhYmxlTUlNRVR5cGVzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkQWxsb3dEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyB7IGZhbHNlIH07CiAKICAgICBib29sIG1fcmVq
ZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2Vz
IHsgZmFsc2UgfTsKICAgICBib29sIG1faGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4
IDBiZGM0MTc2YWUxMjE2NjUwMjk4ZDhkNDg0NGRlYjk2NjYxYjJkMGYuLjc3MzI5MTg4NGE1ZGE3
YTQwZmJjMzkwNzNlYjE3MzE5ZjQzMzdkZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCkBAIC03NDcsNiArNzQ3LDEzIEBAIHZvaWQgVGVzdEludm9jYXRpb246
OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VO
YW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJv
ZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVl
ID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RD
b250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFt
ZSwgIlJ1blVJUHJvY2Vzc1NjcmlwdCIpKSB7CiAgICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNz
YWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VC
b2R5KTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNjcmlwdEtleShBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2NyaXB0IikpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM0NzI4
NDg4MTJlODI3MDg2MjQzMmY5NDI2NjljZTkyOWZmNGM2YzUuLmIwM2E5M2FmMmMzNjU1MWMxNGQy
MGM5NTY2MzRhYmUzNWQ0ZjNkYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOS0wMy0wNyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTMyOQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNl
ci1nZXN0dXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmll
bnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVl
c3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVk
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9u
LXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50
cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWw6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1
cmUtY29udGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vaW9zL2h0dHAvdGVz
dHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0
ZWQudHh0OgorCiAyMDE5LTAzLTA3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogTWFrZSBpdCBwb3NzaWJsZSB0
byBwdXJnZSBvbmx5IHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDQ4Yzk0OGJlN2Q3ZjhkMTY0ZDdmZDdiYzViOTg3ZmY4Njc2M2MzMGYuLjdjYzYzYWIzMTRm
YTQxOWRhMzRlOWE0YWUzN2QwODU3M2VhYjE4ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzMs
NiArMzMsNyBAQCBmYXN0L3pvb21pbmcvaW9zIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL2lvcyBbIFNr
aXAgXQogZmFzdC92aWV3cG9ydC9pb3MgWyBTa2lwIF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lv
cy8gWyBTa2lwIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgU2tpcCBdCiBmYXN0L2V2ZW50
cy9pb3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRz
L3BvaW50ZXIvaW9zIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rldmlj
ZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NmQzZTFjOTg3NDQ0ZWI4MmI0NjU4OGZhZDY5ODY5N2I2NjdjOTE1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZl
bnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQgYW5k
IGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJl
cXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTog
Tm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCBiZWNh
dXNlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRlbmllZC4KK0Jhc2ljIHRlc3Rpbmcg
Zm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyByZXN1bHQg
aXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9u
LWRlbmllZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwY2QwYTJlMWZhNDIyM2JiMTIyODFiYjQ5ZjI3ODcx
NjI2ZjVlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmll
bnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApAQCAt
MCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlz
c2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3MoZmFsc2UpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9
PiB7fSk7CisKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgIERldmljZU1v
dGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAg
ICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3Vs
dCIsICJkZW5pZWQiKTsKKworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24i
LCAoKSA9PiB7fSk7CisKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7
CisgICAgICAgICAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4o
KF9yZXN1bHQpID0+IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOworICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0p
OworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWUzMjBhMGMyNGEzNDJhOWI5OGFhZTU1NmI2ZDdkNmZl
NTRlYTRiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogTm8gZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNz
aW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmll
bnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgor
QmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJncmFudGVk
IgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZp
Y2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkYzExZTljOGZhODZm
YmQ1ZDI2OTAxNmZmZjQwOGI1NTRmOWRhZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1ncmFudGVkLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHRydWUpOworCithZGRFdmVudExpc3RlbmVyKCJk
ZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkg
PT4geworICAgIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jl
c3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisKKyAgICAgICAgYWRkRXZlbnRMaXN0
ZW5lcigiZGV2aWNlbW90aW9uIiwgKCkgPT4ge30pOworCisgICAgICAgIGludGVybmFscy53aXRo
VXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICAgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVz
dFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gX3Jlc3VsdDsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3Vs
dCIsICJncmFudGVkIik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBj
ZjU3NmNkZmI3NTA3MDYxMzczZjFkMmJlODIyZmZjMjgyN2UwNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE0OiBOb3RBbGxvd2VkRXJyb3I6IENhbGxpbmcgcmVxdWVz
dFBlcm1pc3Npb24oKSByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZQorVGVzdHMgdGhhdCBEZXZpY2VN
b3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlLm5hbWUgaXMgIk5vdEFsbG93
ZWRFcnJvciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNz
aW9uLXVzZXItZ2VzdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkNDcxYzVkMzE5M2UxZTY1NzI1OTMx
NzdhZmU4OTc0NTFhMjBiM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdl
c3R1cmUuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IERldmljZU1vdGlvbkV2ZW50LnJlcXVl
c3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuIik7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworCitEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4o
KHJlc3VsdCkgPT4geworICAgIHRlc3RGYWlsZWQoInJlcXVlc3RQZXJtaXNzaW9uIHByb21pc2Ug
d2FzIG5vdCByZWplY3RlZCIpOworfSwgKF9lKSA9PiB7CisgICAgZSA9IF9lOworICAgIGNvbnNv
bGUubG9nKGUpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5uYW1lIiwgIk5vdEFsbG93
ZWRFcnJvciIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlv
bi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmRk
ZDZmZjE0M2FjN2U1Y2I3M2U5NjQ1ZGYzNjcxOTViYjhmN2FkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxMjogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBl
dmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBh
bmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3Mg
cmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5
OiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJl
Y2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLgorQmFzaWMgdGVzdGlu
ZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1Mg
cmVzdWx0IGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50
YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1y
ZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTM4ZDczY2RjMDE4NTBj
MTc3NDA4ZTliYjBkYWEzODBlZDkxZGEzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZGVuaWVkLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3Jp
ZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZmFsc2UpOworCithZGRFdmVudExp
c3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworaW50ZXJuYWxzLndpdGhV
c2VyR2VzdHVyZSgoKSA9PiB7CisgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVy
bWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisKKyAg
ICAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7fSk7CisK
KyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICAgICAgICBE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkg
PT4geworICAgICAgICAgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisgICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7
Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDEyZWUxYWZkNDBlOWQzMzIxMWQxZmZkYTYxN2E4OWIz
NTViYzg3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBk
ZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBl
cm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNl
IG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4g
IiIuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBp
cyAiZ3JhbnRlZCIKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZ3JhbnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzQxYmFkYmYwYjJlOThmOWEyY2IzNTEwMjA2Yzg3MDhlOGIyZjVhZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmll
bnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sCkBAIC0wLDAgKzEsMzIgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2lj
IHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4i
KTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
dGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
KHRydWUpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9
KTsKKworaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgRGV2aWNlT3JpZW50
YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAg
ICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1
bHQiLCAiZ3JhbnRlZCIpOworCisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVu
dGF0aW9uIiwgKCkgPT4ge30pOworCisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUo
KCkgPT4geworICAgICAgICAgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlz
c2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBfcmVz
dWx0OworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdy
YW50ZWQiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
b3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmFiNDI2YTI5ZWFjNzE3YTIwNTc5ZmY4MWM0ZTlmZGQ0NmI4MzZmYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlv
bi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IE5vdEFsbG93ZWRFcnJvcjogQ2FsbGlu
ZyByZXF1ZXN0UGVybWlzc2lvbigpIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlCitUZXN0cyB0aGF0
IERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSByZXF1aXJlcyBhIHVz
ZXIgZ2VzdHVyZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZS5uYW1l
IGlzICJOb3RBbGxvd2VkRXJyb3IiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1
cmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmll
bnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTI2OTkyYWQ0MzU4ZGQ3M2JjYzk1MmE3MDg0ODFlNTJkZDZlNWNmMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlv
bi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0bWwKQEAgLTAsMCArMSwyMCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMg
YSB1c2VyIGdlc3R1cmUuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworCitEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAg
dGVzdEZhaWxlZCgicmVxdWVzdFBlcm1pc3Npb24gcHJvbWlzZSB3YXMgbm90IHJlamVjdGVkIik7
Cit9LCAoX2UpID0+IHsKKyAgICBlID0gX2U7CisgICAgY29uc29sZS5sb2coZSk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJlLm5hbWUiLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlv
bi1ub24tc2VjdXJlLWNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRz
L2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKaW5kZXgg
ZWQyZGQyMDM3N2M1NzM2NWUxYTVmN2ZmYzUyNTRmNzI3ZDcxYjVkYy4uMzhmMmQ0MjAwOWU5M2M0
YTkzOTMyM2Q3MjAzOTZkOTFkNjVlNmQ0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRp
b24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0
aW9uIHJ1bkRldmljZU1vdGlvblRlc3QoKQogICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmlj
ZSBtb3Rpb24gbGlzdGVuZXIiKTsKICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24i
LCBmdW5jdGlvbigpIHsgfSk7CiAgICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKLSAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBh
dHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVj
YXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIpOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RDb25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQg
dG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVh
c29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CiAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOwogICAgIH0pOwogfQpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlvbiBydW5EZXZpY2VP
cmllbnRhdGlvblRlc3QoKQogICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmljZSBvcmllbnRh
dGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9u
IiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9PiB7Ci0gICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQg
YXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJl
Y2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iKTsKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0
IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJl
YXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIpOwogICAgICAgICBydW5EZXZp
Y2VNb3Rpb25UZXN0KCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRh
dGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDBmYjdkN2ViZjJk
ODQyZDdiYjczNGFhODQzMzE4ZDg5NjgwZDQzNDYuLjBmYWQwYThlY2FiOGJlYzkyMWNhYmNmMWE4
MmRmNDdmZTMwY2YyMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRz
L2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rp
b24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDExIEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzc6IERldmljZSBPcmllbnRhdGlvbiBBUEkgaXMgbm90IHN1cHBvcnRl
ZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBEZXZpY2UgTW90aW9uIEFQSSBpcyBub3Qgc3Vw
cG9ydGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IERldmljZSBPcmllbnRhdGlvbiBBUEkg
aXMgbm90IHN1cHBvcnRlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI1OiBEZXZpY2UgTW90aW9u
IEFQSSBpcyBub3Qgc3VwcG9ydGVkCiBUZXN0cyB0aGF0IHRyeWluZyB0byBzZXQgYW4gZXZlbnQg
bGlzdGVuZXIgZm9yIGRldmljZW9yaWVudGF0aW9uIGFuZCBkZXZpY2VvcmllbnRhdGlvbiBkb2Vz
IG5vdCBsb2cgYW4gZXJyb3IgaW4gc2VjdXJlIGNvbnRleHRzLgogCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCiAKIAorCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2Rldmlj
ZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQu
aHRtbAppbmRleCA0ZTU0ZDExZDk5NDFlNzU4ZTAyNzUwYjg2ZDQzZTMyYmM5NDMzZWVlLi5mMTFh
YzJmZDU4MzY1MjAwMDlkOTZjYWUxZjVmYTBiODM3ZmFiMWQ0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1j
b250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9y
aWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sCkBAIC02LDYgKzYsMTEgQEAKIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRyeWluZyB0byBzZXQgYW4gZXZlbnQgbGlzdGVuZXIgZm9y
IGRldmljZW9yaWVudGF0aW9uIGFuZCBkZXZpY2VvcmllbnRhdGlvbiBkb2VzIG5vdCBsb2cgYW4g
ZXJyb3IgaW4gc2VjdXJlIGNvbnRleHRzLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIGlmICh0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh0cnVlKTsKK30KKwog
Ly8gbG9jYWxob3N0IGlzIHNlY3VyZSBieSBkZWZhdWx0LgogCiBsZXQgbGFzdENvbnNvbGVNZXNz
YWdlID0gbnVsbDsKQEAgLTE1LDE5ICsyMCwyNyBAQCBpbnRlcm5hbHMuc2V0Q29uc29sZU1lc3Nh
Z2VMaXN0ZW5lcigobWVzc2FnZSkgPT4gewogCiBmdW5jdGlvbiBydW5EZXZpY2VNb3Rpb25UZXN0
KCkKIHsKKyAgICBkZWJ1ZygiIik7CiAgICAgaWYgKCF3aW5kb3cuRGV2aWNlTW90aW9uRXZlbnQp
IHsKICAgICAgICAgY29uc29sZS5sb2coIkRldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0
ZWQiKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOwotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1
ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyIik7Ci0gICAgYWRkRXZlbnRM
aXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwotICAgIGludGVybmFscy5w
b3N0VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNzYWdl
Iik7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIGRlYnVnKCIqIFJlcXVlc3RpbmcgZGV2
aWNlIG1vdGlvbiBhY2Nlc3MuLi4iKTsKKyAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgp
ID0+IHsKKyAgICAgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVu
KChfcmVzdWx0KSA9PiB7CisgICAgICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgICAg
ICAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOworICAgICAgICAgICAgZGVidWcoIiogUmVn
aXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciIpOworICAgICAgICAgICAgYWRkRXZlbnRM
aXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKSB7IH0pOworICAgICAgICAgICAgaW50
ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZU51bGwoImxh
c3RDb25zb2xlTWVzc2FnZSIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCkBAIC0zOSwxMiArNTIsMjAg
QEAgZnVuY3Rpb24gcnVuRGV2aWNlT3JpZW50YXRpb25UZXN0KCkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGxhc3RDb25zb2xlTWVzc2FnZSA9IG51bGw7Ci0gICAgZGVidWcoIiogUmVn
aXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7Ci0gICAgYWRkRXZlbnRMaXN0
ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCBmdW5jdGlvbigpIHsgfSk7Ci0gICAgaW50ZXJuYWxz
LnBvc3RUYXNrKCgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVOdWxsKCJsYXN0Q29uc29sZU1lc3Nh
Z2UiKTsKLSAgICAgICAgcnVuRGV2aWNlTW90aW9uVGVzdCgpOworICAgIGRlYnVnKCIqIFJlcXVl
c3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2Vzcy4uLiIpOworICAgIGludGVybmFscy53aXRo
VXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVl
c3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICAgICAgcmVzdWx0ID0g
X3Jlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdy
YW50ZWQiKTsKKworICAgICAgICAgICAgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKKyAgICAg
ICAgICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lciIp
OworICAgICAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCBmdW5j
dGlvbigpIHsgfSk7CisgICAgICAgICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4geworICAg
ICAgICAgICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNzYWdlIik7CisgICAgICAg
ICAgICAgICAgcnVuRGV2aWNlTW90aW9uVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
d2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNjljODM4NGUyYzgxODY1MmYwNDVhY2Y0OTU1NGNiNjJlMjc5ZWVh
Yi4uMGI4ZTg0ZDgwNjk3NjU5YTU0MDhlY2EwN2I4MGI4NTUzMTM3ODA4MiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNyw2ICs3LDcgQEAK
ICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogY29tcG9zaXRpbmcvaW9zIFsg
UGFzcyBdCitmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFBhc3MgXQogZmFzdC9oaXN0b3J5L2lv
cyBbIFBhc3MgXQogZmFzdC9zY3JvbGxpbmcvaW9zIFsgUGFzcyBdCiBmYXN0L3ZpZXdwb3J0L2lv
cyBbIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVz
dHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9k
ZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQK
aW5kZXggODY3NzlhZjQ2NTExMTFiMTg3MTVhNTNlN2IxMWUzYjExYjk3M2ExMS4uNzgyN2FiYzJl
ZGMyODZjMWM2NzgxYzQ5MTllNDhkYmRhNTk5MmM5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24t
bm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2Vj
dXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDE1ICsxLDE1IEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNDU6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9y
aWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNl
Y3VyZS4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyODogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBh
IGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3Np
bmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ1OiBCbG9j
a2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudCBs
aXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMjg6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9u
IG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQg
aXMgbm90IHNlY3VyZS4KIFRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5l
ciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9uIGxvZ3MgYW4gZXJy
b3IgaW4gbm9uLXNlY3VyZSBjb250ZXh0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CiAKICogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyCi1QQVNTIGxhc3RD
b25zb2xlTWVzc2FnZSBpcyAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBu
b3Qgc2VjdXJlLiIKK1BBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQg
dG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVh
c29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgogCiAqIFJlZ2lzdGVyaW5nIGRl
dmljZSBtb3Rpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzICJCbG9ja2Vk
IGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBi
ZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFTUyBsYXN0Q29u
c29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9y
IG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNvbnRleHQgaXMg
bm90IHNlY3VyZS4iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2
ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3Jp
ZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCAzMWI4NWY1
ZDdkNDVmMzdmOWQ2YjE2NWY2NzM3ZGZlNTkyMmVkZjVjLi40NGZjMThmODk5ZTMyOTM0NTdkMDhi
Y2EzZmQ2NmIyYjkwNmNhYzAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
aHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMv
ZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQu
dHh0CkBAIC0xLDExICsxLDE2IEBACitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBtb3Rp
b24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIi4KIFRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2
aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJv
ciBpbiBzZWN1cmUgY29udGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCisq
IFJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2Vzcy4uLgorUEFTUyByZXN1bHQgaXMg
ImdyYW50ZWQiCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lcgogUEFT
UyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgbnVsbAogCisqIFJlcXVlc3RpbmcgZGV2aWNlIG1vdGlv
biBhY2Nlc3MuLi4KK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgogKiBSZWdpc3RlcmluZyBkZXZp
Y2UgbW90aW9uIGxpc3RlbmVyCiBQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyBudWxsCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363935</attachid>
            <date>2019-03-07 14:55:36 -0800</date>
            <delta_ts>2019-03-08 08:43:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190307145535.patch</filename>
            <type>text/plain</type>
            <size>125925</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg2YzJkYjFmNGFlMDQy
ZWNhNDM0OTg4OTA0NTEwM2Y0N2JkMzU4NS4uNjU4M2YzMjEzYWM4ZjUyOGJiNzMwNDNlZGJiMzNl
NDExZmM1OTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE5LTAzLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25F
dmVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICog
ZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250
cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
OjpzaG91bGRBbGxvd0FjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OnNldEFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBk
b20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyOjphY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9u
RXZlbnQuaDoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGw6CisgICAg
ICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50OjpyZXF1ZXN0UGVy
bWlzc2lvbik6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5o
OiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmlk
bDogQWRkZWQuCisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25QZXJtaXNzaW9uU3RhdGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICog
ZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAq
IGRvbS9NaWNyb3Rhc2tzLmNwcDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OmRldmljZU1vdGlvbkNvbnRyb2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aXNBbGxvd2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRh
dGlvbkxpc3RlbmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RhcnRM
aXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3Nh
cnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmlj
ZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExp
c3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5o
OgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlh
bWw6CisKIDIwMTktMDMtMDcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPUyBXS10gUkVHUkVTU0lPTiAocjI0MjEzMik6IEZpeGVkIHBvc2l0aW9u
IGJhbm5lcnMgZmxpY2tlciBhbmQgbW92ZSB3aGVuIHNjcm9sbGluZyAoQXBwbGUsIFRlc2xhLCBZ
b3VUdWJlLCBSZWRkaXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFlNjBkMWJiMTY5NzdjOGM5MWUzNzdjOTBmOWMz
ODA1ZWQ5ZTg5NDguLjg4NTIxYTUwNWUzMTlmODQyOWVmZmYyZTUxMmJhNjlmMDhiOGY3ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTktMDMtMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9u
IC8gTW90aW9uIHBlcm1pc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTUzMjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NjQ1MzY3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEk6Cisg
ICAgICAgIC0gaHR0cHM6Ly9naXRodWIuY29tL3czYy9kZXZpY2VvcmllbnRhdGlvbi9pc3N1ZXMv
NTcKKworICAgICAgICBUaGlzIGFkZHMgbmV3IFNQSSB0byBXS1VJRGVsZWdhdGVQcml2YXRlLCB1
bnRpbCB3ZSBjYW4gbWFrZSB0aGlzIEFQSS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAg
ICAgKEFQSTo6VUlDbGllbnQ6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAo
V0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
VUlDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNl
dERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnNob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpuZXh0RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NEZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAx
OS0wMy0wNyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gRGlzYWJsZSBwZXJtaXNzaXZlIGNhbGwgbG9nZ2luZyBpbiBzYW5kYm94CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGY1MmJkNGY1NjA2NDQ5MmVjOGE0NDdhNzFlODU2ZGI5ZDA0ZDQ0NDYu
LjRjYWNmYzZlMDU2YTY0OWQxNzA5MjRkODgyYTQyMDVkNTY1ZmJjMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC02NjksNiArNjY5LDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMK
ICAgICBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsCiAgICAgZG9tL0RldmljZU1vdGlvbkV2
ZW50LmlkbAogICAgIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbAorICAgIGRvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsCisgICAgZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsCiAgICAgZG9tL0RvY3VtZW50LmlkbAogICAgIGRv
bS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogICAgIGRvbS9Eb2N1bWVudEZy
YWdtZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKaW5kZXggYzQyMzAwNjJjMjNkYWNjODAxMjg1ZjdjZGY0MGMwOTNlNjMyOTkzMS4uZTI4
MTY5ODJmMjg5ZTQxOWFmNjU4MGRmOTkzZWI3ODdlNDVjZjU2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC01NjIsNiArNTYyLDggQEAg
JChQUk9KRUNUX0RJUikvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCiAkKFBST0pFQ1RfRElSKS9k
b20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vRGV2aWNlTW90
aW9uRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5p
ZGwKKyQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRs
CiskKFBST0pFQ1RfRElSKS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9Eb2N1bWVudC5pZGwKICQoUFJPSkVDVF9ESVIp
L2RvbS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogJChQUk9KRUNUX0RJUikv
ZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGM2NGFhM2NmNTkyYTQ5M2I1OWJjZDgyNDAxMWEw
ZWNkZDdlN2YxYTcuLjIwMjI1NGM3MjBmMGJmMDM0MmY3NDBlYzhhOWZlMmZmOTMzZDI2OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC00NTksNiArNDU5LDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRGV2aWNlTW90aW9uRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RldmljZU1vdGlvbkV2ZW50LmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25FdmVudC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNl
T3JpZW50YXRpb25FdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNEb2N1bWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4ZTY1ZDQ3ZTdhMWMyOWE0ZjhmNDQx
MjFjMzA4NTlhZTU1NDM3NTYyLi5lM2ZjMTc2ZmI4MTQ5YjIzODlkMDU2Njk3ZDhiNjdjOWM4MzFj
OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTU2OSw2ICs1NjksOCBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vRGF0YVRyYW5zZmVySXRlbUxp
c3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9kb20vRG9jdW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Eb2N1
bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRG9j
dW1lbnRGcmFnbWVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0ZTM5MmYzM2RkZWVkYjI2YTQ2
MjdlOTM0MzhhMDMzZTM4ZmRjMmE3Li43NWNkZjVlM2EzOTczMzc4Zjc3OGRkZGY1MTE0OGE3M2Zk
MjA1ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtODIwLDkgKzgyMCwxMSBAQCBkb20vRGVjb2RlZERh
dGFEb2N1bWVudFBhcnNlci5jcHAKIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcAogZG9t
L0RldmljZU1vdGlvbkRhdGEuY3BwCiBkb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCitkb20vRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcAogZG9tL0RldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuY3BwCiBk
b20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKK2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uRXZlbnQuY3BwCiBkb20vRG9jdW1lbnQuY3BwCiBkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNw
cAogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC0yNzIyLDYgKzI3MjQsOCBAQCBKU0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmNwcAogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCiBKU0Rl
dmljZU1vdGlvbkV2ZW50LmNwcAogSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAorSlNEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmNwcAorSlNEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQuY3BwCiBKU0RvY3VtZW50LmNwcAogSlNEb2N1bWVudEFuZEVsZW1l
bnRFdmVudEhhbmRsZXJzLmNwcAogSlNEb2N1bWVudEZyYWdtZW50LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkwMjIyMWFl
Nzg0NTMzNGRmN2RhYTJlMDBkNWZlNDEyMjE0MTAwNDYuLjMxZTRhYWIxMmU4ZDc2MDVjNDAwMTFm
ZTFjNDIwOGMxNmY2YTFlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTQsNiArMTI1NCw4IEBACiAJCTQ1RkVBNUQwMTU2
RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NUZFQTVDRTE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MEJCNjE2
MUQwQTFCRjAwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEJCNjE0MUQwQTFCRUMwMDIyMTgxMiAvKiBC
YXNlNjRVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NjBDQkYzNjFENEJDRDBFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBD
QkYzNDFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggKi87IH07CisJ
CTQ2MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MURB
NTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAq
LzsgfTsKKwkJNDYwRTMwNzcyMjJGNEYwMzAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2NUVERDlGMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi87IH07CiAJCTQ2MjE4QUNCMUY3MkQ2NEUwMDU3
NEZCRSAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzNTIxQUEyMDgxMDkwQjAw
QzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VC
NjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC0xMjcxLDYg
KzEyNzMsNyBAQAogCQk0NkI5NTE5ODIwN0Q2MzQ3MDBBN0QyREQgLyogR2xvYmFsRnJhbWVJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkI5NTE5MTIwN0Q2MzJEMDBBN0QyREQgLyogR2xvYmFsRnJhbWVJZGVudGlmaWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZCOTUxOTkyMDdE
NjM0RDAwQTdEMkREIC8qIFJlbW90ZURPTVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOEUyMDdENjMyQTAwQTdEMkREIC8qIFJlbW90
ZURPTVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQ2Qjk1MTlBMjA3RDYzNTQwMEE3RDJERCAvKiBSZW1vdGVGcmFtZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOTIyMDdENjMyRTAw
QTdEMkREIC8qIFJlbW90ZUZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovOyB9OwogCQk0NkJDQkJD
MjIwODUwMDhGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkJDQkJDMDIwODUwMDdGMDA3MTA2
MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDMzc2NjIyMDg1MTc3RDAwQzczODI5IC8qIEpTUmVt
b3RlRE9NV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkMzNzY2MTIwODUxNzZEMDBDNzM4MjkgLyogSlNSZW1vdGVET01XaW5kb3cuaCAqLzsg
fTsKIAkJNDZDNjk2Q0IxRTcyMDVGNzAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5
NzkzNyAvKiBDUFVNb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTc3MjUsNiArNzcyOCw4IEBACiAJCTQ2MENCRjMzMUQ0QkNDRkUwMDky
RTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJv
cGVydGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVdpbmRvd1By
b3BlcnRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYwRDE5NDQxRkNFMjFE
RDAwQzNEQjg1IC8qIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYxREE1MkEyMjJGNDg2
RjAwRDA1QTg3IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYxREE1MkMyMjJGNDg2RjAwRDA1QTg3IC8q
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyogUG93
ZXJPYnNlcnZlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
b3dlck9ic2VydmVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNTIx
QUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdpbmRvd1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2MzUyMUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaW5kb3dQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03NzMyLDYgKzc3MzcsOSBAQAogCQk0NjNFQjYyMTFCODc4OUNCMDA5
NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUYWdDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NDI0MDQ1
MjBFQUYwRUQwMEIyOUZEMiAvKiBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERhdGFiYXNlTWFuYWdlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW50
aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDY1RUREOUQyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
bkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RUREOUYyMjJGNEVD
MzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVFRERB
MDIyMkY0RUM0MDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkRD
NkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjZFRDhEMjFFREUwMTM1MDA1RTQzRjYgLyogSlNET01SZWN0TGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVJlY3RMaXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NzFFMDYzMUQ2N0E1N0IwMEM2QjQ5NyAvKiBDYW52
YXNQYXRoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhbnZhc1Bh
dGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzc1NCw2ICs3NzYyLDggQEAK
IAkJNDZCOTUxOTIyMDdENjMyRTAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2Qjk1MTkzMjA3RDYzMkYwMEE3RDJERCAvKiBBYnN0cmFjdERPTVdpbmRvdy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBYnN0cmFjdERPTVdpbmRv
dy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjk1MTk0MjA3RDYzMzAwMEE3
RDJERCAvKiBBYnN0cmFjdEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFic3RyYWN0RnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NkI5NUJGMjIyMzFDRkI4MDA1M0E1MDQgLyogRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ2Qjk1QkY0MjIzMUNGQjgwMDUzQTUwNCAvKiBEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QkNCQkJFMjA4NTAwNUIwMDcxMDYzOCAv
KiBKU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2QkNCQkMwMjA4NTAwN0YwMDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRv
d0Jhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZW1vdGVET01XaW5k
b3dCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QkNCQkMxMjA4NTAwODAw
MDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NDg0LDYgKzI3NDk0LDggQEAKIAkJCQkzMUZCMUE1NDEyMEE1
RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwICovLAogCQkJCTMxRkIxQTU1MTIw
QTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5oICovLAogCQkJCTMxRkIxQTU2MTIw
QTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5pZGwgKi8sCisJCQkJNDZCOTVCRjIy
MjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJv
bGxlci5jcHAgKi8sCisJCQkJNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovLAogCQkJCTU5QThGMUQ3MTFBNjk1
MjAwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTU5QThGMUQz
MTFBNjk1MDgwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwICovLAog
CQkJCTU5QThGMUQ1MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIuaCAqLywKQEAgLTI3NDkyLDYgKzI3NTA0LDExIEBACiAJCQkJNTlBODVFQTExMTlENjhEOTAw
REVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwICovLAogCQkJCTU5QTg1RUEzMTE5
RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggKi8sCiAJCQkJNTlBODVF
QUExMTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsICovLAorCQkJ
CTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuY3BwICovLAorCQkJCTQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQuaCAqLywKKwkJCQk0NjVFREQ5RDIyMkY0RUMzMDBCNDZFMTYgLyog
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk0NjVFREQ5RjIyMkY0
RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5o
ICovLAorCQkJCTQ2NUVEREEwMjIyRjRFQzQwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCAqLywKIAkJCQlBODE4NUYzNDA5NzY1NzY1MDA1ODI2
RDkgLyogRG9jdW1lbnQuY3BwICovLAogCQkJCUE4MTg1RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBE
b2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlFMUUwNEQwMEFGODAyMCAvKiBEb2N1bWVudC5p
ZGwgKi8sCkBAIC0yOTAxNiwxMiArMjkwMzMsMTUgQEAKIAkJCQkzMUZCMUE1OTEyMEE1RDA2MDBE
QzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFG
QjFBNUIxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxRkIxQTVEMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlB
OEYxRDgxMUE2OTUyMDAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTQwMzc5RDEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5MzA5QTEzMTFGNEFFNkEwMDI1MDYw
MyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU5
QThGMUQ2MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTU5MEUxQjQ5MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmll
bnRhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QTg1RUE0MTE5RDY4RUMwMERFRjFF
RiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjBFMzA3
NTIyMkY0RUZEMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQk0NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyQjQw
MUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3MkI0MDNBMjE3NzI1ODEwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZl
cnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY3NzI1RkQxQTVCM0FEOTAwM0MyNEREIC8qIERG
QS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
TW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCmlu
ZGV4IDNlY2M1YmQ0YzBjN2VlYzE4ZTlmYjhlNDE1NmYxOGJmM2VmNDUzM2QuLjUxZDcxYTBlN2Nk
Nzg0M2QxNTgyYjAzOWNjZTIzYTgyNzI1M2U5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25FdmVudC5oCkBAIC0yNSwxMyArMjUsMTQgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU1vdGlvbkRhdGE7CiAKLWNs
YXNzIERldmljZU1vdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIERldmlj
ZU1vdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25FdmVu
dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbAppbmRleCBmMmY1
ZGYyMGZjZTUzYmMxM2I1YWJlNmQ0MThlMjBiZDVhNGZkMzg2Li4yN2YyYzU1NzIxMWQ1ZDBlNGY1
MjRiNjZkOTFkZDQ4NDI3N2RjMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlTW90aW9uRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwKQEAgLTU3LDMgKzU3LDUgQEAKICAgICBkb3VibGU/IGJldGE7CiAgICAgZG91Ymxl
PyBnYW1tYTsKIH07CisKK0RldmljZU1vdGlvbkV2ZW50IGltcGxlbWVudHMgRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNDkyNjhkYmM4OTE0YzQ3YTBhYTY0Y2Y4MzdjOTM1ZjZmMTM0ZGI1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29u
dHJvbGxlci5oIgorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUg
IkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkK
K3sKKyAgICBBU1NFUlQoJm1fZG9jdW1lbnQudG9wRG9jdW1lbnQoKSA9PSAmbV9kb2N1bWVudCk7
Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpz
aG91bGRBbGxvd0FjY2VzcyhGdW5jdGlvbjx2b2lkKGJvb2wgZ3JhbnRlZCk+JiYgY2FsbGJhY2sp
Cit7CisgICAgaWYgKG1fYWNjZXNzU3RhdGUpCisgICAgICAgIHJldHVybiBjYWxsYmFjaygqbV9h
Y2Nlc3NTdGF0ZSk7CisKKyAgICBhdXRvKiBwYWdlID0gbV9kb2N1bWVudC5wYWdlKCk7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soZmFsc2UpOworCisgICAgbV9wZW5k
aW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBpZiAobV9wZW5kaW5n
UmVxdWVzdHMuc2l6ZSgpID4gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyht
X2RvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgc2V0QWNjZXNzU3RhdGUoZ3JhbnRlZCk7CisgICAgfSk7Cit9CisKK3ZvaWQg
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpzZXRBY2Nlc3NTdGF0
ZShib29sIGdyYW50ZWQpCit7CisgICAgQVNTRVJUKCFtX2FjY2Vzc1N0YXRlKTsKKworICAgIG1f
YWNjZXNzU3RhdGUgPSBncmFudGVkOworCisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBXVEZN
b3ZlKG1fcGVuZGluZ1JlcXVlc3RzKTsKKyAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBwZW5kaW5n
UmVxdWVzdHMpCisgICAgICAgIHJlcXVlc3QoZ3JhbnRlZCk7CisKKyAgICBpZiAoIWdyYW50ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZy
YW1lKCk7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dChtX2RvY3VtZW50LmZyYW1lKCkpKSB7CisgICAgICAgIGZyYW1lLT53aW5kb3co
KS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAg
ICAgIGZyYW1lLT53aW5kb3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vz
c2FyeSgpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MWZjNzkyNTM0ODYyY2E2M2M2OTE1MmZmMzhjMTBjZmFiY2ZkYWI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFzcyBE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyPiB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKERvY3VtZW50Jik7CisKKyAgICBj
b25zdCBPcHRpb25hbDxib29sPiYgYWNjZXNzU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vz
c1N0YXRlOyB9CisgICAgdm9pZCBzaG91bGRBbGxvd0FjY2VzcyhGdW5jdGlvbjx2b2lkKGJvb2wg
Z3JhbnRlZCk+JiYpOworCitwcml2YXRlOgorICAgIHZvaWQgc2V0QWNjZXNzU3RhdGUoYm9vbCk7
CisKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBPcHRpb25hbDxib29sPiBtX2FjY2Vz
c1N0YXRlOworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKGJvb2wpPj4gbV9wZW5kaW5nUmVxdWVz
dHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmgKaW5kZXggMDI1YjJlMzJhNzUxZTQyZjY1MGJiNTNiNTE1YTEwYmRiNTI3ZjQ3OC4uNjI4
NzA4YjZlODRiNTI2MThlOTY4M2NkNmNkZTY3ZjNmYTExNjhmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCkBAIC0yNSwxMyArMjUsMTQgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmlj
ZU9yaWVudGF0aW9uRGF0YTsKIAotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25FdmVudCBmaW5hbCA6
IHB1YmxpYyBFdmVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGZpbmFsIDogcHVi
bGljIEV2ZW50LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPERldmljZU9yaWVudGF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBvcmllbnRhdGlv
bikKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5p
ZGwKaW5kZXggMTNmZjdiYWRjMGU1OTExNjYzNTk1ZDE1ZDExZGJkNjBhMzMzOWZkYi4uN2YzNWYx
MGQxOTE3YTc1NGY4NjAxYjhhYWUwYjllZDcxOTgyYWEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbApAQCAtNTUsMyArNTUsNCBAQAogI2VuZGlm
CiB9OwogCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGltcGxlbWVudHMgRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTA5NjE2ZDYxZjZmOTE0NDEx
ZDM4Y2FkNTBmMzRkZGMxZGQ5NzZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25FdmVudC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJVc2Vy
R2VzdHVyZUluZGljYXRvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQ6
OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUGVybWlzc2lvblByb21pc2Um
JiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRvbVdpbmRvdygpOwor
ICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBicm93c2luZyBjb250ZXh0Il9zIH0pOworCisgICAg
aWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCisgICAg
ICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJD
YWxsaW5nIHJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUiX3MgfSk7
CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghd2luZG93LT5pc0FsbG93ZWRU
b1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgZG9j
dW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwg
cmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOworICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5k
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5zaG91bGRBbGxvd0Fj
Y2VzcyhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7
CisgICAgICAgIHByb21pc2UucmVzb2x2ZShncmFudGVkID8gUGVybWlzc2lvblN0YXRlOjpHcmFu
dGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0pOworfQorI2VuZGlmCisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmFlNjgxZjM4ZjlkODllN2Iw
N2Q3YTI0NGJmNmY3MzU3Zjg2Zjg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudCB7CitwdWJsaWM6CisKKyNpZiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorICAgIHVzaW5nIFBlcm1pc3Npb25TdGF0ZSA9IERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU7CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47CisgICAg
c3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlz
ZSYmKTsKKyNlbmRpZgorCitwcm90ZWN0ZWQ6CisgICAgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
bkV2ZW50KCkgPSBkZWZhdWx0OworICAgIH5EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQo
KSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY4MzFhNDY1ZjBiNzZiYjI1YTgwNTg3MWFjMmY1NmU3MjcyMGVlNzkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2
ZW50LmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9REVW
SUNFX09SSUVOVEFUSU9OLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQgeworICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwgRW5h
YmxlZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUEldIHN0YXRpYyBQcm9t
aXNlPERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU+IHJlcXVlc3RQZXJt
aXNzaW9uKCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ2NWVk
YmE1NjBhMzJmOWE2MjAxMmJkZGRmMmUzNTY1Y2NiNWY4ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlIHsgR3JhbnRlZCwgRGVuaWVkIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMTgxNDAzMDFlZmQ2MWY0ZjMxMjU2N2Q1OTQ4MzQ4ODhlNWM4MzMz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Vu
dW0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSB7ICJncmFudGVkIiwg
ImRlbmllZCIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE0MjkyNzg2Y2M4ZWZlZWY1
YjFhMmZjMTVkYzcxMGJmZWMxYzMxMTAuLjY3YjFiMWUxNThkNzI2MTY4ZTc0MWY3YTNiNzZkNGQ4
MWUwYWRiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjQ1LDYgKzI0NSw3IEBACiAK
ICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogI2luY2x1ZGUgIkRldmljZU1vdGlvbkV2
ZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIgogI2VuZGlmCiAKQEAg
LTg2MzgsNiArODYzOSwyMCBAQCB2b2lkIERvY3VtZW50OjpmcmFtZVdhc0Rpc2Nvbm5lY3RlZEZy
b21Pd25lcigpCiAgICAgZGV0YWNoRnJvbUZyYW1lKCk7CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorCitEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXImIERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIo
KQoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAhPSB0aGlzKQorICAgICAgICByZXR1cm4gdG9w
RG9jdW1lbnQoKS5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKTsK
KworICAgIGlmICghbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIp
CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyID0g
c3RkOjptYWtlX3VuaXF1ZTxEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXI+KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyOworfQorCisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJ
KQogV29ya2xldCYgRG9jdW1lbnQ6OmVuc3VyZVBhaW50V29ya2xldCgpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDc3OGMyMTMzYzU0MzU3ZGQ2NzcxOTlkZjcxOTQxN2IzZWRlOTMxMWEuLmFj
ZGE4MDYyZDQzMDZjMDY2YjA3YWRhODEyNTMwZjBiMjc4ZmE0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0yMjUsMTIgKzIyNSwxNSBAQCBjbGFzcyBUb3VjaDsKIGNsYXNzIFRvdWNoTGlzdDsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50OwogY2xhc3MgRGV2aWNlTW90aW9u
Q29udHJvbGxlcjsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50OwogY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOwogI2VuZGlmCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7CisjZW5kaWYKIAogI2lmIEVOQUJMRShURVhUX0FVVE9T
SVpJTkcpCiBjbGFzcyBUZXh0QXV0b1NpemluZzsKQEAgLTEyMTQsMTIgKzEyMTcsMTYgQEAgcHVi
bGljOgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudElPUy5oPgogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyJiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29u
c3Q7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyJiBkZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNpbXVsYXRlRGV2aWNl
T3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1h
KTsKICNlbmRpZgogCisgICAgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyJiBkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKTsKKyNlbmRp
ZiAvLyBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAgICAgY29uc3QgRG9jdW1lbnRUaW1p
bmcmIHRpbWluZygpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRUaW1pbmc7IH0KIAogICAgIFdF
QkNPUkVfRVhQT1JUIGRvdWJsZSBtb25vdG9uaWNUaW1lc3RhbXAoKSBjb25zdDsKQEAgLTE4NzIs
MTIgKzE4NzksMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEhhc0ZyYW1lU3BlY2lmaWNTdG9y
YWdlQWNjZXNzKGJvb2wpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlTW90
aW9uQ2xpZW50PiBtX2RldmljZU1vdGlvbkNsaWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2
aWNlTW90aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxEZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gbV9kZXZpY2VPcmllbnRhdGlvbkNs
aWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBt
X2RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKICNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0
cjxEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI+IG1fZGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOworI2VuZGlmCiAKICAgICBHZW5lcmlj
VGFza1F1ZXVlPFRpbWVyPiBtX2xvZ01lc3NhZ2VUYXNrUXVldWU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3Bw
CmluZGV4IGMwZGIyOTE4NjRkOTYxNDllZmY1MGE0M2ViZDJmODdmNjA1NGQwZTcuLjkzNzExOTA5
Zjk0MDVlNzBhNjVmNGFiNWQzNzNkMTg1ZDVkNDIwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFdmVudFBh
dGguaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiVXNlckdl
c3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlUG9ydC5jcHAKaW5kZXggMTg4Y2MzMWZlYmI3ODdmOTRkNDc0ZDFkNjYxZjE4
N2U1NjY0NDk5YS4uNDAyMjRmODc0ODRmNmE3ZDY0ZTliOWEyNjQwNTJiM2ZmZjY5ZmFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5o
IgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NaWNyb3Rhc2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNw
cAppbmRleCAyNWE0N2E2ODM5NWU4MjVmMWIwZDYxNmI5NzEwYTNlNmJiNWQ3OGFiLi4yY2NjZjBi
MjJjMDc3NDIxNzAxYjFjNmYxNjY5ZjI5MGFmOWRkYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWljcm90YXNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01pY3JvdGFz
a3MuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
TWljcm90YXNrcy5oIgogCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5k
ZXggM2EwZGMzYmIwM2RjZDcwYmU5NGVmNGI5ODYyMWQ5Nzk1NjBlN2ViYS4uNDdlM2M1YWE3NDg1
Y2Y1MWQ2M2ViMDM1OWZlYjExNTA3MWI1Y2I1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC00ODIsNiArNDgyLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFzU3Rv
cmFnZUFjY2VzcyhTdHJpbmcmJiAvKnN1YkZyYW1lSG9zdCovLCBTdHJpbmcmJiAvKnRvcEZyYW1l
SG9zdCovLCB1aW50NjRfdCAvKmZyYW1lSUQqLywgdWludDY0X3QgLypwYWdlSUQqLywgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxz
ZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgLypz
dWJGcmFtZUhvc3QqLywgU3RyaW5nJiYgLyp0b3BGcmFtZUhvc3QqLywgdWludDY0X3QgLypmcmFt
ZUlEKi8sIHVpbnQ2NF90IC8qcGFnZUlEKi8sIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAo
Ym9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soZmFsc2UpOyB9CiAKKyNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQorICAgIHZpcnR1YWwgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKHRydWUpOyB9Cisj
ZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRNZW51RWxlbWVudChIVE1MTWVudUVs
ZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTWVudUVsZW1lbnQoSFRNTE1l
bnVFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVJdGVtRWxlbWVu
dChIVE1MTWVudUl0ZW1FbGVtZW50JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5k
ZXggZGZhMTEyNDg0YTNhNDc3ZTNkYzAyMmEzNGNhMzRkZjNmZmE5M2UzMi4uNTk4OTFkMjNhMDQy
ZmJiZDc3ODM0MjdkNTAzYWExMjQxOTNhNmFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRXZl
bnQuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCkBAIC0xODI2LDUwICsx
ODI3LDEzNCBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZQogICAgIGVsc2UgaWYgKGV2ZW50TmFt
ZXMoKS5pc0dhbWVwYWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgaW5jcmVtZW50R2Ft
ZXBhZEV2ZW50TGlzdGVuZXJDb3VudCgpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9y
aWVudGF0aW9uRXZlbnQpCisgICAgICAgIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRp
b25JZk5lY2Vzc2FyeSgpOworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
ZGV2aWNlbW90aW9uRXZlbnQpCisgICAgICAgIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9u
SWZOZWNlc3NhcnkoKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9CiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnNldHRp
bmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSAmJiBkb2N1bWVudCgpICYmIGRv
Y3VtZW50KCktPmxvYWRlcigpICYmIGRvY3VtZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmllbnRh
dGlvbkV2ZW50RW5hYmxlZCgpKSB7CisKK0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogRE9N
V2luZG93OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdAorewogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgICAgIGlmICgoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
ZXZpY2Vtb3Rpb25FdmVudCB8fCBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVu
dGF0aW9uRXZlbnQpKSB7Ci0gICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01h
aW5GcmFtZSgpICYmIGlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkKLSAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkuYWRk
RGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkuYWRkRGV2
aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNTZWN1cmVDb250ZXh0KCkpCi0gICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fz
bid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxv
Y2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVu
ZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiJfcyk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVudCgp
LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSA6IG51bGxwdHI7CiAjZWxzZQotICAgICAg
ICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewotICAg
ICAgICAgICAgaWYgKGlzU2FtZVNlY3VyaXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3Vy
ZUNvbnRleHQoKSkgewotICAgICAgICAgICAgICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVy
KiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAg
ICAgICAgICAgICAgICAgICBjb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlz
KTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJC
bG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxk
IGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBw
YWdlLiJfcyk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
ZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0gICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlP
cmlnaW5Bc01haW5GcmFtZSgpICYmIGlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgICAgICAgICBj
b250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU2VjdXJlQ29udGV4dCgpKQotICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmlj
ZSBvcmllbnRhdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBz
YW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRl
bXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVz
ZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiJfcyk7Ci0gICAgICAgICAgICB9
CisgICAgcmV0dXJuIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpOwor
I2VuZGlmCit9CisKK0RldmljZU1vdGlvbkNvbnRyb2xsZXIqIERPTVdpbmRvdzo6ZGV2aWNlTW90
aW9uQ29udHJvbGxlcigpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBy
ZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkg
OiBudWxscHRyOworI2Vsc2UKKyAgICByZXR1cm4gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJv
bShwYWdlKCkpOworI2VuZGlmCit9CisKK2Jvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURl
dmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBpZiAo
IWZyYW1lKCkgfHwgIWZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVu
YWJsZWQoKSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+bG9hZGVyKCkgfHwgIWRvY3Vt
ZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CisgICAg
ICAgIG1lc3NhZ2UgPSAiQVBJIGlzIGRpc2FibGVkIl9zOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKCFpc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBtZXNzYWdl
ID0gIkJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZSJfczsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIGlmICghaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgp
KSB7CisgICAgICAgIG1lc3NhZ2UgPSAiU291cmNlIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgc2Ft
ZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZSJfczsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBET01XaW5kb3c6OmlzQWxs
b3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0Cit7CisgICAgU3RyaW5nIGlubmVyTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRv
VXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oaW5uZXJNZXNzYWdlKSkgeworICAgICAgICBtZXNz
YWdlID0gbWFrZVN0cmluZygiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogIiwgaW5uZXJNZXNzYWdlLCAi
LiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGZyYW1lKCktPnNl
dHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7CisgICAg
ICAgIGF1dG8gYWNjZXNzU3RhdGUgPSBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5hY2Nlc3NTdGF0ZSgpOworICAgICAgICBpZiAoYWNjZXNz
U3RhdGUgJiYgISphY2Nlc3NTdGF0ZSkgeworICAgICAgICAgICAgbWVzc2FnZSA9ICJObyBkZXZp
Y2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVy
bWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLiJfczsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KQot
ICAgICAgICBmYWlsZWRUb1JlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpOwotI2Vu
ZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIGlmICghYWNjZXNzU3Rh
dGUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRh
dGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVl
c3RlZCBhbmQgZ3JhbnRlZC4iX3M7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCit2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRh
dGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpOworICAg
IGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVu
dExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGVycm9yTWVz
c2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0
ZW5lcihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMt
PmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xsZXItPmFkZERldmljZUV2
ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0Zv
ckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQoreworICAgIGlmIChoYXNFdmVudExpc3Rl
bmVycyhldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChhdXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKCkpCisgICAgICAgIGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50
TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JE
ZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKCFoYXNFdmVudExpc3RlbmVycyhl
dmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBh
dXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2aWNlTW90aW9uQ29udHJvbGxlcigpOworICAgIGlm
ICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExp
c3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGVycm9yTWVzc2Fn
ZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5l
cihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25F
dmVudExpc3RlbmVyKCk7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3Vt
ZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlz
dGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmlj
ZU1vdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnRO
YW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1
dG8qIGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkpCisgICAgICAg
IGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQog
CiB2b2lkIERPTVdpbmRvdzo6ZmFpbGVkVG9SZWdpc3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVu
ZXIoKQogewpAQCAtMTk0MSwyMiArMjAyNiw2IEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVu
dExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAg
ICAgICAgIHJlbW92ZVVubG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7CiAgICAgZWxzZSBpZiAoZXZl
bnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmV1bmxvYWRFdmVudCAmJiBhbGxvd3NCZWZvcmVV
bmxvYWRMaXN0ZW5lcnModGhpcykpCiAgICAgICAgIHJlbW92ZUJlZm9yZVVubG9hZEV2ZW50TGlz
dGVuZXIodGhpcyk7Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2
aWNlbW90aW9uRXZlbnQgJiYgZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNl
TW90aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAg
IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVu
dCAmJiBkb2N1bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIoKS5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSNlbHNlCi0gICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewot
ICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1v
dGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRyb2xsZXItPnJl
bW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0gICAgICAgIGlmIChE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92
ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0KLSNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LnNjcm9sbEV2ZW50KQogICAgICAgICBkZWNyZW1lbnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50
KCk7CkBAIC0xOTc3LDYgKzIwNDYsMTIgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlz
dGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICBl
bHNlIGlmIChldmVudE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAg
ICAgIGRlY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKTsKICNlbmRpZgorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAgICBzdG9wTGlzdGVuaW5nRm9y
RGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpCisgICAgICAgIHN0b3BMaXN0ZW5pbmdG
b3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTIwNTksMTggKzIxMzQsOSBAQCB2b2lkIERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMoKQogICAgIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwog
CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAg
ICAgIGRvY3VtZW50LT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZl
bnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgICAgICBkb2N1bWVudC0+ZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgIH0K
LSNlbHNlCi0gICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJl
bW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSAgICBpZiAoRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50
TGlzdGVuZXJzKCp0aGlzKTsKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotI2VuZGlm
IC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JE
ZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JE
ZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIGlmIChtX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKaW5kZXggYmJiZmE5NTg3MmU0YTMzZTczNDI1MjgxZTRhY2NiNGY3MDU5YjFjNC4u
MWQ4YTY0MjkyZjAxZjA5ZjE1MTJiY2RkNjY4NmZlYzQ3MmViYTJmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCkBAIC04Miw2ICs4MiwxMSBAQCBjbGFzcyBWaXN1YWxWaWV3cG9ydDsKIGNsYXNz
IFdlYktpdE5hbWVzcGFjZTsKIGNsYXNzIFdlYktpdFBvaW50OwogCisjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKK2NsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7CitjbGFzcyBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CisjZW5kaWYKKwogc3RydWN0IEltYWdlQml0bWFwT3B0
aW9uczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIApAQCAtMzExLDYgKzMxNiwxOSBAQCBwdWJs
aWM6CiAgICAgdW5zaWduZWQgc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50KCkgY29uc3QgeyByZXR1
cm4gbV9zY3JvbGxFdmVudExpc3RlbmVyQ291bnQ7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50
YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgc3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVu
dGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90
aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25J
Zk5lY2Vzc2FyeSgpOworCisgICAgYm9vbCBpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVu
dGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisgICAgYm9vbCBpc0FsbG93ZWRUb0FkZERl
dmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKKwor
ICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKCkgY29uc3Q7CisgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciogZGV2aWNlTW90aW9uQ29u
dHJvbGxlcigpIGNvbnN0OworI2VuZGlmCisKICAgICB2b2lkIHJlc2V0QWxsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKCk7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElP
U19HRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNl
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3Bw
CmluZGV4IDMzNjdkM2RiZjU5ZmMzMzU3MjQ5NzU4YWM2M2RkMTcyNWUwNzYzNjYuLjg0MmI4NTRl
ZTI1MTI1OGE0MTA2MmJmZTBkMDY1NDRlZGIzYzZmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VDb250cm9sbGVyLmNwcApAQCAtNjksNiArNjksMTEgQEAgdm9pZCBEZXZpY2VDb250cm9s
bGVyOjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyhET01XaW5kb3cmIHdpbmRvdykKICAg
ICAgICAgbV9jbGllbnQuc3RvcFVwZGF0aW5nKCk7CiB9CiAKK2Jvb2wgRGV2aWNlQ29udHJvbGxl
cjo6aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRvdykgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9saXN0ZW5lcnMuY29udGFpbnMoJndpbmRvdyk7Cit9CisKIHZvaWQgRGV2aWNl
Q29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgZm9y
IChhdXRvJiBsaXN0ZW5lciA6IGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycy52YWx1ZXMoKSkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKaW5kZXggZTE2MDM4NWFmZTJmOTcz
NTNjMGVhMjJmMjllODU2ZjE4ZTIwYjFhOC4uM2Q1ZjkwYzUwZWU0YTU0ZmMwYWQxN2M2NDczNWRk
NjkzODczZmZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKQEAgLTQ2
LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihET01X
aW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jik7
CiAgICAgdm9pZCByZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyhET01XaW5kb3cmKTsKKyAg
ICBib29sIGhhc0RldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93JikgY29uc3Q7CiAKICAgICB2
b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQoRXZlbnQmKTsKICAgICBib29sIGlzQWN0aXZlKCkgeyBy
ZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
CmluZGV4IDMwM2Q3ZjgyZDRiMzdmZGJhMWI3ZjJkZDRhOGRhMjU3ZThhYjk3N2MuLmU4MjRkZjc2
YTg0MmYzMjA3ZmFlMGVjZTY0NDRlOWUyZjI0NWVmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwKQEAgLTc2NCw2ICs3NjQsMTEgQEAgZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6
CiAgIGluaXRpYWw6IHRydWUKICAgY29uZGl0aW9uYWw6IERFVklDRV9PUklFTlRBVElPTgogCitk
ZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkOgorICB0eXBlOiBib29sCisgIGlu
aXRpYWw6IGZhbHNlCisgIGNvbmRpdGlvbmFsOiBERVZJQ0VfT1JJRU5UQVRJT04KKwogc2hvdWxk
RW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdDoKICAgdHlwZTogYm9vbAogICBpbml0aWFsOiBmYWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggODA0YTBhZTkx
MDM5MTMzMzAzMjAzN2ExMjIwZDQ1YjAwM2RlODIzOC4uYjkwN2JkYWU3YjM2ZTkxZmE0NmRjYWE5
MjRhMTMwZDUzMzFlNTY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sCkBAIC0xMiw2ICsxMiwxNSBAQCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZDoKICAg
Y29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICB3ZWJjb3JlTmFtZTogZGV2
aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQKIAorRGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9u
QVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGRlZmF1bHREZXZpY2VP
cmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKCkKKyAgY29uZGl0aW9uOiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQorICB3ZWJjb3JlTmFtZTogZGV2aWNlT3JpZW50YXRpb25QZXJtaXNz
aW9uQVBJRW5hYmxlZAorICBodW1hblJlYWRhYmxlTmFtZTogIlBlcm1pc3Npb24gQVBJIGZvciBk
ZXZpY2Ugb3JpZW50YXRpb24gLyBtb3Rpb24gYWNjZXNzLiIKKyAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIC8gRGV2
aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1l
bnRhbAorCiBKYXZhU2NyaXB0RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6
IHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuY3BwCmluZGV4IGZhMTgyNTEwNGE2YzhiZWUyMjVhMTY3NWMxZWY5NDMzNWNiNGM5
ZDYuLmNiZjdkMDk5ODFlNTdjMTE2ZGFmOGI4YjYxZjU2NmFmMzA2ZDBjNmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApA
QCAtNDQsNiArNDQsMTUgQEAgYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZh
dWx0T25Eb2N1bWVudCgpCiAjZW5kaWYKIH0KIAorYm9vbCBkZWZhdWx0RGV2aWNlT3JpZW50YXRp
b25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpCit7CisjaWYgUExBVEZPUk0oSU9TKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpT
REtWZXJzaW9uOjpGaXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25B
UEkpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogYm9vbCBkZWZhdWx0
Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKCkKIHsKICNpZiBQTEFURk9STShJT1NNQUMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5o
CmluZGV4IDZlODIxNzNiMGNiMmNiZTkxNTMxMDQxZGVjMjcwOGM1MGRmYmZlODMuLjg0ZDIyMTBj
MTlmMTI2MzRjNGU4OGEzZWZhOWQwZTUxMmQ1N2QxZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0yMjcsNiArMjI3LDcg
QEAKICNlbmRpZgogCiBib29sIGRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRP
bkRvY3VtZW50KCk7Citib29sIGRlZmF1bHREZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElF
bmFibGVkKCk7CiBib29sIGRlZmF1bHRDdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQoKTsKIAog
I2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKaW5kZXggM2VjNmYwMGQyNGZjOTM5NDI2OTBhM2U3MjlmZDA3ZWQ3YTNhYTZjNy4uOTQwYjY5
NzFlYTQwYTRkYjI5MzViZWEyYTk4OTZiNzllMTVkNjUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE3Myw2ICsxNzMsMTAgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFs
IHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQor
I2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2ln
bklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZShXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIE9iamVjdCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
aW5kZXggYTQxNjc2NmUyYjM4M2UxYjUxNDQ4ZmM5Y2M0MDJjMDFmMWJlYjNhYS4uMzhlNWIxNzA4
NjI2ZjBiNDkyZDg3MTMwZDY5NmYzNzI4ODU5Y2UzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4g
c3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0
ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGll
bnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRW
NSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwg
V0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBX
S1BhZ2VVSUNsaWVudFYxMj4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFn
ZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJ
Q2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xp
ZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50
VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRW
MTIsIFdLUGFnZVVJQ2xpZW50VjEzPiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKQEAgLTE5MDMsNiArMTkwMywxNiBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVu
dChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAog
ICAgICAgICAgICAgbV9jbGllbnQucmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKHRvQVBJKCZw
YWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShyZXF1ZXN0aW5nRG9tYWluLmltcGwoKSksIHRvQVBJ
KGN1cnJlbnREb21haW4uaW1wbCgpKSwgdG9BUEkobGlzdGVuZXIucHRyKCkpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgICAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MoV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuc2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzcykKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIodHJ1ZSk7CisKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fY2xpZW50
LnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModG9BUEkoJnBhZ2Up
LCB0b0FQSSgmb3JpZ2luKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSk7CisgICAgICAgIH0K
KyNlbmRpZgorCiAgICAgICAgIC8vIFByaW50aW5nLgogICAgICAgICBmbG9hdCBoZWFkZXJIZWln
aHQoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSkgZmluYWwKICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgK
aW5kZXggNWU1OTczZjlhYjE4YjQ2YTY1ZWZlMDhlZGY1ZjM1MDdhNzc1ZGYwYi4uZWE4ODcyNzU2
YWMxNzIwMTkwNWFlODc5YWFhMjY0MWQ3ZTI1ZGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC0xMzQsNiArMTM0LDcgQEAgdHlwZWRl
ZiB2b2lkICgqV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNv
bnN0IHZvaWQqIGNsaWVudEkKIHR5cGVkZWYgdm9pZCAoKldLSGFzVmlkZW9JblBpY3R1cmVJblBp
Y3R1cmVEaWRDaGFuZ2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgaGFzVmlkZW9JblBp
Y3R1cmVJblBpY3R1cmUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgq
V0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1Jlc291cmNlTGltaXQgbGltaXQsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ry
b25nUGFzc3dvcmRBcHBlYXJhbmNlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYg
dXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgqV0tQYWdl
U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQ
YWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJl
ZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwpAQCAtMTE0MCw2ICsxMTQxLDExMCBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVu
dFYxMiB7CiAgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm07CiB9IFdL
UGFnZVVJQ2xpZW50VjEyOwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxMyB7Cisg
ICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0
ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAg
Y3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hv
d1BhZ2U7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsK
KyAgICBXS1BhZ2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvY3VzOworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1Bh
Z2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAg
ICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdL
UGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAg
ICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAg
ICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsK
KyAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3NpbmdQ
bHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlz
c2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1Bh
Z2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdoZWVs
RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxl
V2hlZWxFdmVudDsKKyAgICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1Bh
Z2VTZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldFRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNWaXNp
YmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zp
c2libGU7CisgICAgV0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdl
dFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJsZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNWaXNp
YmxlOworICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNpemFi
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Jl
c2l6YWJsZTsKKyAgICBXS1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNldFdp
bmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2Fs
bGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNiAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWNjsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7CisgICAg
V0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOworICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90
YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFz
ZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBhbmVsOworICAgIFdLUGFnZURlY2lkZVBv
bGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgZGVj
aWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFk
ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1BhZ2VE
cmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFnZVBy
aW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUK
KyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAgdm9p
ZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlOworCisgICAgLy8g
VmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9y
VXNlV2l0aFYxICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNl
V2l0aFYxOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQ
YWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAg
ICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAg
ICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9y
VXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tl
ckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9y
UGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworCisgICAgLy8gVmVyc2lvbiAzLgorICAg
IFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisg
ICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQgdG8g
YmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OyAv
LyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisg
ICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24g
NS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENh
bGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0OworICAgIFdLUGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VS
dW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAg
ICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFn
ZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAg
ICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBX
S1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAg
ICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAg
ICBXS1BhZ2VNZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlOworCisgICAgLy8gVmVy
c2lvbiA2LgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKKyAgICBXS1BhZ2VSdW5KYXZh
U2NyaXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bkphdmFTY3JpcHRBbGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOwor
ICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0NoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbjsKKworICAgIC8vIFZlcnNpb24gNy4KKyAgICBX
S1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAgICBXS0Z1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZTsKKworICAgIC8vIFZlcnNpb24gOC4KKyAgICBXS1Jl
cXVlc3RQb2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3RQb2ludGVyTG9jazsKKyAgICBXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExvc2VQb2ludGVy
TG9jazsKKworICAgIC8vIFZlcnNpb24gOS4KKyAgICBXS0hhbmRsZUF1dG9wbGF5RXZlbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5
RXZlbnQ7CisKKyAgICAvLyBWZXJzaW9uIDEwLgorICAgIFdLSGFzVmlkZW9JblBpY3R1cmVJblBp
Y3R1cmVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgaGFzVmlkZW9JblBp
Y3R1cmVJblBpY3R1cmVEaWRDaGFuZ2U7CisgICAgV0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3Vy
Y2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2sgICAgICAgICBkaWRFeGNlZWRCYWNrZ3Jv
dW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOworCisgICAgLy8gVmVyc2lvbiAxMS4K
KyAgICBXS1BhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VD
YWxsYmFjayAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFy
YW5jZTsKKworICAgIC8vIFZlcnNpb24gMTIuCisgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFn
ZUFjY2Vzc0NvbmZpcm07CisKKyAgICAvLyBWZXJzaW9uIDEzLgorICAgIFdLUGFnZVNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjayAgICAgICAgICAgc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKK30gV0tQYWdlVUlDbGll
bnRWMTM7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKaW5kZXggZGEwMzE0YWUzZjU4
Y2JkZTk4MDI4ZTI3Mjg5ZWFkNDRkNmQzNDJiYi4uODE1ZTgwMTg4OGU1ZDY2NGQ2NWFlM2NiYWFk
NjY3MmEyNWZkN2RjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGUuaApAQCAtMzQsNiArMzQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgogQGNsYXNzIFdLTmF2aWdhdGlvbkFjdGlvbjsKIEBjbGFzcyBXS09wZW5QYW5lbFBhcmFtZXRl
cnM7CiBAY2xhc3MgV0tQcmV2aWV3RWxlbWVudEluZm87CitAY2xhc3MgV0tTZWN1cml0eU9yaWdp
bjsKIEBjbGFzcyBXS1dlYlZpZXc7CiBAY2xhc3MgV0tXZWJWaWV3Q29uZmlndXJhdGlvbjsKIEBj
bGFzcyBXS1dpbmRvd0ZlYXR1cmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZGJkMDUzZTdmYmQwYTA5
NWYwODg4YTdlZGEwYmMyYmJhNzNlMjUzMi4uM2Q3NzcxNjQwOGI3NDFjY2RkODYzOGMwZGZiNTYz
ODcwYTgzNjBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xNzEsNiArMTcxLDE1IEBAIHN0cnVjdCBV
SUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENo
YW5nZVNhZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHM6KEJPT0wpc2FmZUFyZWFTaG91
bGRBZmZlY3RPYnNjdXJlZEluc2V0cyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFByZXNlbnRGb2N1c2VkRWxlbWVu
dFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19BUElfQVZB
SUxBQkxFKGlvcygxMi4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGRpZERpc21pc3NGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVy
ICopY29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CisKKy8qISBAYWJzdHJh
Y3QgQWxsb3dzIHlvdXIgYXBwIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4g
c2VjdXJpdHkgb3JpZ2luIHNob3VsZCBoYXZlIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50
YXRpb24gYW5kIG1vdGlvbi4KKyBAcGFyYW0gc2VjdXJpdHlPcmlnaW4gVGhlIHNlY3VyaXR5IG9y
aWdpbiB3aGljaCByZXF1ZXN0ZWQgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBvcmllbnRhdGlvbiBh
bmQgbW90aW9uLgorIEBwYXJhbSBkZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9uIGhhbmRsZXIg
dG8gY2FsbCBvbmNlIHRoZSBhcHAgaGFzIG1hZGUgaXRzIGRlY2lzaW9uLiBQYXNzIFlFUyB0byBh
bGxvdyB0aGUgb3JpZ2luIGFjY2VzcywgTk8gb3RoZXJ3aXNlLgorCisgSWYgeW91IGRvIG5vdCBp
bXBsZW1lbnQgdGhpcyBtZXRob2QsIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50YXRpb24g
YW5kIG1vdGlvbiB3aWxsIGJlIGdyYW50ZWQuCisgKi8KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0ZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOworCiAjZWxzZSAvLyBUQVJHRVRfT1NfSVBIT05FCiAtICh2
b2lkKV9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CiAtICh2b2lk
KV9jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCBjY2I3OGEyOWUyYTRjMmZmMTZkNDI1
MjVhZTVlNDYwYTc4OWJiN2EzLi42M2Y1NWM0NzEyNDU3MTBjZDhlOThjZWFkYTg3MDkzOGU3ZGFi
ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0x
MTksNiArMTE5LDkgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFn
ZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VM
aW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKFdlYlBhZ2VQcm94eSYsIFdLUmVzb3VyY2VMaW1pdCkgZmlu
YWw7CiAgICAgICAgIHZvaWQgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJQYWdl
UHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgVVJM
JiwgQVBJOjpEYXRhJikgZmluYWw7CisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgICAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAjZW5kaWYKICAgICAgICAgYm9vbCBu
ZWVkc0ZvbnRBdHRyaWJ1dGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlczsgfQogICAgICAg
ICB2b2lkIGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1
dGVzJikgZmluYWw7CkBAIC0xODcsNiArMTkwLDkgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3
ZWJWaWV3U2F2ZURhdGFUb0ZpbGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdV
UkwgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0lu
aXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmll
d1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhh
bmRsZXIgOiAxOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAg
ICAgYm9vbCB3ZWJWaWV3U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0ZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyIDogMTsKICNlbmRpZgogICAgICAgICBi
b29sIHdlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVv
dGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNp
c2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3Rh
Rm9yU2VjdXJpdHlPcmlnaW5EYXRhYmFzZU5hbWVEaXNwbGF5TmFtZUN1cnJlbnRRdW90YUN1cnJl
bnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFu
ZGxlciA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpp
bmRleCBiNWEwYTUwOGJjOTk2ZDNjOWE5N2Y5M2FmM2VhM2Y5MjUwOTdmNjY1Li45MjYwNzI1ODdj
MTBmZmNiOWNjOGE4YWY1Zjg3Mjk2OGQ3YWJlYmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTEzMiw2ICsxMzIsOSBAQCB2b2lkIFVJRGVsZWdh
dGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdTYXZlRGF0YVRvRmlsZVN1Z2dlc3RlZEZpbGVuYW1lTWltZVR5cGVP
cmlnaW5hdGluZ1VSTCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3OnNhdmVEYXRhVG9GaWxlOnN1Z2dlc3RlZEZpbGVuYW1lOm1pbWVUeXBlOm9yaWdpbmF0
aW5nVVJMOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5PcGVuUGFuZWxXaXRo
UGFyYW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuT3BlblBhbmVsV2l0aFBhcmFt
ZXRlcnM6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0
eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlP
cmlnaW46ZGVjaXNpb25IYW5kbGVyOildOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3U2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2hvdWxk
QWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luOmRl
Y2lzaW9uSGFuZGxlcjopXTsKICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
ZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVvdGFDdXJyZW50T3Jp
Z2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVE
YXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46Y3VycmVudFF1b3RhOmN1cnJlbnRPcmlnaW5V
c2FnZTpjdXJyZW50RGF0YWJhc2VVc2FnZTpleHBlY3RlZFVzYWdlOmRlY2lzaW9uSGFuZGxlcjop
XTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNl
Y3VyaXR5T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFDdXJyZW50T3Jp
Z2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVE
YXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2VOYW1lOmRpc3BsYXlOYW1lOmN1
cnJlbnRRdW90YTpjdXJyZW50T3JpZ2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6ZXhwZWN0
ZWRVc2FnZTpkZWNpc2lvbkhhbmRsZXI6KV07CkBAIC04NDQsNiArODQ3LDI2IEBAIGJvb2wgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVBy
b3h5KiB3ZWJGcmFtZVByCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld1Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JT
ZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKHRydWUpOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnNob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjpk
ZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdh
dGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBzaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW46d3JhcHBlcihzZWN1cml0eU9y
aWdpbikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildIChC
T09MIGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhh
bmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNoZWNr
ZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihncmFudGVkKTsKKyAgICB9KS5nZXQoKV07Cit9CisjZW5kaWYKKwogdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0
dHJpYnV0ZXMmIGZvbnRBdHRyaWJ1dGVzKQogewogICAgIGlmICghbmVlZHNGb250QXR0cmlidXRl
cygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNo
ZWNrcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5oCmlu
ZGV4IGVkMTY2OGM3MjgyYjg3NmVjNjBiNWNmOTM2YTZjMmNhYTgyMzZhODkuLjc4MjVkMjdlOGFm
MWE2OTYxZmQ3NTc1ODUzMDZlMzczMmNhZGIwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9WZXJzaW9uQ2hlY2tzLmgKQEAgLTM4LDYgKzM4LDggQEAKICNkZWZpbmUgRFlM
RF9NQUNPU19WRVJTSU9OX0ZJUlNUX1dIRVJFX0RPV05MT0FEX0FUVFJJQlVURV9ET0VTX05PVF9P
VkVSUklERV9OQVZJR0FUSU9OX0RFTEVHQVRFIDAKICNlbmRpZgogCisjZGVmaW5lIERZTERfSU9T
X1ZFUlNJT05fRklSU1RfV0lUSF9ERVZJQ0VfT1JJRU5UQVRJT05fQU5EX01PVElPTl9QRVJNSVNT
SU9OX0FQSSAwCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIFNES1ZlcnNpb24g
OiB1aW50MzJfdCB7CkBAIC01Niw2ICs1OCw3IEBAIGVudW0gY2xhc3MgU0RLVmVyc2lvbiA6IHVp
bnQzMl90IHsKICAgICBGaXJzdFdpdGhQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9
IERZTERfSU9TX1ZFUlNJT05fRklSU1RfV0lUSF9QUk9DRVNTX1NXQVBfT05fQ1JPU1NfU0lURV9O
QVZJR0FUSU9OLAogICAgIEZpcnN0V2l0aFNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVzID0gRFlM
RF9JT1NfVkVSU0lPTl9GSVJTVF9XSVRIX1NOQVBTSE9UX0FGVEVSX1NDUkVFTl9VUERBVEVTLAog
ICAgIEZpcnN0V2hlcmVEb3dubG9hZEF0dHJpYnV0ZURvZXNOb3RPdmVycmlkZU5hdmlnYXRpb25E
ZWxlZ2F0ZSA9IERZTERfSU9TX1ZFUlNJT05fRklSU1RfV0hFUkVfRE9XTkxPQURfQVRUUklCVVRF
X0RPRVNfTk9UX09WRVJSSURFX05BVklHQVRJT05fREVMRUdBVEUsCisgICAgRmlyc3RXaXRoRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJID0gRFlMRF9JT1NfVkVSU0lPTl9G
SVJTVF9XSVRIX0RFVklDRV9PUklFTlRBVElPTl9BTkRfTU9USU9OX1BFUk1JU1NJT05fQVBJLAog
I2VsaWYgUExBVEZPUk0oTUFDKQogICAgIEZpcnN0V2l0aE5ldHdvcmtDYWNoZSA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTEsCiAgICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNv
bXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDY3MGYyYzU2NzZmMTkzMjgw
NDRlYjcxMTkzNDhiNWQ3YmJmOThiNC4uZTE4YTcxMzM3Zjg2NWRmMWVkYWExZTgyZWRlMGQ2Yzkz
MzdkMDFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03
MTc0LDYgKzcxNzQsMTggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNlck1lZGlhU3RhdGUo
KQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQor
eworICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRh
dGEuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgbV91aUNsaWVudC0+c2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcygqdGhpcywgb3JpZ2luLmdldCgpLCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrSURdKGJvb2wgZ3JhbnRlZCkgewor
ICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFpc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZURl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzRGVjaXNpb24oY2FsbGJhY2tJRCwgZ3JhbnRl
ZCksIG1fcGFnZUlEKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6
cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBT
dHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVz
dElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZjViMGIxOTU1
NDQzMjNhNmM1NmU0NmI1ZjExYzFkNjg5MGFjOTdiMS4uM2VmOTdmM2Y2Mjk4NWNlNDQ3OGVlNjMz
NGU2NjhkOGI5NWE0ZDJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTE0MDEsNiArMTQwMSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFj
Y2Vzc0NvbmZpcm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVp
bnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgcmVxdWVzdERldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgorCiAgICAgc3RhdGljIFdlYlBhZ2VQcm94
eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9F
TEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IGFmYTFkNjdiYjEwMTMwNDgyYTI4Yzg5ZGIyZTY1MDc3ZTdiYjE0NzIuLjBi
MTJlMmJiZmI1ZTBiNWFlNTIwM2ViMzI1YTU4NjMxOWNmMGQ5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTUzMyw2ICs1MzMs
MTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTdG9wVVJMU2NoZW1lVGFzayh1
aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpCiAgICAg
TG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNr
UGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGEpIERlbGF5ZWQKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgUmVxdWVz
dERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgb3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgorCiAjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlm
aWVyRnJvbURhdGEoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5n
IHByZWZlcnJlZEZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSkK
ICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJvbUZpbGVQYXRoKFN0cmluZyBpZGVu
dGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBmaWxlUGF0aCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKaW5kZXggNjdmZDdhNzIwY2UyZjMzOTc3MDM1MTQ4YmRiZDJjZWZhN2M3ZmQzNS4u
NjJiNWVmYjgxYTM3NWE1ZGRiMDIzYzM1OWFhZTRiNDdiZDJmMDBjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKQEAgLTEzMjAsNCArMTMyMCwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcgog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoY29u
c3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjYWxsYmFjaykKK3sKKyAgICBtX3BhZ2Uuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2VzcyhvcmlnaW4sIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmOTI2YTI1OGFkODVh
YjA3NzkxNmQwY2IyMzUyODRkOGViM2JkYWE3Li4yMjdiODE0MTg2MzNkZTM3MmYxMzRmNmUxZTli
M2YxNWZhYTNlODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNjYsNiArMzY2LDEwIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhv
c3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFn
ZUlELCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQgKGJvb2wpPiYmKSBmaW5hbDsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyNlbmRpZgor
CiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJGcmFt
ZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNo
ZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODQwYTAyZGUwOGQzNmMz
YWFjZjEwOWE0ZTE5MzUzNGZmZTdiMWIwYi4uYWJkZjY0ZDM2YzFiYzFhY2IwMDQ0MjVhYmM1Njgz
YWVlY2M3NDlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTYzNDYsNiArNjM0NiwzMCBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LAogICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgUmVnaXN0
cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHN1YkZyYW1lSG9zdCksIFJlZ2lz
dHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdCh0b3BGcmFtZUhvc3QpLCBmcmFt
ZUlELCBtX3BhZ2VJRCwgcHJvbXB0RW5hYmxlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KICNlbmRpZgorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3N0YXRpYyB1
aW50NjRfdCBuZXh0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJ
RCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IG5leHRDYWxsYmFja0lEID0gMDsKKyAgICByZXR1
cm4gKytuZXh0Q2FsbGJhY2tJRDsKK30KKwordm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
JiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7Cisg
ICAgYXV0byBjYWxsYmFja0lEID0gbmV4dERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlz
c2lvbkNhbGxiYWNrSUQoKTsKKyAgICBBU1NFUlQoIW1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25QZXJtaXNzaW9uQ2FsbGJhY2tNYXAuY29udGFpbnMoY2FsbGJhY2tJRCkpOworICAgIG1fZGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tNYXAuYWRkKGNhbGxiYWNr
SUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UmVxdWVzdERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKG9yaWdpbi5kYXRhKCks
IGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NEZWNpc2lvbih1aW50NjRfdCBjYWxsYmFja0lELCBib29sIGdy
YW50ZWQpCit7CisgICAgYXV0byBjYWxsYmFjayA9IG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25QZXJtaXNzaW9uQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lEKTsKKyAgICBBU1NFUlQoY2Fs
bGJhY2spOworICAgIGNhbGxiYWNrKGdyYW50ZWQpOworfQorI2VuZGlmCiAgICAgCiBzdGF0aWMg
U2hhcmVTaGVldENhbGxiYWNrSUQgbmV4dFNoYXJlU2hlZXRDYWxsYmFja0lEKCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxZDAxMGE4MzFjMGVk
NWVmYWE0NzI0MDliMWEwY2IxNDAzMzg5YzQ3Li5kNzNlODRkN2M1MzNhYTQyN2JhOGM4MzM3NTlm
MTFmNmFiNmQwMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC0xMTEwLDYgKzExMTAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVp
bnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2sp
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2VuZGlm
CisKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRV
UkwmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAg
IHZvaWQgZGlkQ29tcGxldGVTaGFyZVNoZWV0KGJvb2wgd2FzQ29tcGxldGVkLCBTaGFyZVNoZWV0
Q2FsbGJhY2tJRCBjb250ZXh0SWQpOwogICAgIApAQCAtMTIwNiw2ICsxMjEwLDEwIEBAIHByaXZh
dGU6CiAgICAgdm9pZCByZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgZ2xvYmFsUG9zaXRpb24pOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgIHZvaWQgZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
RGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKTsKKyNlbmRpZgorCiAj
aWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAj
ZW5kaWYKQEAgLTE4MzYsNiArMTg0NCwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0
X3QsIFdURjo6RnVuY3Rpb248dm9pZChib29sIGdyYW50ZWQpPj4gbV9zdG9yYWdlQWNjZXNzUmVz
cG9uc2VDYWxsYmFja01hcDsKICAgICBIYXNoTWFwPFNoYXJlU2hlZXRDYWxsYmFja0lELCBXVEY6
OkZ1bmN0aW9uPHZvaWQoYm9vbCBjb21wbGV0ZWQpPj4gbV9zaGFyZVNoZWV0UmVzcG9uc2VDYWxs
YmFja01hcDsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgSGFzaE1hcDx1
aW50NjRfdCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZ3JhbnRlZCk+PiBtX2Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFwOworI2VuZGlmCisK
ICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
dWludDY0X3Q+IG1fYXBwbGljYXRpb25NYW5pZmVzdEZldGNoQ2FsbGJhY2tNYXA7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCmluZGV4IGNjZTc3MjIyNmE1OWI4NzVhYTYwOGI4ZjJhN2EwMzBjNmYwNmZmMmYuLjlk
NzIzOWRiNWEwMzJhMDJlYzAyMjQ3NjNhMDc2ZDY5NjYwMzE2ODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzYz
LDYgKzM2MywxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICAj
IE5vdGlmaWNhdGlvbgogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNp
b24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAorI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisgICAgRGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzRGVjaXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKQorI2Vu
ZGlmCisKICAgICAjIFByaW50aW5nLgogICAgIEJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJ
RCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbykKICAgICBFbmRQcmludGluZygp
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGFh
Mzg4MTE0MjFjNzY2M2UxZjE5NTg1NzQwYmMxZTlhMTE5ZjhmZS4uYTM4MWFkYzVjODZmMGQ1Njk5
YzlkOGJiMjZhOTdmODBmMDY4YTNjYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAzLTA2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBP
cmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBoZWxwIHRlc3QgdGhlIERldmljZSBPcmll
bnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSS4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3MpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRp
b25zKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3Rl
bnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aGFuZGxlRGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRT
aG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdElu
dm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0w
My0wNyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXNv
dXJjZSBMb2FkIFN0YXRpc3RpY3M6IE1ha2UgaXQgcG9zc2libGUgdG8gcHVyZ2Ugb25seSBzY3Jp
cHQtYWNjZXNzaWJsZSBjb29raWVzCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA5Y2Y0
NDkzZTYwZTc4NjMzOGIxM2VhZjBhYjY1MDdjNDM1YzMxMzc4Li5jMjUzMjg5NzkwN2U0OTEwNTA0
ZGMzN2VhYTI2ZDUzMzU4OWUxMWY0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTEw
NCw2ICsxMDQsOSBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgYm9vbGVhbiBpc0NvbW1h
bmRFbmFibGVkKERPTVN0cmluZyBuYW1lKTsKICAgICB1bnNpZ25lZCBsb25nIHdpbmRvd0NvdW50
KCk7CiAKKyAgICAvLyBEZXZpY2UgT3JpZW50YXRpb24gTW90aW9uLgorICAgIHZvaWQgc2V0U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhib29sZWFuIHZhbHVlKTsK
KwogICAgIC8vIFNwZWNpYWwgRE9NIHZhcmlhYmxlcy4KICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBn
bG9iYWxGbGFnOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA4MjRhNWY2ODQzMTY5MzcwMzRlODZjMTQ5MDMxNzdi
YmNjYjZmZWQ2Li5iNzlkMDhhMmFmZTg0NmU1NTlkZTQyYTg3ZDhmODE1M2QyYmMyNDBlIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKQEAgLTEyOTQsNiArMTI5NCwxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZERv
d25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyhib29sIHZhbHVlKQogICAgIFdLQnVuZGxlUGFn
ZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwg
bWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAordm9pZCBUZXN0UnVu
bmVyOjpzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGJvb2wg
dmFsdWUpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0
V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJl
Zj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKHZhbHVlKSk7CisgICAgV0tC
dW5kbGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+
cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOworfQorCiB2b2lk
IFRlc3RSdW5uZXI6OnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCkKIHsKICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIlRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA2ZDExNjQ4YmJj
OTQ2ZmE4NjY1NjQwN2ZmMzEyMjc0NzFiYjMzMjQ4Li44ZGZjZjZjYWYzMjIzMjU0OTQ3YzlkZGZh
ZjMwMjE3NzcxNzE2OThlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzQ4LDYgKzM0OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldE5hdmlnYXRpb25HZXN0dXJlc0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRJZ25v
cmVzVmlld3BvcnRTY2FsZUxpbWl0cyhib29sKTsKICAgICB2b2lkIHNldFNob3VsZERvd25sb2Fk
VW5kaXNwbGF5YWJsZU1JTUVUeXBlcyhib29sKTsKKyAgICB2b2lkIHNldFNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoYm9vbCk7CiAKICAgICBib29sIGRpZENhbmNl
bENsaWVudFJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVj
dDsgfQogICAgIHZvaWQgc2V0RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoYm9vbCB2YWx1ZSkgeyBt
X2RpZENhbmNlbENsaWVudFJlZGlyZWN0ID0gdmFsdWU7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNTU0ZTAzYTZmYWI4M2Q0M2EyNzhhNTNmNzY0ZWE0
NTMzZDA0NmFmZC4uMDg5NjRjZGRlNTYzZmRiMzk3NzczNmM3YWI0NGYxZTllZTEyYzM0NSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI2Miw2ICsyNjIs
MTEgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFBvaW50ZXJMb2NrKFdLUGFnZVJlZiBwYWdlLCBjb25z
dCB2b2lkKikKICAgICBXS1BhZ2VEaWRBbGxvd1BvaW50ZXJMb2NrKHBhZ2UpOwogfQogCitzdGF0
aWMgYm9vbCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdLUGFn
ZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGNvbnN0IHZvaWQqKQoreworICAgIHJl
dHVybiBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuaGFuZGxlRGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NSZXF1ZXN0KG9yaWdpbik7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJv
bGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBj
b25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tX
aW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykK
IHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9y
bVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CkBAIC01NzAsOCArNTc1
LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0
IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRW
YWx1ZXMob3B0aW9ucyk7CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlv
bi5nZXQoKSwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWOCBwYWdlVUlDbGllbnQgPSB7
Ci0gICAgICAgIHsgOCwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAgIFdLUGFnZVVJQ2xpZW50
VjEzIHBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyAxMywgbV9tYWluV2ViVmlldy5nZXQoKSB9
LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAg
ICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UKQEAgLTYzNyw3ICs2NDIs
MTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0
IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgICAgICAwLCAvLyBydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwKICAgICAgICAgMCwgLy8gZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lCiAgICAg
ICAgIHJlcXVlc3RQb2ludGVyTG9jaywKLSAgICAgICAgMCwKKyAgICAgICAgMCwgLy8gZGlkTG9z
ZVBvaW50ZXJMb2NrCisgICAgICAgIDAsIC8vIGhhbmRsZUF1dG9wbGF5RXZlbnQKKyAgICAgICAg
MCwgLy8gaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UKKyAgICAgICAgMCwgLy8g
ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZAorICAgICAg
ICAwLCAvLyBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2UKKyAg
ICAgICAgMCwgLy8gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtCisgICAgICAgIHNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MKICAgICB9OwogICAgIFdLUGFnZVNl
dFBhZ2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7
CiAKQEAgLTk0Myw2ICs5NTQsOCBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9D
b25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zLCBSZQogCiAgICAgbV9z
aG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMgPSBmYWxzZTsKIAorICAgIG1fc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyA9IGZhbHNlOworCiAgICAg
bV93b3JrUXVldWVNYW5hZ2VyLmNsZWFyV29ya1F1ZXVlKCk7CiAKICAgICBtX3JlamVjdHNQcm90
ZWN0aW9uU3BhY2VBbmRDb250aW51ZUZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyA9IGZhbHNl
OwpAQCAtMjU0OCw2ICsyNTYxLDEyIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmhhbmRsZUNoZWNr
T2ZVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdLRnJhbWVSZWYgZnJhbWUsCiAgICAgV0tV
c2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tTZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGNoZWNrUmVxdWVz
dCwgc2FsdFN0cmluZy5nZXQoKSwgc2V0dGluZ3NGb3JPcmlnaW4ob3JpZ2luSGFzaCkucGVyc2lz
dGVudFBlcm1pc3Npb24oKSk7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUmVxdWVzdChXS1NlY3VyaXR5T3JpZ2luUmVmIG9y
aWdpbikKK3sKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1ha2VTdHJpbmco
IlJlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Ig
c2VjdXJpdHkgb3JpZ2luIFwiIiwgb3JpZ2luVXNlclZpc2libGVOYW1lKG9yaWdpbiksICJcIi5c
biIpKTsKKyAgICByZXR1cm4gbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpoYW5kbGVVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdChXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCkKIHsKICAgICBhdXRv
IG9yaWdpbkhhc2ggPSB1c2VyTWVkaWFPcmlnaW5IYXNoKHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAppbmRleCA0YjM1M2RiNDJiNTUyZTg5ODI2MTI0MmUzYTVkMDdhMDQwZjNlNTY2Li4z
YWJlMmRiMGExNzE2ODBjYTdkZTI2NDEyNjA3N2M2MDZkN2JiYTI3IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xNTAsNiArMTUwLDkgQEAgcHVibGljOgogICAg
IHVuc2lnbmVkIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4oV0tTdHJp
bmdSZWYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5TdHJpbmcsIFdLU3RyaW5nUmVmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW5TdHJpbmcpOwogICAgIHZvaWQgcmVzZXRVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdENvdW50Rm9yT3JpZ2luKFdLU3RyaW5nUmVmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
U3RyaW5nLCBXS1N0cmluZ1JlZiB0b3BMZXZlbERvY3VtZW50T3JpZ2luU3RyaW5nKTsKIAorICAg
IC8vIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbi4KKyAgICBib29sIGhhbmRsZURldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUmVxdWVzdChXS1NlY3VyaXR5T3JpZ2luUmVmKTsKKwog
ICAgIC8vIENvbnRlbnQgRXh0ZW5zaW9ucy4KICAgICB2b2lkIGNvbmZpZ3VyZUNvbnRlbnRFeHRl
bnNpb25Gb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJik7CiAgICAgdm9pZCByZXNldENvbnRl
bnRFeHRlbnNpb25zKCk7CkBAIC0xOTksNiArMjAyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoYm9vbCk7CiAKICAgICB2b2lkIHNldFNob3VsZERv
d25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyhib29sIHZhbHVlKSB7IG1fc2hvdWxkRG93bmxv
YWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldFNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoYm9vbCB2YWx1ZSkgeyBtX3Nob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MgPSB2YWx1ZTsgfQogCiAgICAg
dm9pZCBzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLU3RyaW5nUmVmIGhvc3ROYW1l
KTsKQEAgLTUwOSw2ICs1MTMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0
ZUVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmUg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlw
ZXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzIHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9yZWplY3RzUHJvdGVjdGlvblNw
YWNlQW5kQ29udGludWVGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9oYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMGJkYzQxNzZhZTEyMTY2
NTAyOThkOGQ0ODQ0ZGViOTY2NjFiMmQwZi4uNzczMjkxODg0YTVkYTdhNDBmYmMzOTA3M2ViMTcz
MTlmNDMzN2RkMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
QEAgLTc0Nyw2ICs3NDcsMTMgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiU2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyIp
KSB7CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFu
R2V0VHlwZUlEKCkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxX
S0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV0tC
b29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiUnVuVUlQcm9jZXNz
U2NyaXB0IikpIHsKICAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFy
eSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwogICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc2NyaXB0S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTY3JpcHQiKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzQ3Mjg0ODgxMmU4MjcwODYyNDMy
Zjk0MjY2OWNlOTI5ZmY0YzZjNS4uYjAzYTkzYWYyYzM2NTUxYzE0ZDIwYzk1NjYzNGFiZTM1ZDRm
M2RhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAzLTA3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRh
dGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY0
NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1w
ZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2
aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90
aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZ3JhbnRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRh
dGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRl
bmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZp
Y2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rldmlj
ZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXIt
Z2VzdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Ut
b3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRh
dGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mt
d2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMv
ZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNl
LW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQ6CisKIDIwMTkt
MDMtMDcgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVz
b3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHB1cmdlIG9ubHkgc2Ny
aXB0LWFjY2Vzc2libGUgY29va2llcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDhjOTQ4YmU3ZDdm
OGQxNjRkN2ZkN2JjNWI5ODdmZjg2NzYzYzMwZi4uN2NjNjNhYjMxNGZhNDE5ZGEzNGU5YTRhZTM3
ZDA4NTczZWFiMThlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMyw2ICszMyw3IEBAIGZhc3Qv
em9vbWluZy9pb3MgWyBTa2lwIF0KIGZhc3QvZm9ybXMvaW9zIFsgU2tpcCBdCiBmYXN0L3ZpZXdw
b3J0L2lvcyBbIFNraXAgXQogZmFzdC92aXN1YWwtdmlld3BvcnQvaW9zLyBbIFNraXAgXQorZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24gWyBTa2lwIF0KIGZhc3QvZXZlbnRzL2lvcyBbIFNraXAgXQog
ZmFzdC9ldmVudHMvd2F0Y2hvcyBbIFNraXAgXQogZmFzdC9ldmVudHMvcG9pbnRlci9pb3MgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ZDNlMWM5ODc0NDRlYjgy
YjQ2NTg4ZmFkNjk4Njk3YjY2N2M5MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1k
ZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMjogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJl
ZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2Vp
dmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJp
dHkgb3JpZ2luICIiLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBObyBkZXZpY2UgbW90aW9u
IG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0
byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgcmVzdWx0IGlzICJkZW5pZWQiCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVx
dWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzBjZDBhMmUxZmE0MjIzYmIxMjI4MWJiNDlmMjc4NzE2MjZmNWUwZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1t
b3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRl
c3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhmYWxzZSk7
CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKworaW50ZXJu
YWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVz
dFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgIHJlc3VsdCA9IF9yZXN1
bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImRlbmllZCIpOwor
CisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgpID0+IHt9KTsKKwor
ICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICAgICAgICAgIERl
dmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4gewor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVkIik7CisgICAgICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3Jh
bnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZTMyMGEwYzI0YTM0MmE5Yjk4YWFlNTU2YjZkN2Q2ZmU1NGVhNGJiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1v
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVu
dGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVx
dWVzdGVkIGFuZCBncmFudGVkLgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9u
IGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1cml0eSBvcmlnaW4gIiIuCitCYXNpYyB0ZXN0aW5nIGZv
ciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHJlc3VsdCBp
cyAiZ3JhbnRlZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1ncmFudGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RjMTFlOWM4ZmE4NmZiZDVkMjY5MDE2ZmZmNDA4
YjU1NGY5ZGFmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9y
aWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApA
QCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVy
bWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3ModHJ1ZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsICgp
ID0+IHt9KTsKKworaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgRGV2aWNl
TW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAg
ICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVz
dWx0IiwgImdyYW50ZWQiKTsKKworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rp
b24iLCAoKSA9PiB7fSk7CisKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9
PiB7CisgICAgICAgICAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRo
ZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAg
ICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJl
cXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
dXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGNmNTc2Y2RmYjc1MDcwNjEz
NzNmMWQyYmU4MjJmZmMyODI3ZTA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNl
ci1nZXN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTQ6IE5vdEFsbG93ZWRFcnJvcjogQ2FsbGluZyByZXF1ZXN0UGVybWlzc2lvbigpIHJl
cXVpcmVzIGEgdXNlciBnZXN0dXJlCitUZXN0cyB0aGF0IERldmljZU1vdGlvbkV2ZW50LnJlcXVl
c3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIGUubmFtZSBpcyAiTm90QWxsb3dlZEVycm9yIgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVz
dC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Ut
b3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2Q0NzFjNWQzMTkzZTFlNjU3MjU5MzE3N2FmZTg5NzQ1MWEyMGIz
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sCkBAIC0w
LDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oIlRlc3RzIHRoYXQgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSBy
ZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCisKK0Rl
dmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocmVzdWx0KSA9PiB7Cisg
ICAgdGVzdEZhaWxlZCgicmVxdWVzdFBlcm1pc3Npb24gcHJvbWlzZSB3YXMgbm90IHJlamVjdGVk
Iik7Cit9LCAoX2UpID0+IHsKKyAgICBlID0gX2U7CisgICAgY29uc29sZS5sb2coZSk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLm5hbWUiLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0
aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2ZGRkNmZmMTQzYWM3ZTVjYjcz
ZTk2NDVkZjM2NzE5NWJiOGY3YWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9u
LWRlbmllZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDEyOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZp
cmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorUmVj
ZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZvciBzZWN1
cml0eSBvcmlnaW4gIiIuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IE5vIGRldmljZSBtb3Rp
b24gb3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgYmVjYXVzZSBwZXJtaXNzaW9u
IHRvIHVzZSB0aGUgQVBJIHdhcyBkZW5pZWQuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZGVuaWVkIgorUEFTUyByZXN1bHQgaXMgImRlbmll
ZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3Jp
ZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1kZW5pZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzhkNzNjZGMwMTg1MGMxNzc0MDhlOWJiMGRhYTM4
MGVkOTFkYTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRt
bApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJl
cXVlc3RQZXJtaXNzaW9uKCkuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzcyhmYWxzZSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImRldmljZW9y
aWVudGF0aW9uIiwgKCkgPT4ge30pOworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+
IHsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigo
X3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKworICAgICAgICBhZGRFdmVudExp
c3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsKKworICAgICAgICBpbnRlcm5h
bHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICAgICAgICAgIERldmljZU9yaWVudGF0aW9u
RXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMTJlZTFhZmQ0MGU5ZDMzMjExZDFmZmRhNjE3YTg5YjM1NWJjODc3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZSBtb3Rpb24gb3Ig
b3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMgYmVl
biByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24gJiBt
b3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0Jhc2ljIHRlc3Rp
bmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgorUEFT
UyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDFiYWRiZjBi
MmU5OGY5YTJjYjM1MTAyMDZjODcwOGU4YjJmNWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1ncmFudGVkLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGluZyBmb3IgRGV2
aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNo
b3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModHJ1ZSk7CisKK2FkZEV2
ZW50TGlzdGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCitpbnRlcm5hbHMu
d2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVl
c3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVz
dWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7
CisKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCAoKSA9PiB7
fSk7CisKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICAg
ICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jl
c3VsdCkgPT4geworICAgICAgICAgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwor
ICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Np
b24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWI0MjZhMjllYWM3MTdh
MjA1NzlmZjgxYzRlOWZkZDQ2YjgzNmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxNDogTm90QWxsb3dlZEVycm9yOiBDYWxsaW5nIHJlcXVlc3RQZXJtaXNz
aW9uKCkgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUKK1Rlc3RzIHRoYXQgRGV2aWNlT3JpZW50YXRp
b25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlLm5hbWUgaXMgIk5vdEFsbG93ZWRF
cnJvciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
b3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjY5OTJhZDQzNThkZDcz
YmNjOTUyYTcwODQ4MWU1MmRkNmU1Y2YxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi11c2VyLWdlc3R1cmUuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IERldmljZU9yaWVu
dGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS4i
KTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCisKK0RldmljZU9yaWVudGF0aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKS50aGVuKChyZXN1bHQpID0+IHsKKyAgICB0ZXN0RmFpbGVkKCJyZXF1
ZXN0UGVybWlzc2lvbiBwcm9taXNlIHdhcyBub3QgcmVqZWN0ZWQiKTsKK30sIChfZSkgPT4gewor
ICAgIGUgPSBfZTsKKyAgICBjb25zb2xlLmxvZyhlKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImUubmFtZSIsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30p
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29u
dGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0
aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRtbAppbmRleCBlZDJkZDIwMzc3YzU3MzY1
ZTFhNWY3ZmZjNTI1NGY3MjdkNzFiNWRjLi4zOGYyZDQyMDA5ZTkzYzRhOTM5MzIzZDcyMDM5NmQ5
MWQ2NWU2ZDQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZp
Y2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNl
Y3VyZS1jb250ZXh0Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gcnVuRGV2aWNlTW90
aW9uVGVzdCgpCiAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5l
ciIpOwogICAgIGFkZEV2ZW50TGlzdGVuZXIoImRldmljZW1vdGlvbiIsIGZ1bmN0aW9uKCkgeyB9
KTsKICAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4gewotICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImxhc3RDb25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEg
ZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2lu
ZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGFzdENvbnNvbGVNZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Ug
bW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNv
bnRleHQgaXMgbm90IHNlY3VyZS4iKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfSk7
CiB9CkBAIC00NCw3ICs0NCw3IEBAIGZ1bmN0aW9uIHJ1bkRldmljZU9yaWVudGF0aW9uVGVzdCgp
CiAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7
CiAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCBmdW5jdGlvbigpIHsg
fSk7CiAgICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBh
IGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3Np
bmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImxhc3RDb25zb2xlTWVzc2FnZSIsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBj
b250ZXh0IGlzIG5vdCBzZWN1cmUuIik7CiAgICAgICAgIHJ1bkRldmljZU1vdGlvblRlc3QoKTsK
ICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2Rl
dmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1
cmUtY29udGV4dC1leHBlY3RlZC50eHQKaW5kZXggMGZiN2Q3ZWJmMmQ4NDJkN2JiNzM0YWE4NDMz
MThkODk2ODBkNDM0Ni4uMGZhZDBhOGVjYWI4YmVjOTIxY2FiY2YxYTgyZGY0N2ZlMzBjZjIzMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0
aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4
dC1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTEgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAz
NzogRGV2aWNlIE9yaWVudGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTk6IERldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSA1MDogRGV2aWNlIE9yaWVudGF0aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVk
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjU6IERldmljZSBNb3Rpb24gQVBJIGlzIG5vdCBzdXBw
b3J0ZWQKIFRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2
aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJv
ciBpbiBzZWN1cmUgY29udGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCisK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1v
dGlvbi1zZWN1cmUtY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMv
ZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sCmluZGV4IDRlNTRk
MTFkOTk0MWU3NThlMDI3NTBiODZkNDNlMzJiYzk0MzNlZWUuLmYxMWFjMmZkNTgzNjUyMDAwOWQ5
NmNhZTFmNWZhMGI4MzdmYWIxZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9u
LXNlY3VyZS1jb250ZXh0Lmh0bWwKQEAgLTYsNiArNiwxMSBAQAogZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRp
b24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRvZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUg
Y29udGV4dHMuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgaWYgKHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2VzcykKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHRydWUpOworfQorCiAvLyBsb2NhbGhvc3QgaXMg
c2VjdXJlIGJ5IGRlZmF1bHQuCiAKIGxldCBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOwpAQCAt
MTUsMTkgKzIwLDI3IEBAIGludGVybmFscy5zZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKChtZXNz
YWdlKSA9PiB7CiAKIGZ1bmN0aW9uIHJ1bkRldmljZU1vdGlvblRlc3QoKQogeworICAgIGRlYnVn
KCIiKTsKICAgICBpZiAoIXdpbmRvdy5EZXZpY2VNb3Rpb25FdmVudCkgewogICAgICAgICBjb25z
b2xlLmxvZygiRGV2aWNlIE1vdGlvbiBBUEkgaXMgbm90IHN1cHBvcnRlZCIpOwogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGxhc3RDb25zb2xl
TWVzc2FnZSA9IG51bGw7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5n
IGRldmljZSBtb3Rpb24gbGlzdGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vt
b3Rpb24iLCBmdW5jdGlvbigpIHsgfSk7Ci0gICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsK
LSAgICAgICAgc2hvdWxkQmVOdWxsKCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKLSAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2UgbW90aW9uIGFjY2Vz
cy4uLiIpOworICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICBE
ZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsK
KyAgICAgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisKKyAgICAgICAgICAgIGxhc3RDb25zb2xl
TWVzc2FnZSA9IG51bGw7CisgICAgICAgICAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ug
bW90aW9uIGxpc3RlbmVyIik7CisgICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vt
b3Rpb24iLCBmdW5jdGlvbigpIHsgfSk7CisgICAgICAgICAgICBpbnRlcm5hbHMucG9zdFRhc2so
KCkgPT4geworICAgICAgICAgICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVNZXNzYWdl
Iik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5LDEyICs1MiwyMCBAQCBmdW5jdGlvbiBydW5E
ZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbGFz
dENvbnNvbGVNZXNzYWdlID0gbnVsbDsKLSAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2Ug
b3JpZW50YXRpb24gbGlzdGVuZXIiKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vvcmll
bnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMucG9zdFRhc2soKCkgPT4g
ewotICAgICAgICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOwotICAgICAgICBy
dW5EZXZpY2VNb3Rpb25UZXN0KCk7CisgICAgZGVidWcoIiogUmVxdWVzdGluZyBkZXZpY2Ugb3Jp
ZW50YXRpb24gYWNjZXNzLi4uIik7CisgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9
PiB7CisgICAgICAgIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50
aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAg
ICAgICAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOworICAgICAgICAgICAgZGVidWcoIiog
UmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7CisgICAgICAgICAgICBh
ZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsIGZ1bmN0aW9uKCkgeyB9KTsKKyAg
ICAgICAgICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9PiB7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmVOdWxsKCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKKyAgICAgICAgICAgICAgICBydW5EZXZp
Y2VNb3Rpb25UZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA2OWM4Mzg0ZTJjODE4NjUyZjA0NWFjZjQ5NTU0Y2I2MmUyNzllZWFiLi4wYjhlODRkODA2OTc2
NTlhNTQwOGVjYTA3YjgwYjg1NTMxMzc4MDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC03LDYgKzcsNyBAQAogIy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwogCiBjb21wb3NpdGluZy9pb3MgWyBQYXNzIF0KK2Zhc3QvZGV2
aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBdCiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0
L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgUGFzcyBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNl
LW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlv
bi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA4Njc3OWFmNDY1
MTExMWIxODcxNWE1M2U3YjExZTNiMTFiOTczYTExLi43ODI3YWJjMmVkYzI4NmMxYzY3ODFjNDkx
OWU0OGRiZGE1OTkyYzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0
cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRl
eHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3Rz
L2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBl
Y3RlZC50eHQKQEAgLTEsMTUgKzEsMTUgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NTogQmxv
Y2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVu
ZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDI4OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBv
ciBvcmllbnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5v
dCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDU6IEJsb2NrZWQgYXR0ZW1wdCB0byBh
ZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246
IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAy
ODogQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24g
ZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgog
VGVzdHMgdGhhdCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2Vvcmll
bnRhdGlvbiBhbmQgZGV2aWNlb3JpZW50YXRpb24gbG9ncyBhbiBlcnJvciBpbiBub24tc2VjdXJl
IGNvbnRleHRzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAogKiBSZWdpc3Rlcmlu
ZyBkZXZpY2Ugb3JpZW50YXRpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlz
ICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBs
aXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgorUEFT
UyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2Ug
bW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJyb3dzaW5nIGNv
bnRleHQgaXMgbm90IHNlY3VyZS4iCiAKICogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0
ZW5lcgotUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQg
YSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dz
aW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iCitQQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyAi
QmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gZXZl
bnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmll
bnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24t
c2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDMxYjg1ZjVkN2Q0NWYzN2Y5ZDZiMTY1
ZjY3MzdkZmU1OTIyZWRmNWMuLjQ0ZmMxOGY4OTllMzI5MzQ1N2QwOGJjYTNmZDY2YjJiOTA2Y2Fj
MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50
cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9y
aWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEs
MTYgQEAKK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVz
dCBmb3Igc2VjdXJpdHkgb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLgogVGVzdHMgdGhh
dCB0cnlpbmcgdG8gc2V0IGFuIGV2ZW50IGxpc3RlbmVyIGZvciBkZXZpY2VvcmllbnRhdGlvbiBh
bmQgZGV2aWNlb3JpZW50YXRpb24gZG9lcyBub3QgbG9nIGFuIGVycm9yIGluIHNlY3VyZSBjb250
ZXh0cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKKyogUmVxdWVzdGluZyBkZXZp
Y2Ugb3JpZW50YXRpb24gYWNjZXNzLi4uCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKICogUmVn
aXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyCiBQQVNTIGxhc3RDb25zb2xlTWVz
c2FnZSBpcyBudWxsCiAKKyogUmVxdWVzdGluZyBkZXZpY2UgbW90aW9uIGFjY2Vzcy4uLgorUEFT
UyByZXN1bHQgaXMgImdyYW50ZWQiCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVu
ZXIKIFBBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364014</attachid>
            <date>2019-03-08 08:43:18 -0800</date>
            <delta_ts>2019-03-08 16:30:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195329-20190308084317.patch</filename>
            <type>text/plain</type>
            <size>126016</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg2YzJkYjFmNGFlMDQy
ZWNhNDM0OTg4OTA0NTEwM2Y0N2JkMzU4NS4uNjU4M2YzMjEzYWM4ZjUyOGJiNzMwNDNlZGJiMzNl
NDExZmM1OTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE5LTAzLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERl
dmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNzaW9uIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY0NTM2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9uIC8gTW90aW9uIHBl
cm1pc3Npb24gQVBJOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZGV2aWNlb3Jp
ZW50YXRpb24vaXNzdWVzLzU3CisKKyAgICAgICAgUGFnZXMgY2FuIGFkZCBldmVudCBsaXN0ZW5l
cnMgZm9yICdkZXZpY2VvcmllbnRhdGlvbicgLyAnZGV2aWNlbW90aW9uJyBldmVudHMgYnV0Cisg
ICAgICAgIHN1Y2ggZXZlbnRzIHdpbGwgbm90IGJlIGZpcmVkIHVudGlsIHRoZSBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgLyBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAg
IGFuZCB0aGUgdXNlciBncmFudHMgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgVGhlIGZlYXR1cmUg
aXMgY3VycmVudGx5IGJlaGluZCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBmbGFnLCBvZmYgYnkg
ZGVmYXVsdC4KKworICAgICAgICBUZXN0czogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdy
YW50ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZGVuaWVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZGV2aWNlLW9yaWVudGF0
aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25F
dmVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAgICog
ZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250
cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
OjpzaG91bGRBbGxvd0FjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI6OnNldEFjY2Vzc1N0YXRlKToKKyAgICAgICAgKiBk
b20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyOjphY2Nlc3NTdGF0ZSBjb25zdCk6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9u
RXZlbnQuaDoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGw6CisgICAg
ICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50OjpyZXF1ZXN0UGVy
bWlzc2lvbik6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5o
OiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50Lmlk
bDogQWRkZWQuCisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25QZXJtaXNzaW9uU3RhdGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICog
ZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAq
IGRvbS9NaWNyb3Rhc2tzLmNwcDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OmRldmljZU1vdGlvbkNvbnRyb2xsZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93Ojppc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aXNBbGxvd2VkVG9BZGREZXZpY2VNb3Rpb25PcmllbnRh
dGlvbkxpc3RlbmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RhcnRM
aXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3Nh
cnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdGFydExpc3RlbmluZ0ZvckRldmlj
ZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3RvcExp
c3RlbmluZ0ZvckRldmljZU1vdGlvbklmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5o
OgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VDb250cm9sbGVyOjpoYXNEZXZpY2VFdmVudExpc3RlbmVyIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlh
bWw6CisKIDIwMTktMDMtMDcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPUyBXS10gUkVHUkVTU0lPTiAocjI0MjEzMik6IEZpeGVkIHBvc2l0aW9u
IGJhbm5lcnMgZmxpY2tlciBhbmQgbW92ZSB3aGVuIHNjcm9sbGluZyAoQXBwbGUsIFRlc2xhLCBZ
b3VUdWJlLCBSZWRkaXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFlNjBkMWJiMTY5NzdjOGM5MWUzNzdjOTBmOWMz
ODA1ZWQ5ZTg5NDguLjg4NTIxYTUwNWUzMTlmODQyOWVmZmYyZTUxMmJhNjlmMDhiOGY3ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTktMDMtMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0aW9u
IC8gTW90aW9uIHBlcm1pc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTUzMjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NjQ1MzY3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lvbiBBUEk6Cisg
ICAgICAgIC0gaHR0cHM6Ly9naXRodWIuY29tL3czYy9kZXZpY2VvcmllbnRhdGlvbi9pc3N1ZXMv
NTcKKworICAgICAgICBUaGlzIGFkZHMgbmV3IFNQSSB0byBXS1VJRGVsZWdhdGVQcml2YXRlLCB1
bnRpbCB3ZSBjYW4gbWFrZSB0aGlzIEFQSS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAg
ICAgKEFQSTo6VUlDbGllbnQ6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAo
V0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
VUlDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNl
dERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnNob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
cXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpuZXh0RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25QZXJtaXNzaW9uQ2FsbGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NEZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAx
OS0wMy0wNyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gRGlzYWJsZSBwZXJtaXNzaXZlIGNhbGwgbG9nZ2luZyBpbiBzYW5kYm94CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGY1MmJkNGY1NjA2NDQ5MmVjOGE0NDdhNzFlODU2ZGI5ZDA0ZDQ0NDYu
LjRjYWNmYzZlMDU2YTY0OWQxNzA5MjRkODgyYTQyMDVkNTY1ZmJjMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC02NjksNiArNjY5LDggQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMK
ICAgICBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsCiAgICAgZG9tL0RldmljZU1vdGlvbkV2
ZW50LmlkbAogICAgIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbAorICAgIGRvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsCisgICAgZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsCiAgICAgZG9tL0RvY3VtZW50LmlkbAogICAgIGRv
bS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogICAgIGRvbS9Eb2N1bWVudEZy
YWdtZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKaW5kZXggYzQyMzAwNjJjMjNkYWNjODAxMjg1ZjdjZGY0MGMwOTNlNjMyOTkzMS4uZTI4
MTY5ODJmMjg5ZTQxOWFmNjU4MGRmOTkzZWI3ODdlNDVjZjU2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC01NjIsNiArNTYyLDggQEAg
JChQUk9KRUNUX0RJUikvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCiAkKFBST0pFQ1RfRElSKS9k
b20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vRGV2aWNlTW90
aW9uRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5p
ZGwKKyQoUFJPSkVDVF9ESVIpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRs
CiskKFBST0pFQ1RfRElSKS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL2RvbS9Eb2N1bWVudC5pZGwKICQoUFJPSkVDVF9ESVIp
L2RvbS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogJChQUk9KRUNUX0RJUikv
ZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGM2NGFhM2NmNTkyYTQ5M2I1OWJjZDgyNDAxMWEw
ZWNkZDdlN2YxYTcuLjIwMjI1NGM3MjBmMGJmMDM0MmY3NDBlYzhhOWZlMmZmOTMzZDI2OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC00NTksNiArNDU5LDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRGV2aWNlTW90aW9uRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RldmljZU1vdGlvbkV2ZW50LmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25FdmVudC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNl
T3JpZW50YXRpb25FdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNEb2N1bWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4ZTY1ZDQ3ZTdhMWMyOWE0ZjhmNDQx
MjFjMzA4NTlhZTU1NDM3NTYyLi5lM2ZjMTc2ZmI4MTQ5YjIzODlkMDU2Njk3ZDhiNjdjOWM4MzFj
OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTU2OSw2ICs1NjksOCBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vRGF0YVRyYW5zZmVySXRlbUxp
c3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9kb20vRG9jdW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Eb2N1
bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vRG9j
dW1lbnRGcmFnbWVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0ZTM5MmYzM2RkZWVkYjI2YTQ2
MjdlOTM0MzhhMDMzZTM4ZmRjMmE3Li43NWNkZjVlM2EzOTczMzc4Zjc3OGRkZGY1MTE0OGE3M2Zk
MjA1ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtODIwLDkgKzgyMCwxMSBAQCBkb20vRGVjb2RlZERh
dGFEb2N1bWVudFBhcnNlci5jcHAKIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcAogZG9t
L0RldmljZU1vdGlvbkRhdGEuY3BwCiBkb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCitkb20vRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcAogZG9tL0RldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlci5jcHAKIGRvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEuY3BwCiBk
b20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAKK2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uRXZlbnQuY3BwCiBkb20vRG9jdW1lbnQuY3BwCiBkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNw
cAogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC0yNzIyLDYgKzI3MjQsOCBAQCBKU0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmNwcAogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCiBKU0Rl
dmljZU1vdGlvbkV2ZW50LmNwcAogSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAorSlNEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmNwcAorSlNEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQuY3BwCiBKU0RvY3VtZW50LmNwcAogSlNEb2N1bWVudEFuZEVsZW1l
bnRFdmVudEhhbmRsZXJzLmNwcAogSlNEb2N1bWVudEZyYWdtZW50LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkwMjIyMWFl
Nzg0NTMzNGRmN2RhYTJlMDBkNWZlNDEyMjE0MTAwNDYuLjMxZTRhYWIxMmU4ZDc2MDVjNDAwMTFm
ZTFjNDIwOGMxNmY2YTFlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTQsNiArMTI1NCw4IEBACiAJCTQ1RkVBNUQwMTU2
RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NUZFQTVDRTE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MEJCNjE2
MUQwQTFCRjAwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEJCNjE0MUQwQTFCRUMwMDIyMTgxMiAvKiBC
YXNlNjRVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NjBDQkYzNjFENEJDRDBFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBD
QkYzNDFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggKi87IH07CisJ
CTQ2MEUzMDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MURB
NTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCAq
LzsgfTsKKwkJNDYwRTMwNzcyMjJGNEYwMzAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2NUVERDlGMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggKi87IH07CiAJCTQ2MjE4QUNCMUY3MkQ2NEUwMDU3
NEZCRSAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzNTIxQUEyMDgxMDkwQjAw
QzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VC
NjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC0xMjcxLDYg
KzEyNzMsNyBAQAogCQk0NkI5NTE5ODIwN0Q2MzQ3MDBBN0QyREQgLyogR2xvYmFsRnJhbWVJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkI5NTE5MTIwN0Q2MzJEMDBBN0QyREQgLyogR2xvYmFsRnJhbWVJZGVudGlmaWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZCOTUxOTkyMDdE
NjM0RDAwQTdEMkREIC8qIFJlbW90ZURPTVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOEUyMDdENjMyQTAwQTdEMkREIC8qIFJlbW90
ZURPTVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQ2Qjk1MTlBMjA3RDYzNTQwMEE3RDJERCAvKiBSZW1vdGVGcmFtZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTUxOTIyMDdENjMyRTAw
QTdEMkREIC8qIFJlbW90ZUZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovOyB9OwogCQk0NkJDQkJD
MjIwODUwMDhGMDA3MTA2MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkJDQkJDMDIwODUwMDdGMDA3MTA2
MzggLyogSlNSZW1vdGVET01XaW5kb3dCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDZDMzc2NjIyMDg1MTc3RDAwQzczODI5IC8qIEpTUmVt
b3RlRE9NV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkMzNzY2MTIwODUxNzZEMDBDNzM4MjkgLyogSlNSZW1vdGVET01XaW5kb3cuaCAqLzsg
fTsKIAkJNDZDNjk2Q0IxRTcyMDVGNzAwNTk3OTM3IC8qIENQVU1vbml0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkM5MUU3MjA1RTQwMDU5
NzkzNyAvKiBDUFVNb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTc3MjUsNiArNzcyOCw4IEBACiAJCTQ2MENCRjMzMUQ0QkNDRkUwMDky
RTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJv
cGVydGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVdpbmRvd1By
b3BlcnRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYwRDE5NDQxRkNFMjFE
RDAwQzNEQjg1IC8qIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYxREE1MkEyMjJGNDg2
RjAwRDA1QTg3IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYxREE1MkMyMjJGNDg2RjAwRDA1QTg3IC8q
IERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyogUG93
ZXJPYnNlcnZlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
b3dlck9ic2VydmVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNTIx
QUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdpbmRvd1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2MzUyMUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaW5kb3dQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03NzMyLDYgKzc3MzcsOSBAQAogCQk0NjNFQjYyMTFCODc4OUNCMDA5
NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUYWdDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NDI0MDQ1
MjBFQUYwRUQwMEIyOUZEMiAvKiBEYXRhYmFzZU1hbmFnZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERhdGFiYXNlTWFuYWdlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW50
aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDY1RUREOUQyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25F
dmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
bkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RUREOUYyMjJGNEVD
MzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVFRERB
MDIyMkY0RUM0MDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkRD
NkFCMUVERTAyMUQwMDc0NjIyNCAvKiBKU0RPTVJlY3RMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NUmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjZFRDhEMjFFREUwMTM1MDA1RTQzRjYgLyogSlNET01SZWN0TGlzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVJlY3RMaXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NzFFMDYzMUQ2N0E1N0IwMEM2QjQ5NyAvKiBDYW52
YXNQYXRoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhbnZhc1Bh
dGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzc1NCw2ICs3NzYyLDggQEAK
IAkJNDZCOTUxOTIyMDdENjMyRTAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2Qjk1MTkzMjA3RDYzMkYwMEE3RDJERCAvKiBBYnN0cmFjdERPTVdpbmRvdy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBYnN0cmFjdERPTVdpbmRv
dy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2Qjk1MTk0MjA3RDYzMzAwMEE3
RDJERCAvKiBBYnN0cmFjdEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFic3RyYWN0RnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NkI5NUJGMjIyMzFDRkI4MDA1M0E1MDQgLyogRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ2Qjk1QkY0MjIzMUNGQjgwMDUzQTUwNCAvKiBEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QkNCQkJFMjA4NTAwNUIwMDcxMDYzOCAv
KiBKU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2QkNCQkMwMjA4NTAwN0YwMDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRv
d0Jhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZW1vdGVET01XaW5k
b3dCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QkNCQkMxMjA4NTAwODAw
MDcxMDYzOCAvKiBKU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NDg0LDYgKzI3NDk0LDggQEAKIAkJCQkzMUZCMUE1NDEyMEE1
RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwICovLAogCQkJCTMxRkIxQTU1MTIw
QTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5oICovLAogCQkJCTMxRkIxQTU2MTIw
QTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5pZGwgKi8sCisJCQkJNDZCOTVCRjIy
MjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJv
bGxlci5jcHAgKi8sCisJCQkJNDZCOTVCRjQyMjMxQ0ZCODAwNTNBNTA0IC8qIERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oICovLAogCQkJCTU5QThGMUQ3MTFBNjk1
MjAwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTU5QThGMUQz
MTFBNjk1MDgwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwICovLAog
CQkJCTU5QThGMUQ1MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIuaCAqLywKQEAgLTI3NDkyLDYgKzI3NTA0LDExIEBACiAJCQkJNTlBODVFQTExMTlENjhEOTAw
REVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwICovLAogCQkJCTU5QTg1RUEzMTE5
RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggKi8sCiAJCQkJNTlBODVF
QUExMTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsICovLAorCQkJ
CTQ2MURBNTJDMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZl
bnQuY3BwICovLAorCQkJCTQ2MURBNTJBMjIyRjQ4NkYwMEQwNUE4NyAvKiBEZXZpY2VPcmllbnRh
dGlvbk9yTW90aW9uRXZlbnQuaCAqLywKKwkJCQk0NjVFREQ5RDIyMkY0RUMzMDBCNDZFMTYgLyog
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk0NjVFREQ5RjIyMkY0
RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5o
ICovLAorCQkJCTQ2NUVEREEwMjIyRjRFQzQwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCAqLywKIAkJCQlBODE4NUYzNDA5NzY1NzY1MDA1ODI2
RDkgLyogRG9jdW1lbnQuY3BwICovLAogCQkJCUE4MTg1RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBE
b2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlFMUUwNEQwMEFGODAyMCAvKiBEb2N1bWVudC5p
ZGwgKi8sCkBAIC0yOTAxNiwxMiArMjkwMzMsMTUgQEAKIAkJCQkzMUZCMUE1OTEyMEE1RDA2MDBE
QzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFG
QjFBNUIxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxRkIxQTVEMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDZCOTVCRjUyMjMxQ0ZENjAwNTNBNTA0IC8qIERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlB
OEYxRDgxMUE2OTUyMDAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTQwMzc5RDEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5MzA5QTEzMTFGNEFFNkEwMDI1MDYw
MyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU5
QThGMUQ2MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTU5MEUxQjQ5MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmll
bnRhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QTg1RUE0MTE5RDY4RUMwMERFRjFF
RiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjBFMzA3
NTIyMkY0RUZEMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQk0NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyQjQw
MUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3MkI0MDNBMjE3NzI1ODEwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZl
cnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY3NzI1RkQxQTVCM0FEOTAwM0MyNEREIC8qIERG
QS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
TW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCmlu
ZGV4IDNlY2M1YmQ0YzBjN2VlYzE4ZTlmYjhlNDE1NmYxOGJmM2VmNDUzM2QuLjUxZDcxYTBlN2Nk
Nzg0M2QxNTgyYjAzOWNjZTIzYTgyNzI1M2U5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VNb3Rpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25FdmVudC5oCkBAIC0yNSwxMyArMjUsMTQgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU1vdGlvbkRhdGE7CiAKLWNs
YXNzIERldmljZU1vdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKK2NsYXNzIERldmlj
ZU1vdGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5EZXZpY2VNb3Rpb25FdmVu
dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbAppbmRleCBmMmY1
ZGYyMGZjZTUzYmMxM2I1YWJlNmQ0MThlMjBiZDVhNGZkMzg2Li4yN2YyYzU1NzIxMWQ1ZDBlNGY1
MjRiNjZkOTFkZDQ4NDI3N2RjMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlTW90aW9uRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25F
dmVudC5pZGwKQEAgLTU3LDMgKzU3LDUgQEAKICAgICBkb3VibGU/IGJldGE7CiAgICAgZG91Ymxl
PyBnYW1tYTsKIH07CisKK0RldmljZU1vdGlvbkV2ZW50IGltcGxlbWVudHMgRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvbkV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNDkyNjhkYmM4OTE0YzQ3YTBhYTY0Y2Y4MzdjOTM1ZjZmMTM0ZGI1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29u
dHJvbGxlci5oIgorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUg
IkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0Nv
bnRyb2xsZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkK
K3sKKyAgICBBU1NFUlQoJm1fZG9jdW1lbnQudG9wRG9jdW1lbnQoKSA9PSAmbV9kb2N1bWVudCk7
Cit9CisKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpz
aG91bGRBbGxvd0FjY2VzcyhGdW5jdGlvbjx2b2lkKGJvb2wgZ3JhbnRlZCk+JiYgY2FsbGJhY2sp
Cit7CisgICAgaWYgKG1fYWNjZXNzU3RhdGUpCisgICAgICAgIHJldHVybiBjYWxsYmFjaygqbV9h
Y2Nlc3NTdGF0ZSk7CisKKyAgICBhdXRvKiBwYWdlID0gbV9kb2N1bWVudC5wYWdlKCk7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soZmFsc2UpOworCisgICAgbV9wZW5k
aW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBpZiAobV9wZW5kaW5n
UmVxdWVzdHMuc2l6ZSgpID4gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyht
X2RvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgc2V0QWNjZXNzU3RhdGUoZ3JhbnRlZCk7CisgICAgfSk7Cit9CisKK3ZvaWQg
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpzZXRBY2Nlc3NTdGF0
ZShib29sIGdyYW50ZWQpCit7CisgICAgQVNTRVJUKCFtX2FjY2Vzc1N0YXRlKTsKKworICAgIG1f
YWNjZXNzU3RhdGUgPSBncmFudGVkOworCisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBXVEZN
b3ZlKG1fcGVuZGluZ1JlcXVlc3RzKTsKKyAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBwZW5kaW5n
UmVxdWVzdHMpCisgICAgICAgIHJlcXVlc3QoZ3JhbnRlZCk7CisKKyAgICBpZiAoIWdyYW50ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZy
YW1lKCk7IGZyYW1lICYmIGZyYW1lLT53aW5kb3coKTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dChtX2RvY3VtZW50LmZyYW1lKCkpKSB7CisgICAgICAgIGZyYW1lLT53aW5kb3co
KS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAg
ICAgIGZyYW1lLT53aW5kb3coKS0+c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25JZk5lY2Vz
c2FyeSgpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MWZjNzkyNTM0ODYyY2E2M2M2OTE1MmZmMzhjMTBjZmFiY2ZkYWI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFzcyBE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyPiB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyKERvY3VtZW50Jik7CisKKyAgICBj
b25zdCBPcHRpb25hbDxib29sPiYgYWNjZXNzU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vz
c1N0YXRlOyB9CisgICAgdm9pZCBzaG91bGRBbGxvd0FjY2VzcyhGdW5jdGlvbjx2b2lkKGJvb2wg
Z3JhbnRlZCk+JiYpOworCitwcml2YXRlOgorICAgIHZvaWQgc2V0QWNjZXNzU3RhdGUoYm9vbCk7
CisKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBPcHRpb25hbDxib29sPiBtX2FjY2Vz
c1N0YXRlOworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKGJvb2wpPj4gbV9wZW5kaW5nUmVxdWVz
dHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmgKaW5kZXggMDI1YjJlMzJhNzUxZTQyZjY1MGJiNTNiNTE1YTEwYmRiNTI3ZjQ3OC4uNjI4
NzA4YjZlODRiNTI2MThlOTY4M2NkNmNkZTY3ZjNmYTExNjhmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5oCkBAIC0yNSwxMyArMjUsMTQgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmlj
ZU9yaWVudGF0aW9uRGF0YTsKIAotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25FdmVudCBmaW5hbCA6
IHB1YmxpYyBFdmVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGZpbmFsIDogcHVi
bGljIEV2ZW50LCBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPERldmljZU9yaWVudGF0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBvcmllbnRhdGlv
bikKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5p
ZGwKaW5kZXggMTNmZjdiYWRjMGU1OTExNjYzNTk1ZDE1ZDExZGJkNjBhMzMzOWZkYi4uN2YzNWYx
MGQxOTE3YTc1NGY4NjAxYjhhYWUwYjllZDcxOTgyYWEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbApAQCAtNTUsMyArNTUsNCBAQAogI2VuZGlm
CiB9OwogCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50IGltcGxlbWVudHMgRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvbkV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTA5NjE2ZDYxZjZmOTE0NDEx
ZDM4Y2FkNTBmMzRkZGMxZGQ5NzZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5jcHAKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25FdmVudC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJVc2Vy
R2VzdHVyZUluZGljYXRvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQ6
OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUGVybWlzc2lvblByb21pc2Um
JiBwcm9taXNlKQoreworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LmRvbVdpbmRvdygpOwor
ICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBicm93c2luZyBjb250ZXh0Il9zIH0pOworCisgICAg
aWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCisgICAg
ICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJD
YWxsaW5nIHJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUiX3MgfSk7
CisKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghd2luZG93LT5pc0FsbG93ZWRU
b1VzZURldmljZU1vdGlvbk9yaWVudGF0aW9uKGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgZG9j
dW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
V2FybmluZywgbWFrZVN0cmluZygiQ2FsbCB0byByZXF1ZXN0UGVybWlzc2lvbigpIGZhaWxlZCwg
cmVhc29uOiAiLCBlcnJvck1lc3NhZ2UsICIuIikpOworICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZXNvbHZlKFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICB9CisKKyAgICBkb2N1bWVudC5k
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5zaG91bGRBbGxvd0Fj
Y2VzcyhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7
CisgICAgICAgIHByb21pc2UucmVzb2x2ZShncmFudGVkID8gUGVybWlzc2lvblN0YXRlOjpHcmFu
dGVkIDogUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgIH0pOworfQorI2VuZGlmCisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmFlNjgxZjM4ZjlkODllN2Iw
N2Q3YTI0NGJmNmY3MzU3Zjg2Zjg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25FdmVudCB7CitwdWJsaWM6CisKKyNpZiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorICAgIHVzaW5nIFBlcm1pc3Npb25TdGF0ZSA9IERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU7CisgICAgdXNpbmcgUGVybWlzc2lvblByb21pc2UgPSBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMRW51bWVyYXRpb248UGVybWlzc2lvblN0YXRlPj47CisgICAg
c3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBQZXJtaXNzaW9uUHJvbWlz
ZSYmKTsKKyNlbmRpZgorCitwcm90ZWN0ZWQ6CisgICAgRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
bkV2ZW50KCkgPSBkZWZhdWx0OworICAgIH5EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQo
KSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY4MzFhNDY1ZjBiNzZiYjI1YTgwNTg3MWFjMmY1NmU3MjcyMGVlNzkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2
ZW50LmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9REVW
SUNFX09SSUVOVEFUSU9OLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQgeworICAgIFtDYWxsV2l0aD1Eb2N1bWVudCwgRW5h
YmxlZEJ5U2V0dGluZz1EZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUEldIHN0YXRpYyBQcm9t
aXNlPERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU+IHJlcXVlc3RQZXJt
aXNzaW9uKCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ2NWVk
YmE1NjBhMzJmOWE2MjAxMmJkZGRmMmUzNTY1Y2NiNWY4ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlIHsgR3JhbnRlZCwgRGVuaWVkIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMTgxNDAzMDFlZmQ2MWY0ZjMxMjU2N2Q1OTQ4MzQ4ODhlNWM4MzMz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaWRsCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Vu
dW0gRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSB7ICJncmFudGVkIiwg
ImRlbmllZCIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE0MjkyNzg2Y2M4ZWZlZWY1
YjFhMmZjMTVkYzcxMGJmZWMxYzMxMTAuLjY3YjFiMWUxNThkNzI2MTY4ZTc0MWY3YTNiNzZkNGQ4
MWUwYWRiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjQ1LDYgKzI0NSw3IEBACiAK
ICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogI2luY2x1ZGUgIkRldmljZU1vdGlvbkV2
ZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIgogI2VuZGlmCiAKQEAg
LTg2MzgsNiArODYzOSwyMCBAQCB2b2lkIERvY3VtZW50OjpmcmFtZVdhc0Rpc2Nvbm5lY3RlZEZy
b21Pd25lcigpCiAgICAgZGV0YWNoRnJvbUZyYW1lKCk7CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorCitEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXImIERvY3VtZW50OjpkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIo
KQoreworICAgIGlmICgmdG9wRG9jdW1lbnQoKSAhPSB0aGlzKQorICAgICAgICByZXR1cm4gdG9w
RG9jdW1lbnQoKS5kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKTsK
KworICAgIGlmICghbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIp
CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyID0g
c3RkOjptYWtlX3VuaXF1ZTxEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXI+KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NDb250cm9sbGVyOworfQorCisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJ
KQogV29ya2xldCYgRG9jdW1lbnQ6OmVuc3VyZVBhaW50V29ya2xldCgpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDc3OGMyMTMzYzU0MzU3ZGQ2NzcxOTlkZjcxOTQxN2IzZWRlOTMxMWEuLmFj
ZGE4MDYyZDQzMDZjMDY2YjA3YWRhODEyNTMwZjBiMjc4ZmE0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0yMjUsMTIgKzIyNSwxNSBAQCBjbGFzcyBUb3VjaDsKIGNsYXNzIFRvdWNoTGlzdDsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50OwogY2xhc3MgRGV2aWNlTW90aW9u
Q29udHJvbGxlcjsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50OwogY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOwogI2VuZGlmCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI7CisjZW5kaWYKIAogI2lmIEVOQUJMRShURVhUX0FVVE9T
SVpJTkcpCiBjbGFzcyBUZXh0QXV0b1NpemluZzsKQEAgLTEyMTQsMTIgKzEyMTcsMTYgQEAgcHVi
bGljOgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudElPUy5oPgogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyJiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29u
c3Q7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyJiBkZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNpbXVsYXRlRGV2aWNl
T3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1h
KTsKICNlbmRpZgogCisgICAgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9s
bGVyJiBkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIoKTsKKyNlbmRp
ZiAvLyBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCiAgICAgY29uc3QgRG9jdW1lbnRUaW1p
bmcmIHRpbWluZygpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnRUaW1pbmc7IH0KIAogICAgIFdF
QkNPUkVfRVhQT1JUIGRvdWJsZSBtb25vdG9uaWNUaW1lc3RhbXAoKSBjb25zdDsKQEAgLTE4NzIs
MTIgKzE4NzksMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEhhc0ZyYW1lU3BlY2lmaWNTdG9y
YWdlQWNjZXNzKGJvb2wpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlTW90
aW9uQ2xpZW50PiBtX2RldmljZU1vdGlvbkNsaWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2
aWNlTW90aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxEZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gbV9kZXZpY2VPcmllbnRhdGlvbkNs
aWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBt
X2RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKICNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0
cjxEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXI+IG1fZGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOworI2VuZGlmCiAKICAgICBHZW5lcmlj
VGFza1F1ZXVlPFRpbWVyPiBtX2xvZ01lc3NhZ2VUYXNrUXVldWU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3Bw
CmluZGV4IGMwZGIyOTE4NjRkOTYxNDllZmY1MGE0M2ViZDJmODdmNjA1NGQwZTcuLjkzNzExOTA5
Zjk0MDVlNzBhNjVmNGFiNWQzNzNkMTg1ZDVkNDIwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFdmVudFBh
dGguaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiVXNlckdl
c3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZXNzYWdlUG9ydC5jcHAKaW5kZXggMTg4Y2MzMWZlYmI3ODdmOTRkNDc0ZDFkNjYxZjE4
N2U1NjY0NDk5YS4uNDAyMjRmODc0ODRmNmE3ZDY0ZTliOWEyNjQwNTJiM2ZmZjY5ZmFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5o
IgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NaWNyb3Rhc2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNw
cAppbmRleCAyNWE0N2E2ODM5NWU4MjVmMWIwZDYxNmI5NzEwYTNlNmJiNWQ3OGFiLi4yY2NjZjBi
MjJjMDc3NDIxNzAxYjFjNmYxNjY5ZjI5MGFmOWRkYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWljcm90YXNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01pY3JvdGFz
a3MuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
TWljcm90YXNrcy5oIgogCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5k
ZXggM2EwZGMzYmIwM2RjZDcwYmU5NGVmNGI5ODYyMWQ5Nzk1NjBlN2ViYS4uNDdlM2M1YWE3NDg1
Y2Y1MWQ2M2ViMDM1OWZlYjExNTA3MWI1Y2I1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC00ODIsNiArNDgyLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFzU3Rv
cmFnZUFjY2VzcyhTdHJpbmcmJiAvKnN1YkZyYW1lSG9zdCovLCBTdHJpbmcmJiAvKnRvcEZyYW1l
SG9zdCovLCB1aW50NjRfdCAvKmZyYW1lSUQqLywgdWludDY0X3QgLypwYWdlSUQqLywgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxz
ZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgLypz
dWJGcmFtZUhvc3QqLywgU3RyaW5nJiYgLyp0b3BGcmFtZUhvc3QqLywgdWludDY0X3QgLypmcmFt
ZUlEKi8sIHVpbnQ2NF90IC8qcGFnZUlEKi8sIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAo
Ym9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soZmFsc2UpOyB9CiAKKyNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQorICAgIHZpcnR1YWwgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKHRydWUpOyB9Cisj
ZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRNZW51RWxlbWVudChIVE1MTWVudUVs
ZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTWVudUVsZW1lbnQoSFRNTE1l
bnVFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydE1lbnVJdGVtRWxlbWVu
dChIVE1MTWVudUl0ZW1FbGVtZW50JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5k
ZXggZGZhMTEyNDg0YTNhNDc3ZTNkYzAyMmEzNGNhMzRkZjNmZmE5M2UzMi4uNTk4OTFkMjNhMDQy
ZmJiZDc3ODM0MjdkNTAzYWExMjQxOTNhNmFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRXZl
bnQuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCkBAIC0xODI2LDUwICsx
ODI3LDEzNCBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZQogICAgIGVsc2UgaWYgKGV2ZW50TmFt
ZXMoKS5pc0dhbWVwYWRFdmVudFR5cGUoZXZlbnRUeXBlKSkKICAgICAgICAgaW5jcmVtZW50R2Ft
ZXBhZEV2ZW50TGlzdGVuZXJDb3VudCgpOwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9y
aWVudGF0aW9uRXZlbnQpCisgICAgICAgIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50YXRp
b25JZk5lY2Vzc2FyeSgpOworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
ZGV2aWNlbW90aW9uRXZlbnQpCisgICAgICAgIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90aW9u
SWZOZWNlc3NhcnkoKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHRydWU7Cit9CiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnNldHRp
bmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQoKSAmJiBkb2N1bWVudCgpICYmIGRv
Y3VtZW50KCktPmxvYWRlcigpICYmIGRvY3VtZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmllbnRh
dGlvbkV2ZW50RW5hYmxlZCgpKSB7CisKK0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogRE9N
V2luZG93OjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdAorewogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgICAgIGlmICgoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
ZXZpY2Vtb3Rpb25FdmVudCB8fCBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVu
dGF0aW9uRXZlbnQpKSB7Ci0gICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01h
aW5GcmFtZSgpICYmIGlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkKLSAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkuYWRk
RGV2aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkuYWRkRGV2
aWNlRXZlbnRMaXN0ZW5lcigqdGhpcyk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNTZWN1cmVDb250ZXh0KCkpCi0gICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNl
IG1vdGlvbiBvciBvcmllbnRhdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fz
bid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxv
Y2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVu
ZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiJfcyk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVudCgp
LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSA6IG51bGxwdHI7CiAjZWxzZQotICAgICAg
ICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewotICAg
ICAgICAgICAgaWYgKGlzU2FtZVNlY3VyaXR5T3JpZ2luQXNNYWluRnJhbWUoKSAmJiBpc1NlY3Vy
ZUNvbnRleHQoKSkgewotICAgICAgICAgICAgICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVy
KiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAg
ICAgICAgICAgICAgICAgICBjb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlz
KTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJC
bG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxk
IGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBw
YWdlLiJfcyk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
ZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0gICAgICAgICAgICBpZiAoaXNTYW1lU2VjdXJpdHlP
cmlnaW5Bc01haW5GcmFtZSgpICYmIGlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgICAgICAgICBj
b250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU2VjdXJlQ29udGV4dCgpKQotICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmlj
ZSBvcmllbnRhdGlvbiBsaXN0ZW5lciBmcm9tIGNoaWxkIGZyYW1lIHRoYXQgd2Fzbid0IHRoZSBz
YW1lIHNlY3VyaXR5IG9yaWdpbiBhcyB0aGUgbWFpbiBwYWdlLiJfcyk7Ci0gICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQmxvY2tlZCBhdHRl
bXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVz
ZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiJfcyk7Ci0gICAgICAgICAgICB9
CisgICAgcmV0dXJuIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpOwor
I2VuZGlmCit9CisKK0RldmljZU1vdGlvbkNvbnRyb2xsZXIqIERPTVdpbmRvdzo6ZGV2aWNlTW90
aW9uQ29udHJvbGxlcigpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBy
ZXR1cm4gZG9jdW1lbnQoKSA/ICZkb2N1bWVudCgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkg
OiBudWxscHRyOworI2Vsc2UKKyAgICByZXR1cm4gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJv
bShwYWdlKCkpOworI2VuZGlmCit9CisKK2Jvb2wgRE9NV2luZG93Ojppc0FsbG93ZWRUb1VzZURl
dmljZU1vdGlvbk9yaWVudGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBpZiAo
IWZyYW1lKCkgfHwgIWZyYW1lKCktPnNldHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25FdmVudEVu
YWJsZWQoKSB8fCAhZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+bG9hZGVyKCkgfHwgIWRvY3Vt
ZW50KCktPmxvYWRlcigpLT5kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCgpKSB7CisgICAg
ICAgIG1lc3NhZ2UgPSAiQVBJIGlzIGRpc2FibGVkIl9zOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKCFpc1NlY3VyZUNvbnRleHQoKSkgeworICAgICAgICBtZXNzYWdl
ID0gIkJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZSJfczsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIGlmICghaXNTYW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgp
KSB7CisgICAgICAgIG1lc3NhZ2UgPSAiU291cmNlIGZyYW1lIGRpZCBub3QgaGF2ZSB0aGUgc2Ft
ZSBzZWN1cml0eSBvcmlnaW4gYXMgdGhlIG1haW4gcGFnZSJfczsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBET01XaW5kb3c6OmlzQWxs
b3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5lcihTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0Cit7CisgICAgU3RyaW5nIGlubmVyTWVzc2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRv
VXNlRGV2aWNlTW90aW9uT3JpZW50YXRpb24oaW5uZXJNZXNzYWdlKSkgeworICAgICAgICBtZXNz
YWdlID0gbWFrZVN0cmluZygiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogIiwgaW5uZXJNZXNzYWdlLCAi
LiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGZyYW1lKCktPnNl
dHRpbmdzKCkuZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpKSB7CisgICAg
ICAgIGF1dG8gYWNjZXNzU3RhdGUgPSBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0NvbnRyb2xsZXIoKS5hY2Nlc3NTdGF0ZSgpOworICAgICAgICBpZiAoYWNjZXNz
U3RhdGUgJiYgISphY2Nlc3NTdGF0ZSkgeworICAgICAgICAgICAgbWVzc2FnZSA9ICJObyBkZXZp
Y2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVy
bWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVuaWVkLiJfczsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KQot
ICAgICAgICBmYWlsZWRUb1JlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRMaXN0ZW5lcigpOwotI2Vu
ZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIGlmICghYWNjZXNzU3Rh
dGUpIHsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRh
dGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVl
c3RlZCBhbmQgZ3JhbnRlZC4iX3M7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCit2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JEZXZpY2VPcmllbnRh
dGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byogZGV2aWNlQ29udHJvbGxlciA9IGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpOworICAg
IGlmICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVu
dExpc3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGVycm9yTWVz
c2FnZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0
ZW5lcihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMt
PmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xsZXItPmFkZERldmljZUV2
ZW50TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0Zv
ckRldmljZU9yaWVudGF0aW9uSWZOZWNlc3NhcnkoKQoreworICAgIGlmIChoYXNFdmVudExpc3Rl
bmVycyhldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChhdXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKCkpCisgICAgICAgIGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50
TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RhcnRMaXN0ZW5pbmdGb3JE
ZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKCFoYXNFdmVudExpc3RlbmVycyhl
dmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBh
dXRvKiBkZXZpY2VDb250cm9sbGVyID0gZGV2aWNlTW90aW9uQ29udHJvbGxlcigpOworICAgIGlm
ICghZGV2aWNlQ29udHJvbGxlciB8fCBkZXZpY2VDb250cm9sbGVyLT5oYXNEZXZpY2VFdmVudExp
c3RlbmVyKCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGVycm9yTWVzc2Fn
ZTsKKyAgICBpZiAoIWlzQWxsb3dlZFRvQWRkRGV2aWNlTW90aW9uT3JpZW50YXRpb25MaXN0ZW5l
cihlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgIGZhaWxlZFRvUmVnaXN0ZXJEZXZpY2VNb3Rpb25F
dmVudExpc3RlbmVyKCk7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3Vt
ZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGRldmljZUNvbnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlz
dGVuZXIoKnRoaXMpOworfQorCit2b2lkIERPTVdpbmRvdzo6c3RvcExpc3RlbmluZ0ZvckRldmlj
ZU1vdGlvbklmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnRO
YW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1
dG8qIGRldmljZUNvbnRyb2xsZXIgPSBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkpCisgICAgICAg
IGRldmljZUNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOworfQog
CiB2b2lkIERPTVdpbmRvdzo6ZmFpbGVkVG9SZWdpc3RlckRldmljZU1vdGlvbkV2ZW50TGlzdGVu
ZXIoKQogewpAQCAtMTk0MSwyMiArMjAyNiw2IEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVu
dExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAg
ICAgICAgIHJlbW92ZVVubG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7CiAgICAgZWxzZSBpZiAoZXZl
bnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmV1bmxvYWRFdmVudCAmJiBhbGxvd3NCZWZvcmVV
bmxvYWRMaXN0ZW5lcnModGhpcykpCiAgICAgICAgIHJlbW92ZUJlZm9yZVVubG9hZEV2ZW50TGlz
dGVuZXIodGhpcyk7Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2
aWNlbW90aW9uRXZlbnQgJiYgZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1lbnQoKS0+ZGV2aWNl
TW90aW9uQ29udHJvbGxlcigpLnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAg
IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVu
dCAmJiBkb2N1bWVudCgpKQotICAgICAgICBkb2N1bWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIoKS5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKCp0aGlzKTsKLSNlbHNlCi0gICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgewot
ICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1v
dGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRyb2xsZXItPnJl
bW92ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Ci0gICAgICAgIGlmIChE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92
ZURldmljZUV2ZW50TGlzdGVuZXIoKnRoaXMpOwotICAgIH0KLSNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQotI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LnNjcm9sbEV2ZW50KQogICAgICAgICBkZWNyZW1lbnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50
KCk7CkBAIC0xOTc3LDYgKzIwNDYsMTIgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlz
dGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICBl
bHNlIGlmIChldmVudE5hbWVzKCkuaXNHYW1lcGFkRXZlbnRUeXBlKGV2ZW50VHlwZSkpCiAgICAg
ICAgIGRlY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKTsKICNlbmRpZgorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KQorICAgICAgICBzdG9wTGlzdGVuaW5nRm9y
RGV2aWNlT3JpZW50YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpCisgICAgICAgIHN0b3BMaXN0ZW5pbmdG
b3JEZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTIwNTksMTggKzIxMzQsOSBAQCB2b2lkIERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMoKQogICAgIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwog
CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7Ci0gICAg
ICAgIGRvY3VtZW50LT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZl
bnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgICAgICBkb2N1bWVudC0+ZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKCkucmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKnRoaXMpOwotICAgIH0K
LSNlbHNlCi0gICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJl
bW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKCp0aGlzKTsKLSAgICBpZiAoRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50
TGlzdGVuZXJzKCp0aGlzKTsKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotI2VuZGlm
IC8vIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JE
ZXZpY2VPcmllbnRhdGlvbklmTmVjZXNzYXJ5KCk7CisgICAgICAgIHN0b3BMaXN0ZW5pbmdGb3JE
ZXZpY2VNb3Rpb25JZk5lY2Vzc2FyeSgpOworI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIGlmIChtX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKaW5kZXggYmJiZmE5NTg3MmU0YTMzZTczNDI1MjgxZTRhY2NiNGY3MDU5YjFjNC4u
MWQ4YTY0MjkyZjAxZjA5ZjE1MTJiY2RkNjY4NmZlYzQ3MmViYTJmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCkBAIC04Miw2ICs4MiwxMSBAQCBjbGFzcyBWaXN1YWxWaWV3cG9ydDsKIGNsYXNz
IFdlYktpdE5hbWVzcGFjZTsKIGNsYXNzIFdlYktpdFBvaW50OwogCisjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKK2NsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7CitjbGFzcyBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CisjZW5kaWYKKwogc3RydWN0IEltYWdlQml0bWFwT3B0
aW9uczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIApAQCAtMzExLDYgKzMxNiwxOSBAQCBwdWJs
aWM6CiAgICAgdW5zaWduZWQgc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50KCkgY29uc3QgeyByZXR1
cm4gbV9zY3JvbGxFdmVudExpc3RlbmVyQ291bnQ7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlT3JpZW50
YXRpb25JZk5lY2Vzc2FyeSgpOworICAgIHZvaWQgc3RvcExpc3RlbmluZ0ZvckRldmljZU9yaWVu
dGF0aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yRGV2aWNlTW90
aW9uSWZOZWNlc3NhcnkoKTsKKyAgICB2b2lkIHN0b3BMaXN0ZW5pbmdGb3JEZXZpY2VNb3Rpb25J
Zk5lY2Vzc2FyeSgpOworCisgICAgYm9vbCBpc0FsbG93ZWRUb1VzZURldmljZU1vdGlvbk9yaWVu
dGF0aW9uKFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisgICAgYm9vbCBpc0FsbG93ZWRUb0FkZERl
dmljZU1vdGlvbk9yaWVudGF0aW9uTGlzdGVuZXIoU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKKwor
ICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKCkgY29uc3Q7CisgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciogZGV2aWNlTW90aW9uQ29u
dHJvbGxlcigpIGNvbnN0OworI2VuZGlmCisKICAgICB2b2lkIHJlc2V0QWxsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKCk7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElP
U19HRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNl
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3Bw
CmluZGV4IDMzNjdkM2RiZjU5ZmMzMzU3MjQ5NzU4YWM2M2RkMTcyNWUwNzYzNjYuLjg0MmI4NTRl
ZTI1MTI1OGE0MTA2MmJmZTBkMDY1NDRlZGIzYzZmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VDb250cm9sbGVyLmNwcApAQCAtNjksNiArNjksMTEgQEAgdm9pZCBEZXZpY2VDb250cm9s
bGVyOjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyhET01XaW5kb3cmIHdpbmRvdykKICAg
ICAgICAgbV9jbGllbnQuc3RvcFVwZGF0aW5nKCk7CiB9CiAKK2Jvb2wgRGV2aWNlQ29udHJvbGxl
cjo6aGFzRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cmIHdpbmRvdykgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9saXN0ZW5lcnMuY29udGFpbnMoJndpbmRvdyk7Cit9CisKIHZvaWQgRGV2aWNl
Q29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgZm9y
IChhdXRvJiBsaXN0ZW5lciA6IGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycy52YWx1ZXMoKSkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKaW5kZXggZTE2MDM4NWFmZTJmOTcz
NTNjMGVhMjJmMjllODU2ZjE4ZTIwYjFhOC4uM2Q1ZjkwYzUwZWU0YTU0ZmMwYWQxN2M2NDczNWRk
NjkzODczZmZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKQEAgLTQ2
LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihET01X
aW5kb3cmKTsKICAgICB2b2lkIHJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Jik7
CiAgICAgdm9pZCByZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyhET01XaW5kb3cmKTsKKyAg
ICBib29sIGhhc0RldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93JikgY29uc3Q7CiAKICAgICB2
b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQoRXZlbnQmKTsKICAgICBib29sIGlzQWN0aXZlKCkgeyBy
ZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
CmluZGV4IDMwM2Q3ZjgyZDRiMzdmZGJhMWI3ZjJkZDRhOGRhMjU3ZThhYjk3N2MuLmU4MjRkZjc2
YTg0MmYzMjA3ZmFlMGVjZTY0NDRlOWUyZjI0NWVmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwKQEAgLTc2NCw2ICs3NjQsMTEgQEAgZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6
CiAgIGluaXRpYWw6IHRydWUKICAgY29uZGl0aW9uYWw6IERFVklDRV9PUklFTlRBVElPTgogCitk
ZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkOgorICB0eXBlOiBib29sCisgIGlu
aXRpYWw6IGZhbHNlCisgIGNvbmRpdGlvbmFsOiBERVZJQ0VfT1JJRU5UQVRJT04KKwogc2hvdWxk
RW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdDoKICAgdHlwZTogYm9vbAogICBpbml0aWFsOiBmYWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggODA0YTBhZTkx
MDM5MTMzMzAzMjAzN2ExMjIwZDQ1YjAwM2RlODIzOC4uYjkwN2JkYWU3YjM2ZTkxZmE0NmRjYWE5
MjRhMTMwZDUzMzFlNTY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sCkBAIC0xMiw2ICsxMiwxNSBAQCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZDoKICAg
Y29uZGl0aW9uOiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICB3ZWJjb3JlTmFtZTogZGV2
aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQKIAorRGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9u
QVBJRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGRlZmF1bHREZXZpY2VP
cmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKCkKKyAgY29uZGl0aW9uOiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQorICB3ZWJjb3JlTmFtZTogZGV2aWNlT3JpZW50YXRpb25QZXJtaXNz
aW9uQVBJRW5hYmxlZAorICBodW1hblJlYWRhYmxlTmFtZTogIlBlcm1pc3Npb24gQVBJIGZvciBk
ZXZpY2Ugb3JpZW50YXRpb24gLyBtb3Rpb24gYWNjZXNzLiIKKyAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIC8gRGV2
aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1l
bnRhbAorCiBKYXZhU2NyaXB0RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6
IHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuY3BwCmluZGV4IGZhMTgyNTEwNGE2YzhiZWUyMjVhMTY3NWMxZWY5NDMzNWNiNGM5
ZDYuLmNiZjdkMDk5ODFlNTdjMTE2ZGFmOGI4YjYxZjU2NmFmMzA2ZDBjNmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApA
QCAtNDQsNiArNDQsMTUgQEAgYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZh
dWx0T25Eb2N1bWVudCgpCiAjZW5kaWYKIH0KIAorYm9vbCBkZWZhdWx0RGV2aWNlT3JpZW50YXRp
b25QZXJtaXNzaW9uQVBJRW5hYmxlZCgpCit7CisjaWYgUExBVEZPUk0oSU9TKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpT
REtWZXJzaW9uOjpGaXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25B
UEkpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogYm9vbCBkZWZhdWx0
Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKCkKIHsKICNpZiBQTEFURk9STShJT1NNQUMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5o
CmluZGV4IDZlODIxNzNiMGNiMmNiZTkxNTMxMDQxZGVjMjcwOGM1MGRmYmZlODMuLjg0ZDIyMTBj
MTlmMTI2MzRjNGU4OGEzZWZhOWQwZTUxMmQ1N2QxZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0yMjcsNiArMjI3LDcg
QEAKICNlbmRpZgogCiBib29sIGRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRP
bkRvY3VtZW50KCk7Citib29sIGRlZmF1bHREZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElF
bmFibGVkKCk7CiBib29sIGRlZmF1bHRDdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQoKTsKIAog
I2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKaW5kZXggM2VjNmYwMGQyNGZjOTM5NDI2OTBhM2U3MjlmZDA3ZWQ3YTNhYTZjNy4uOTQwYjY5
NzFlYTQwYTRkYjI5MzViZWEyYTk4OTZiNzllMTVkNjUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE3Myw2ICsxNzMsMTAgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2aXJ0dWFs
IHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQor
I2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIE9iamVjdCopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc2ln
bklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZShXZWJLaXQ6OldlYlBhZ2VQcm94
eSYsIE9iamVjdCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
aW5kZXggYTQxNjc2NmUyYjM4M2UxYjUxNDQ4ZmM5Y2M0MDJjMDFmMWJlYjNhYS4uMzhlNWIxNzA4
NjI2ZjBiNDkyZDg3MTMwZDY5NmYzNzI4ODU5Y2UzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4g
c3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0
ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGll
bnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRW
NSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwg
V0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBX
S1BhZ2VVSUNsaWVudFYxMj4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFn
ZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJ
Q2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xp
ZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50
VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRW
MTIsIFdLUGFnZVVJQ2xpZW50VjEzPiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKQEAgLTE5MDMsNiArMTkwMywxNiBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVu
dChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAog
ICAgICAgICAgICAgbV9jbGllbnQucmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKHRvQVBJKCZw
YWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShyZXF1ZXN0aW5nRG9tYWluLmltcGwoKSksIHRvQVBJ
KGN1cnJlbnREb21haW4uaW1wbCgpKSwgdG9BUEkobGlzdGVuZXIucHRyKCkpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgICAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MoV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuc2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzcykKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIodHJ1ZSk7CisKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fY2xpZW50
LnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModG9BUEkoJnBhZ2Up
LCB0b0FQSSgmb3JpZ2luKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSk7CisgICAgICAgIH0K
KyNlbmRpZgorCiAgICAgICAgIC8vIFByaW50aW5nLgogICAgICAgICBmbG9hdCBoZWFkZXJIZWln
aHQoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSkgZmluYWwKICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgK
aW5kZXggNWU1OTczZjlhYjE4YjQ2YTY1ZWZlMDhlZGY1ZjM1MDdhNzc1ZGYwYi4uZWE4ODcyNzU2
YWMxNzIwMTkwNWFlODc5YWFhMjY0MWQ3ZTI1ZGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC0xMzQsNiArMTM0LDcgQEAgdHlwZWRl
ZiB2b2lkICgqV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNv
bnN0IHZvaWQqIGNsaWVudEkKIHR5cGVkZWYgdm9pZCAoKldLSGFzVmlkZW9JblBpY3R1cmVJblBp
Y3R1cmVEaWRDaGFuZ2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgaGFzVmlkZW9JblBp
Y3R1cmVJblBpY3R1cmUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgq
V0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1Jlc291cmNlTGltaXQgbGltaXQsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ry
b25nUGFzc3dvcmRBcHBlYXJhbmNlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYg
dXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgqV0tQYWdl
U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQ
YWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJl
ZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwpAQCAtMTE0MCw2ICsxMTQxLDExMCBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVu
dFYxMiB7CiAgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm07CiB9IFdL
UGFnZVVJQ2xpZW50VjEyOwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxMyB7Cisg
ICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0
ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAg
Y3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hv
d1BhZ2U7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsK
KyAgICBXS1BhZ2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvY3VzOworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1Bh
Z2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAg
ICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdL
UGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAg
ICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAg
ICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsK
KyAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3NpbmdQ
bHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlz
c2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1Bh
Z2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdoZWVs
RXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxl
V2hlZWxFdmVudDsKKyAgICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1Bh
Z2VTZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldFRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNWaXNp
YmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zp
c2libGU7CisgICAgV0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdl
dFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJsZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNWaXNp
YmxlOworICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNpemFi
bGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Jl
c2l6YWJsZTsKKyAgICBXS1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNldFdp
bmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2Fs
bGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNiAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWNjsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7CisgICAg
V0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOworICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90
YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFz
ZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBhbmVsOworICAgIFdLUGFnZURlY2lkZVBv
bGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgZGVj
aWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFk
ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1BhZ2VE
cmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFnZVBy
aW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUK
KyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAgdm9p
ZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlOworCisgICAgLy8g
VmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9y
VXNlV2l0aFYxICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNl
V2l0aFYxOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQ
YWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAg
ICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAg
ICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9y
VXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tl
ckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9y
UGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworCisgICAgLy8gVmVyc2lvbiAzLgorICAg
IFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisg
ICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQgdG8g
YmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OyAv
LyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisg
ICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24g
NS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENh
bGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0OworICAgIFdLUGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VS
dW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAg
ICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFn
ZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAg
ICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBX
S1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAg
ICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAg
ICBXS1BhZ2VNZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlOworCisgICAgLy8gVmVy
c2lvbiA2LgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKKyAgICBXS1BhZ2VSdW5KYXZh
U2NyaXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bkphdmFTY3JpcHRBbGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOwor
ICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0NoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbjsKKworICAgIC8vIFZlcnNpb24gNy4KKyAgICBX
S1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAgICBXS0Z1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZTsKKworICAgIC8vIFZlcnNpb24gOC4KKyAgICBXS1Jl
cXVlc3RQb2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3RQb2ludGVyTG9jazsKKyAgICBXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExvc2VQb2ludGVy
TG9jazsKKworICAgIC8vIFZlcnNpb24gOS4KKyAgICBXS0hhbmRsZUF1dG9wbGF5RXZlbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5
RXZlbnQ7CisKKyAgICAvLyBWZXJzaW9uIDEwLgorICAgIFdLSGFzVmlkZW9JblBpY3R1cmVJblBp
Y3R1cmVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgaGFzVmlkZW9JblBp
Y3R1cmVJblBpY3R1cmVEaWRDaGFuZ2U7CisgICAgV0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3Vy
Y2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2sgICAgICAgICBkaWRFeGNlZWRCYWNrZ3Jv
dW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOworCisgICAgLy8gVmVyc2lvbiAxMS4K
KyAgICBXS1BhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VD
YWxsYmFjayAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFy
YW5jZTsKKworICAgIC8vIFZlcnNpb24gMTIuCisgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFn
ZUFjY2Vzc0NvbmZpcm07CisKKyAgICAvLyBWZXJzaW9uIDEzLgorICAgIFdLUGFnZVNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjayAgICAgICAgICAgc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKK30gV0tQYWdlVUlDbGll
bnRWMTM7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKaW5kZXggZGEwMzE0YWUzZjU4
Y2JkZTk4MDI4ZTI3Mjg5ZWFkNDRkNmQzNDJiYi4uODE1ZTgwMTg4OGU1ZDY2NGQ2NWFlM2NiYWFk
NjY3MmEyNWZkN2RjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGUuaApAQCAtMzQsNiArMzQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgogQGNsYXNzIFdLTmF2aWdhdGlvbkFjdGlvbjsKIEBjbGFzcyBXS09wZW5QYW5lbFBhcmFtZXRl
cnM7CiBAY2xhc3MgV0tQcmV2aWV3RWxlbWVudEluZm87CitAY2xhc3MgV0tTZWN1cml0eU9yaWdp
bjsKIEBjbGFzcyBXS1dlYlZpZXc7CiBAY2xhc3MgV0tXZWJWaWV3Q29uZmlndXJhdGlvbjsKIEBj
bGFzcyBXS1dpbmRvd0ZlYXR1cmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZGJkMDUzZTdmYmQwYTA5
NWYwODg4YTdlZGEwYmMyYmJhNzNlMjUzMi4uM2Q3NzcxNjQwOGI3NDFjY2RkODYzOGMwZGZiNTYz
ODcwYTgzNjBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xNzEsNiArMTcxLDE1IEBAIHN0cnVjdCBV
SUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENo
YW5nZVNhZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHM6KEJPT0wpc2FmZUFyZWFTaG91
bGRBZmZlY3RPYnNjdXJlZEluc2V0cyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFByZXNlbnRGb2N1c2VkRWxlbWVu
dFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19BUElfQVZB
SUxBQkxFKGlvcygxMi4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGRpZERpc21pc3NGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVy
ICopY29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CisKKy8qISBAYWJzdHJh
Y3QgQWxsb3dzIHlvdXIgYXBwIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4g
c2VjdXJpdHkgb3JpZ2luIHNob3VsZCBoYXZlIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50
YXRpb24gYW5kIG1vdGlvbi4KKyBAcGFyYW0gc2VjdXJpdHlPcmlnaW4gVGhlIHNlY3VyaXR5IG9y
aWdpbiB3aGljaCByZXF1ZXN0ZWQgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBvcmllbnRhdGlvbiBh
bmQgbW90aW9uLgorIEBwYXJhbSBkZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9uIGhhbmRsZXIg
dG8gY2FsbCBvbmNlIHRoZSBhcHAgaGFzIG1hZGUgaXRzIGRlY2lzaW9uLiBQYXNzIFlFUyB0byBh
bGxvdyB0aGUgb3JpZ2luIGFjY2VzcywgTk8gb3RoZXJ3aXNlLgorCisgSWYgeW91IGRvIG5vdCBp
bXBsZW1lbnQgdGhpcyBtZXRob2QsIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50YXRpb24g
YW5kIG1vdGlvbiB3aWxsIGJlIGdyYW50ZWQuCisgKi8KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0ZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOworCiAjZWxzZSAvLyBUQVJHRVRfT1NfSVBIT05FCiAtICh2
b2lkKV9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CiAtICh2b2lk
KV9jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCBjY2I3OGEyOWUyYTRjMmZmMTZkNDI1
MjVhZTVlNDYwYTc4OWJiN2EzLi42M2Y1NWM0NzEyNDU3MTBjZDhlOThjZWFkYTg3MDkzOGU3ZGFi
ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0x
MTksNiArMTE5LDkgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFn
ZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VM
aW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKFdlYlBhZ2VQcm94eSYsIFdLUmVzb3VyY2VMaW1pdCkgZmlu
YWw7CiAgICAgICAgIHZvaWQgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJQYWdl
UHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgVVJM
JiwgQVBJOjpEYXRhJikgZmluYWw7CisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgICAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAjZW5kaWYKICAgICAgICAgYm9vbCBu
ZWVkc0ZvbnRBdHRyaWJ1dGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91aURlbGVnYXRlLm1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDaGFuZ2VGb250QXR0cmlidXRlczsgfQogICAgICAg
ICB2b2lkIGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1
dGVzJikgZmluYWw7CkBAIC0xODcsNiArMTkwLDkgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3
ZWJWaWV3U2F2ZURhdGFUb0ZpbGVTdWdnZXN0ZWRGaWxlbmFtZU1pbWVUeXBlT3JpZ2luYXRpbmdV
UkwgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdSdW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyc0lu
aXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmll
d1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhh
bmRsZXIgOiAxOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAg
ICAgYm9vbCB3ZWJWaWV3U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c0ZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyIDogMTsKICNlbmRpZgogICAgICAgICBi
b29sIHdlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVv
dGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNp
c2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3Rh
Rm9yU2VjdXJpdHlPcmlnaW5EYXRhYmFzZU5hbWVEaXNwbGF5TmFtZUN1cnJlbnRRdW90YUN1cnJl
bnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFu
ZGxlciA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpp
bmRleCBiNWEwYTUwOGJjOTk2ZDNjOWE5N2Y5M2FmM2VhM2Y5MjUwOTdmNjY1Li45MjYwNzI1ODdj
MTBmZmNiOWNjOGE4YWY1Zjg3Mjk2OGQ3YWJlYmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTEzMiw2ICsxMzIsOSBAQCB2b2lkIFVJRGVsZWdh
dGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdTYXZlRGF0YVRvRmlsZVN1Z2dlc3RlZEZpbGVuYW1lTWltZVR5cGVP
cmlnaW5hdGluZ1VSTCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3OnNhdmVEYXRhVG9GaWxlOnN1Z2dlc3RlZEZpbGVuYW1lOm1pbWVUeXBlOm9yaWdpbmF0
aW5nVVJMOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSdW5PcGVuUGFuZWxXaXRo
UGFyYW1ldGVyc0luaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuT3BlblBhbmVsV2l0aFBhcmFt
ZXRlcnM6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0
eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlP
cmlnaW46ZGVjaXNpb25IYW5kbGVyOildOworI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3U2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2hvdWxk
QWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0ZvclNlY3VyaXR5T3JpZ2luOmRl
Y2lzaW9uSGFuZGxlcjopXTsKICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
ZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVvdGFDdXJyZW50T3Jp
Z2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVE
YXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46Y3VycmVudFF1b3RhOmN1cnJlbnRPcmlnaW5V
c2FnZTpjdXJyZW50RGF0YWJhc2VVc2FnZTpleHBlY3RlZFVzYWdlOmRlY2lzaW9uSGFuZGxlcjop
XTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNl
Y3VyaXR5T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFDdXJyZW50T3Jp
Z2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVE
YXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2VOYW1lOmRpc3BsYXlOYW1lOmN1
cnJlbnRRdW90YTpjdXJyZW50T3JpZ2luVXNhZ2U6Y3VycmVudERhdGFiYXNlVXNhZ2U6ZXhwZWN0
ZWRVc2FnZTpkZWNpc2lvbkhhbmRsZXI6KV07CkBAIC04NDQsNiArODQ3LDI2IEBAIGJvb2wgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVBy
b3h5KiB3ZWJGcmFtZVByCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9y
aWdpbiYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld1Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JT
ZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKHRydWUpOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVn
YXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcih0cnVlKTsKKworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnNob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NGb3JTZWN1cml0eU9yaWdpbjpk
ZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdh
dGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBzaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzRm9yU2VjdXJpdHlPcmlnaW46d3JhcHBlcihzZWN1cml0eU9y
aWdpbikgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlcildIChC
T09MIGdyYW50ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhh
bmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNoZWNr
ZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihncmFudGVkKTsKKyAgICB9KS5nZXQoKV07Cit9CisjZW5kaWYKKwogdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXMoY29uc3QgV2ViQ29yZTo6Rm9udEF0
dHJpYnV0ZXMmIGZvbnRBdHRyaWJ1dGVzKQogewogICAgIGlmICghbmVlZHNGb250QXR0cmlidXRl
cygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNo
ZWNrcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNrcy5oCmlu
ZGV4IGVkMTY2OGM3MjgyYjg3NmVjNjBiNWNmOTM2YTZjMmNhYTgyMzZhODkuLjNiMzUwYmUwMGIz
OThkZDllZjRlYWMxOGExNTM3NDlhNGJlMzVlMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9WZXJzaW9uQ2hlY2tzLmgKQEAgLTM4LDYgKzM4LDEwIEBACiAjZGVmaW5lIERZ
TERfTUFDT1NfVkVSU0lPTl9GSVJTVF9XSEVSRV9ET1dOTE9BRF9BVFRSSUJVVEVfRE9FU19OT1Rf
T1ZFUlJJREVfTkFWSUdBVElPTl9ERUxFR0FURSAwCiAjZW5kaWYKIAorI2lmbmRlZiBEWUxEX0lP
U19WRVJTSU9OX0ZJUlNUX1dJVEhfREVWSUNFX09SSUVOVEFUSU9OX0FORF9NT1RJT05fUEVSTUlT
U0lPTl9BUEkKKyNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl9GSVJTVF9XSVRIX0RFVklDRV9PUklF
TlRBVElPTl9BTkRfTU9USU9OX1BFUk1JU1NJT05fQVBJIDAKKyNlbmRpZgorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogZW51bSBjbGFzcyBTREtWZXJzaW9uIDogdWludDMyX3QgewpAQCAtNTYsNiAr
NjAsNyBAQCBlbnVtIGNsYXNzIFNES1ZlcnNpb24gOiB1aW50MzJfdCB7CiAgICAgRmlyc3RXaXRo
UHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBEWUxEX0lPU19WRVJTSU9OX0ZJUlNU
X1dJVEhfUFJPQ0VTU19TV0FQX09OX0NST1NTX1NJVEVfTkFWSUdBVElPTiwKICAgICBGaXJzdFdp
dGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfSU9TX1ZFUlNJT05fRklSU1RfV0lU
SF9TTkFQU0hPVF9BRlRFUl9TQ1JFRU5fVVBEQVRFUywKICAgICBGaXJzdFdoZXJlRG93bmxvYWRB
dHRyaWJ1dGVEb2VzTm90T3ZlcnJpZGVOYXZpZ2F0aW9uRGVsZWdhdGUgPSBEWUxEX0lPU19WRVJT
SU9OX0ZJUlNUX1dIRVJFX0RPV05MT0FEX0FUVFJJQlVURV9ET0VTX05PVF9PVkVSUklERV9OQVZJ
R0FUSU9OX0RFTEVHQVRFLAorICAgIEZpcnN0V2l0aERldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
UGVybWlzc2lvbkFQSSA9IERZTERfSU9TX1ZFUlNJT05fRklSU1RfV0lUSF9ERVZJQ0VfT1JJRU5U
QVRJT05fQU5EX01PVElPTl9QRVJNSVNTSU9OX0FQSSwKICNlbGlmIFBMQVRGT1JNKE1BQykKICAg
ICBGaXJzdFdpdGhOZXR3b3JrQ2FjaGUgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzExLAogICAg
IEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzID0g
RFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDA2NzBmMmM1Njc2ZjE5MzI4MDQ0ZWI3MTE5MzQ4YjVkN2JiZjk4YjQu
LmUxOGE3MTMzN2Y4NjVkZjFlZGFhMWU4MmVkZTBkNmM5MzM3ZDAxYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzE3NCw2ICs3MTc0LDE4IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpjbGVhclVzZXJNZWRpYVN0YXRlKCkKICNlbmRpZgogfQogCisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYg
b3JpZ2luRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIG9yaWdpbiA9IEFQ
STo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpOwor
ICAgIG1fdWlDbGllbnQtPnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3MoKnRoaXMsIG9yaWdpbi5nZXQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpLCBjYWxsYmFja0lEXShib29sIGdyYW50ZWQpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCAhaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzc0RlY2lzaW9uKGNhbGxiYWNrSUQsIGdyYW50ZWQpLCBtX3BhZ2VJRCk7CisgICAgfSk7
Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJt
aXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCiB7
CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGY1YjBiMTk1NTQ0MzIzYTZjNTZlNDZiNWYxMWMxZDY4
OTBhYzk3YjEuLjNlZjk3ZjNmNjI5ODVjZTQ0NzhlZTYzMzRlNjY4ZDhiOTVhNGQyYmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDAxLDYgKzE0MDEsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKKyAgICB2b2lkIHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcyhXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7
CisjZW5kaWYKKwogICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJhbFdlYlBhZ2VQ
cm94eSgpOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBhZmExZDY3YmIx
MDEzMDQ4MmEyOGM4OWRiMmU2NTA3N2U3YmIxNDcyLi4wYjEyZTJiYmZiNWUwYjVhZTUyMDNlYjMy
NWE1ODYzMTljZjBkOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01MzMsNiArNTMzLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAgICAgU3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZp
ZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKQogICAgIExvYWRTeW5jaHJvbm91c1VSTFNjaGVt
ZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMgcGFyYW1ldGVycykg
LT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgZXJyb3IsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKSBEZWxheWVkCiAKKyNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2VzcyhzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1F
TlQpCiAgICAgUmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllckZyb21EYXRhKFN0cmluZyBpZGVu
dGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmluZyBwcmVmZXJyZWRGaWxlTmFtZSwgSVBD
OjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEpCiAgICAgUmVnaXN0ZXJBdHRhY2htZW50
SWRlbnRpZmllckZyb21GaWxlUGF0aChTdHJpbmcgaWRlbnRpZmllciwgU3RyaW5nIGNvbnRlbnRU
eXBlLCBTdHJpbmcgZmlsZVBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDY3ZmQ3YTcy
MGNlMmYzMzk3NzAzNTE0OGJkYmQyY2VmYTdjN2ZkMzUuLjYyYjVlZmI4MWEzNzVhNWRkYjAyM2Mz
NTlhYWU0YjQ3YmQyZjAwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xMzIwLDQgKzEz
MjAsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmlu
ZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnIKIH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmln
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7CisgICAgbV9w
YWdlLnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mob3JpZ2luLCBX
VEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggZjkyNmEyNThhZDg1YWIwNzc5MTZkMGNiMjM1Mjg0ZDhlYjNi
ZGFhNy4uMjI3YjgxNDE4NjMzZGUzNzJmMTM0ZjZlMWU5YjNmMTVmYWEzZTg0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtMzY2LDYgKzM2NiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhv
c3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkIChib29sKT4mJikgZmluYWw7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgZmluYWw7CisjZW5kaWYKKwogICAgIFN0cmluZyBtX2NhY2hlZFRv
b2xUaXA7CiAgICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJn
ZXN0RnJhbWU7CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRh
bFNjcm9sbGJhciB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDg0MGEwMmRlMDhkMzZjM2FhY2YxMDlhNGUxOTM1MzRmZmU3YjFi
MGIuLmFiZGY2NGQzNmMxYmMxYWNiMDA0NDI1YWJjNTY4M2FlZWNjNzQ5ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MzQ2LDYgKzYzNDYs
MzAgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFt
ZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVxdWVz
dFN0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tSG9zdChzdWJGcmFtZUhvc3QpLCBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2Vk
Q3JlYXRlRnJvbUhvc3QodG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwgbV9wYWdlSUQsIHByb21wdEVu
YWJsZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAjZW5kaWYKKworI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCitzdGF0aWMgdWludDY0X3QgbmV4dERldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrSUQoKQoreworICAgIHN0YXRpYyB1aW50
NjRfdCBuZXh0Q2FsbGJhY2tJRCA9IDA7CisgICAgcmV0dXJuICsrbmV4dENhbGxiYWNrSUQ7Cit9
CisKK3ZvaWQgV2ViUGFnZTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gY2FsbGJhY2tJRCA9IG5l
eHREZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25DYWxsYmFja0lEKCk7CisgICAg
QVNTRVJUKCFtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFw
LmNvbnRhaW5zKGNhbGxiYWNrSUQpKTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
UGVybWlzc2lvbkNhbGxiYWNrTWFwLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3REZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzcyhvcmlnaW4uZGF0YSgpLCBjYWxsYmFja0lEKSk7Cit9CisKK3Zv
aWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzRGVj
aXNpb24odWludDY0X3QgY2FsbGJhY2tJRCwgYm9vbCBncmFudGVkKQoreworICAgIGF1dG8gY2Fs
bGJhY2sgPSBtX2RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkNhbGxiYWNrTWFw
LnRha2UoY2FsbGJhY2tJRCk7CisgICAgQVNTRVJUKGNhbGxiYWNrKTsKKyAgICBjYWxsYmFjayhn
cmFudGVkKTsKK30KKyNlbmRpZgogICAgIAogc3RhdGljIFNoYXJlU2hlZXRDYWxsYmFja0lEIG5l
eHRTaGFyZVNoZWV0Q2FsbGJhY2tJRCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggMWQwMTBhODMxYzBlZDVlZmFhNDcyNDA5YjFhMGNiMTQwMzM4
OWM0Ny4uZDczZTg0ZDdjNTMzYWE0MjdiYThjODMzNzU5ZjExZjZhYjZkMDAwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTExMCw2ICsxMTEwLDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZy
YW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3MoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBzaG93U2hhcmVT
aGVldChXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAgICB2b2lkIGRpZENvbXBsZXRlU2hhcmVT
aGVldChib29sIHdhc0NvbXBsZXRlZCwgU2hhcmVTaGVldENhbGxiYWNrSUQgY29udGV4dElkKTsK
ICAgICAKQEAgLTEyMDYsNiArMTIxMCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdEFk
ZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGll
bnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKTsKICNl
bmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIGRpZFJlY2Vp
dmVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0RlY2lzaW9uKHVpbnQ2NF90IGNhbGxi
YWNrSUQsIGJvb2wgZ3JhbnRlZCk7CisjZW5kaWYKKwogI2lmICFQTEFURk9STShDT0NPQSkgJiYg
IVBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQo
Y29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwogI2VuZGlmCkBAIC0xODM2LDYgKzE4NDQs
MTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQo
Ym9vbCBncmFudGVkKT4+IG1fc3RvcmFnZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tNYXA7CiAgICAg
SGFzaE1hcDxTaGFyZVNoZWV0Q2FsbGJhY2tJRCwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgY29t
cGxldGVkKT4+IG1fc2hhcmVTaGVldFJlc3BvbnNlQ2FsbGJhY2tNYXA7CiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sIGdyYW50ZWQpPj4gbV9kZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
blBlcm1pc3Npb25DYWxsYmFja01hcDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9O
X01BTklGRVNUKQogICAgIEhhc2hNYXA8dWludDY0X3QsIHVpbnQ2NF90PiBtX2FwcGxpY2F0aW9u
TWFuaWZlc3RGZXRjaENhbGxiYWNrTWFwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBjY2U3NzIyMjZh
NTliODc1YWE2MDhiOGYyYTdhMDMwYzZmMDZmZjJmLi45ZDcyMzlkYjVhMDMyYTAyZWMwMjI0NzYz
YTA3NmQ2OTY2MDMxNjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM2Myw2ICszNjMsMTAgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgIyBOb3RpZmljYXRpb24KICAgICBEaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklELCBib29sIGFsbG93ZWQpCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IERpZFJlY2VpdmVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0RlY2lzaW9uKHVpbnQ2
NF90IGNhbGxiYWNrSUQsIGJvb2wgZ3JhbnRlZCkKKyNlbmRpZgorCiAgICAgIyBQcmludGluZy4K
ICAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50
SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBhYTM4ODExNDIxYzc2NjNlMWYxOTU4NTc0
MGJjMWU5YTExOWY4ZmUuLmEzODFhZGM1Yzg2ZjBkNTY5OWM5ZDhiYjI2YTk3ZjgwZjA2OGEzY2Eg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOS0wMy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVy
bWlzc2lvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTMyOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgaW5mcmFzdHJ1
Y3R1cmUgdG8gaGVscCB0ZXN0IHRoZSBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlz
c2lvbiBBUEkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFNo
b3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmhhbmRsZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
UmVxdWVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTktMDMtMDcgIEpvaG4gV2lsYW5kZXIgIDx3
aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBN
YWtlIGl0IHBvc3NpYmxlIHRvIHB1cmdlIG9ubHkgc2NyaXB0LWFjY2Vzc2libGUgY29va2llcwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggOWNmNDQ5M2U2MGU3ODYzMzhiMTNlYWYwYWI2
NTA3YzQzNWMzMTM3OC4uYzI1MzI4OTc5MDdlNDkxMDUwNGRjMzdlYWEyNmQ1MzM1ODllMTFmNCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0xMDQsNiArMTA0LDkgQEAgaW50ZXJmYWNl
IFRlc3RSdW5uZXIgewogICAgIGJvb2xlYW4gaXNDb21tYW5kRW5hYmxlZChET01TdHJpbmcgbmFt
ZSk7CiAgICAgdW5zaWduZWQgbG9uZyB3aW5kb3dDb3VudCgpOwogCisgICAgLy8gRGV2aWNlIE9y
aWVudGF0aW9uIE1vdGlvbi4KKyAgICB2b2lkIHNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3MoYm9vbGVhbiB2YWx1ZSk7CisKICAgICAvLyBTcGVjaWFsIERPTSB2
YXJpYWJsZXMuCiAgICAgYXR0cmlidXRlIGJvb2xlYW4gZ2xvYmFsRmxhZzsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5k
ZXggODI0YTVmNjg0MzE2OTM3MDM0ZTg2YzE0OTAzMTc3YmJjY2I2ZmVkNi4uYjc5ZDA4YTJhZmU4
NDZlNTU5ZGU0MmE4N2Q4ZjgxNTNkMmJjMjQwZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMjk0LDYgKzEyOTQs
MTMgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1F
VHlwZXMoYm9vbCB2YWx1ZSkKICAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1
bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNz
YWdlQm9keS5nZXQoKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkQWxsb3dEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhib29sIHZhbHVlKQoreworICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiU2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ss
IFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0
KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjp0ZXJtaW5hdGVO
ZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VO
YW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUZXJtaW5hdGVOZXR3
b3JrUHJvY2VzcyIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggNmQxMTY0OGJiYzk0NmZhODY2NTY0MDdmZjMxMjI3NDcx
YmIzMzI0OC4uOGRmY2Y2Y2FmMzIyMzI1NDk0N2M5ZGRmYWYzMDIxNzc3MTcxNjk4ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgK
QEAgLTM0OCw2ICszNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uR2VzdHVy
ZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMo
Ym9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMo
Ym9vbCk7CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKGJvb2wpOwogCiAgICAgYm9vbCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q7IH0KICAgICB2b2lkIHNldERpZENh
bmNlbENsaWVudFJlZGlyZWN0KGJvb2wgdmFsdWUpIHsgbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVj
dCA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDU1NGUwM2E2ZmFiODNkNDNhMjc4YTUzZjc2NGVhNDUzM2QwNDZhZmQuLjA4OTY0Y2RkZTU2
M2ZkYjM5Nzc3MzZjN2FiNDRmMWU5ZWUxMmMzNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yNjIsNiArMjYyLDExIEBAIHN0YXRpYyB2b2lkIHJlcXVl
c3RQb2ludGVyTG9jayhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCopCiAgICAgV0tQYWdlRGlk
QWxsb3dQb2ludGVyTG9jayhwYWdlKTsKIH0KIAorc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5S
ZWYgb3JpZ2luLCBjb25zdCB2b2lkKikKK3sKKyAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLmhhbmRsZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUmVxdWVzdChv
cmlnaW4pOworfQorCiBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShX
S1BhZ2VSZWYsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0
aW9uQWN0aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93
RmVhdHVyZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3
KiBwYXJlbnRWaWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpOwpAQCAtNTcwLDggKzU3NSw4IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykK
ICAgICByZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMpOwogCiAgICAg
cGxhdGZvcm1DcmVhdGVXZWJWaWV3KGNvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAg
IFdLUGFnZVVJQ2xpZW50VjggcGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDgsIG1fbWFpbldl
YlZpZXcuZ2V0KCkgfSwKKyAgICBXS1BhZ2VVSUNsaWVudFYxMyBwYWdlVUlDbGllbnQgPSB7Cisg
ICAgICAgIHsgMTMsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3JlYXRl
TmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAg
ICAgICAgIDAsIC8vIGNsb3NlCkBAIC02MzcsNyArNjQyLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykK
ICAgICAgICAgMCwgLy8gcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsCiAgICAgICAgIDAsIC8v
IGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZQogICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2ss
Ci0gICAgICAgIDAsCisgICAgICAgIDAsIC8vIGRpZExvc2VQb2ludGVyTG9jaworICAgICAgICAw
LCAvLyBoYW5kbGVBdXRvcGxheUV2ZW50CisgICAgICAgIDAsIC8vIGhhc1ZpZGVvSW5QaWN0dXJl
SW5QaWN0dXJlRGlkQ2hhbmdlCisgICAgICAgIDAsIC8vIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNv
dXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQKKyAgICAgICAgMCwgLy8gZGlkUmVzaWduSW5wdXRF
bGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlCisgICAgICAgIDAsIC8vIHJlcXVlc3RTdG9y
YWdlQWNjZXNzQ29uZmlybQorICAgICAgICBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2Vi
Vmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2UpOwogCkBAIC05NDMsNiArOTU0LDggQEAg
Ym9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBU
ZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKIAogICAgIG1fc2hvdWxkRG93bmxvYWRVbmRpc3BsYXlh
YmxlTUlNRVR5cGVzID0gZmFsc2U7CiAKKyAgICBtX3Nob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3MgPSBmYWxzZTsKKwogICAgIG1fd29ya1F1ZXVlTWFuYWdlci5jbGVh
cldvcmtRdWV1ZSgpOwogCiAgICAgbV9yZWplY3RzUHJvdGVjdGlvblNwYWNlQW5kQ29udGludWVG
b3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMgPSBmYWxzZTsKQEAgLTI1NDgsNiArMjU2MSwxMiBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpoYW5kbGVDaGVja09mVXNlck1lZGlhUGVybWlzc2lvbkZv
ck9yaWdpbihXS0ZyYW1lUmVmIGZyYW1lLAogICAgIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
U2V0VXNlck1lZGlhQWNjZXNzSW5mbyhjaGVja1JlcXVlc3QsIHNhbHRTdHJpbmcuZ2V0KCksIHNl
dHRpbmdzRm9yT3JpZ2luKG9yaWdpbkhhc2gpLnBlcnNpc3RlbnRQZXJtaXNzaW9uKCkpOwogfQog
Citib29sIFRlc3RDb250cm9sbGVyOjpoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc1JlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pCit7CisgICAgbV9jdXJyZW50
SW52b2NhdGlvbi0+b3V0cHV0VGV4dChtYWtlU3RyaW5nKCJSZWNlaXZlZCBkZXZpY2Ugb3JpZW50
YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiBcIiIsIG9y
aWdpblVzZXJWaXNpYmxlTmFtZShvcmlnaW4pLCAiXCIuXG4iKSk7CisgICAgcmV0dXJuIG1fc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKK30KKwogdm9pZCBUZXN0
Q29udHJvbGxlcjo6aGFuZGxlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV0tGcmFtZVJlZiBm
cmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV0tTZWN1
cml0eU9yaWdpblJlZiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UmVmIHJlcXVlc3QpCiB7CiAgICAgYXV0byBvcmlnaW5IYXNoID0gdXNlck1lZGlh
T3JpZ2luSGFzaCh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNGIzNTNkYjQy
YjU1MmU4OTgyNjEyNDJlM2E1ZDA3YTA0MGYzZTU2Ni4uM2FiZTJkYjBhMTcxNjgwY2E3ZGUyNjQx
MjYwNzdjNjA2ZDdiYmEyNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aApAQCAtMTUwLDYgKzE1MCw5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdENvdW50Rm9yT3JpZ2luKFdLU3RyaW5nUmVmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luU3RyaW5nLCBXS1N0cmluZ1JlZiB0b3BMZXZlbERvY3VtZW50T3JpZ2luU3RyaW5nKTsK
ICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihX
S1N0cmluZ1JlZiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpblN0cmluZywgV0tTdHJpbmdSZWYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpblN0cmluZyk7CiAKKyAgICAvLyBEZXZpY2UgT3JpZW50YXRpb24g
LyBNb3Rpb24uCisgICAgYm9vbCBoYW5kbGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
c1JlcXVlc3QoV0tTZWN1cml0eU9yaWdpblJlZik7CisKICAgICAvLyBDb250ZW50IEV4dGVuc2lv
bnMuCiAgICAgdm9pZCBjb25maWd1cmVDb250ZW50RXh0ZW5zaW9uRm9yVGVzdChjb25zdCBUZXN0
SW52b2NhdGlvbiYpOwogICAgIHZvaWQgcmVzZXRDb250ZW50RXh0ZW5zaW9ucygpOwpAQCAtMTk5
LDYgKzIwMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGlt
aXRzKGJvb2wpOwogCiAgICAgdm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1F
VHlwZXMoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBl
cyA9IHZhbHVlOyB9CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzID0gdmFsdWU7IH0KIAogICAgIHZvaWQgc2V0U3RhdGlzdGljc0RlYnVn
TW9kZShib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZUZvckRlYnVnTW9kZShXS1N0cmluZ1JlZiBob3N0TmFtZSk7CkBAIC01MDksNiArNTEzLDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fcG9saWN5RGVsZWdhdGVQZXJtaXNzaXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1f
c2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyB7IGZhbHNlIH07
CiAKICAgICBib29sIG1fcmVqZWN0c1Byb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlRm9yQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VzIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFuZGxlc0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCmluZGV4IDBiZGM0MTc2YWUxMjE2NjUwMjk4ZDhkNDg0NGRlYjk2NjYxYjJk
MGYuLjc3MzI5MTg4NGE1ZGE3YTQwZmJjMzkwNzNlYjE3MzE5ZjQzMzdkZDIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC03NDcsNiArNzQ3LDEzIEBAIHZv
aWQgVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdL
U3RyaW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MiKSkgeworICAgICAgICBBU1NFUlQoV0tH
ZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAgICAg
V0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9k
eSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlJ1blVJUHJvY2Vzc1NjcmlwdCIpKSB7CiAgICAgICAgIFdL
RGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rp
b25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IHNjcmlwdEtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2NyaXB0
IikpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGM0NzI4NDg4MTJlODI3MDg2MjQzMmY5NDI2NjljZTkyOWZmNGM2YzUuLmIw
M2E5M2FmMmMzNjU1MWMxNGQyMGM5NTY2MzRhYmUzNWQ0ZjNkYWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MyBAQAorMjAxOS0wMy0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBEZXZpY2UgT3JpZW50YXRpb24gLyBNb3Rpb24gcGVybWlzc2lv
biBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
NTMyOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2NDUzNjc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdl
LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2Ut
bW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
Z3JhbnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1
ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Np
b24tdXNlci1nZXN0dXJlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNl
LW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1n
cmFudGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9y
aWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1ub24t
c2VjdXJlLWNvbnRleHQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Ut
b3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250
ZXh0Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRp
b24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2Vj
dXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTAzLTA3ICBKb2huIFdpbGFuZGVyICA8
d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczog
TWFrZSBpdCBwb3NzaWJsZSB0byBwdXJnZSBvbmx5IHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDQ4Yzk0OGJlN2Q3ZjhkMTY0ZDdmZDdiYzViOTg3ZmY4Njc2
M2MzMGYuLjdjYzYzYWIzMTRmYTQxOWRhMzRlOWE0YWUzN2QwODU3M2VhYjE4ZWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzMsNiArMzMsNyBAQCBmYXN0L3pvb21pbmcvaW9zIFsgU2tpcCBdCiBm
YXN0L2Zvcm1zL2lvcyBbIFNraXAgXQogZmFzdC92aWV3cG9ydC9pb3MgWyBTa2lwIF0KIGZhc3Qv
dmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBTa2lwIF0KK2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsg
U2tpcCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3MgWyBT
a2lwIF0KIGZhc3QvZXZlbnRzL3BvaW50ZXIvaW9zIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jNmQzZTFjOTg3NDQ0ZWI4MmI0NjU4OGZhZDY5ODY5N2I2NjdjOTE1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24v
ZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IE5vIGRldmljZSBtb3Rpb24g
b3Igb3JpZW50YXRpb24gZXZlbnRzIHdpbGwgYmUgZmlyZWQgdW50aWwgcGVybWlzc2lvbiBoYXMg
YmVlbiByZXF1ZXN0ZWQgYW5kIGdyYW50ZWQuCitSZWNlaXZlZCBkZXZpY2Ugb3JpZW50YXRpb24g
JiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAiIi4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxOTogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMg
d2lsbCBiZSBmaXJlZCBiZWNhdXNlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBBUEkgd2FzIGRlbmll
ZC4KK0Jhc2ljIHRlc3RpbmcgZm9yIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9u
KCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdCBpcyAiZGVu
aWVkIgorUEFTUyByZXN1bHQgaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rl
dmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24t
cmVxdWVzdC1wZXJtaXNzaW9uLWRlbmllZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwY2QwYTJlMWZhNDIy
M2JiMTIyODFiYjQ5ZjI3ODcxNjI2ZjVlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lv
bi1kZW5pZWQuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VNb3Rpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZmFsc2UpOworCithZGRFdmVudExpc3RlbmVyKCJk
ZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKK2ludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkg
PT4geworICAgIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jl
c3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdCIsICJkZW5pZWQiKTsKKworICAgICAgICBhZGRFdmVudExpc3Rl
bmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKKyAgICAgICAgaW50ZXJuYWxzLndpdGhV
c2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICAgICAgICBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0
UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSBfcmVzdWx0OworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0
IiwgImRlbmllZCIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLWdyYW50ZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWUzMjBhMGMyNGEzNDJh
OWI5OGFhZTU1NmI2ZDdkNmZlNTRlYTRiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9u
LWdyYW50ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAxMjogTm8gZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBm
aXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1Jl
Y2VpdmVkIGRldmljZSBvcmllbnRhdGlvbiAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2Vj
dXJpdHkgb3JpZ2luICIiLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cmVzdWx0IGlzICJncmFudGVkIgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZ3JhbnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRp
b24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNkYzExZTljOGZhODZmYmQ1ZDI2OTAxNmZmZjQwOGI1NTRmOWRhZmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9u
LXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdGlu
ZyBmb3IgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS4iKTsKK2pzVGVzdElz
QXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5z
ZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHRydWUpOworCith
ZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vtb3Rpb24iLCAoKSA9PiB7fSk7CisKK2ludGVybmFscy53
aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgIERldmljZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICByZXN1bHQgPSBfcmVzdWx0Owor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisKKyAg
ICAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgKCkgPT4ge30pOworCisgICAg
ICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICAgICAgRGV2aWNl
TW90aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdCIsICJncmFudGVkIik7CisgICAgICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW1vdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1n
ZXN0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTBjZjU3NmNkZmI3NTA3MDYxMzczZjFkMmJlODIyZmZjMjgyN2UwNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1tb3Rpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0OiBOb3RBbGxvd2VkRXJy
b3I6IENhbGxpbmcgcmVxdWVzdFBlcm1pc3Npb24oKSByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZQor
VGVzdHMgdGhhdCBEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpIHJlcXVpcmVz
IGEgdXNlciBnZXN0dXJlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBl
Lm5hbWUgaXMgIk5vdEFsbG93ZWRFcnJvciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rldmlj
ZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3QtcGVybWlzc2lvbi11c2VyLWdlc3R1
cmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1tb3Rp
b24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkNDcx
YzVkMzE5M2UxZTY1NzI1OTMxNzdhZmU4OTc0NTFhMjBiM2QKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9kZXZpY2UtbW90aW9uLXJlcXVlc3Qt
cGVybWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IERldmlj
ZU1vdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUu
Iik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworCitEZXZpY2VNb3Rpb25FdmVudC5yZXF1ZXN0
UGVybWlzc2lvbigpLnRoZW4oKHJlc3VsdCkgPT4geworICAgIHRlc3RGYWlsZWQoInJlcXVlc3RQ
ZXJtaXNzaW9uIHByb21pc2Ugd2FzIG5vdCByZWplY3RlZCIpOworfSwgKF9lKSA9PiB7CisgICAg
ZSA9IF9lOworICAgIGNvbnNvbGUubG9nKGUpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZS5uYW1lIiwgIk5vdEFsbG93ZWRFcnJvciIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24t
ZGVuaWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lNmRkZDZmZjE0M2FjN2U1Y2I3M2U5NjQ1ZGYzNjcxOTViYjhmN2FkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2
aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTQgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogTm8gZGV2aWNlIG1vdGlv
biBvciBvcmllbnRhdGlvbiBldmVudHMgd2lsbCBiZSBmaXJlZCB1bnRpbCBwZXJtaXNzaW9uIGhh
cyBiZWVuIHJlcXVlc3RlZCBhbmQgZ3JhbnRlZC4KK1JlY2VpdmVkIGRldmljZSBvcmllbnRhdGlv
biAmIG1vdGlvbiBhY2Nlc3MgcmVxdWVzdCBmb3Igc2VjdXJpdHkgb3JpZ2luICIiLgorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE5OiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50
cyB3aWxsIGJlIGZpcmVkIGJlY2F1c2UgcGVybWlzc2lvbiB0byB1c2UgdGhlIEFQSSB3YXMgZGVu
aWVkLgorQmFzaWMgdGVzdGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVy
bWlzc2lvbigpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQg
aXMgImRlbmllZCIKK1BBU1MgcmVzdWx0IGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlz
c2lvbi1kZW5pZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2Rl
dmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTM4ZDczY2RjMDE4NTBjMTc3NDA4ZTliYjBkYWEzODBlZDkxZGEzZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRh
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVz
dGluZyBmb3IgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLiIpOwor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZmFs
c2UpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2VvcmllbnRhdGlvbiIsICgpID0+IHt9KTsK
KworaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgRGV2aWNlT3JpZW50YXRp
b25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAg
cmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQi
LCAiZGVuaWVkIik7CisKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRp
b24iLCAoKSA9PiB7fSk7CisKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9
PiB7CisgICAgICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9u
KCkudGhlbigoX3Jlc3VsdCkgPT4geworICAgICAgICAgICAgICAgIHJlc3VsdCA9IF9yZXN1bHQ7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZGVuaWVk
Iik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVu
dGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1ncmFudGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBl
cm1pc3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDEyZWUxYWZkNDBlOWQz
MzIxMWQxZmZkYTYxN2E4OWIzNTViYzg3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24tZ3JhbnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEyOiBObyBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50cyB3aWxs
IGJlIGZpcmVkIHVudGlsIHBlcm1pc3Npb24gaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVk
LgorUmVjZWl2ZWQgZGV2aWNlIG9yaWVudGF0aW9uICYgbW90aW9uIGFjY2VzcyByZXF1ZXN0IGZv
ciBzZWN1cml0eSBvcmlnaW4gIiIuCitCYXNpYyB0ZXN0aW5nIGZvciBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJlc3VsdCBpcyAiZ3JhbnRlZCIKK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9uL2RldmljZS1vcmllbnRh
dGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
ZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVybWlzc2lvbi1n
cmFudGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQxYmFkYmYwYjJlOThmOWEyY2IzNTEwMjA2Yzg3MDhl
OGIyZjVhZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tZ3JhbnRlZC5odG1s
CkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RpbmcgZm9yIERldmljZU9yaWVudGF0aW9uRXZlbnQucmVx
dWVzdFBlcm1pc3Npb24oKS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKHRydWUpOworCithZGRFdmVudExpc3RlbmVyKCJkZXZpY2Vvcmll
bnRhdGlvbiIsICgpID0+IHt9KTsKKworaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7
CisgICAgRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9y
ZXN1bHQpID0+IHsKKyAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3JhbnRlZCIpOworCisgICAgICAgIGFkZEV2ZW50TGlz
dGVuZXIoImRldmljZW9yaWVudGF0aW9uIiwgKCkgPT4ge30pOworCisgICAgICAgIGludGVybmFs
cy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICAgICAgRGV2aWNlT3JpZW50YXRpb25F
dmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKF9yZXN1bHQpID0+IHsKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSBfcmVzdWx0OworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1v
cmllbnRhdGlvbi9kZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2Vz
dHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RldmljZS1vcmllbnRhdGlvbi9k
ZXZpY2Utb3JpZW50YXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uLXVzZXItZ2VzdHVyZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmFiNDI2YTI5ZWFjNzE3YTIwNTc5ZmY4MWM0ZTlmZGQ0NmI4MzZm
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IE5vdEFs
bG93ZWRFcnJvcjogQ2FsbGluZyByZXF1ZXN0UGVybWlzc2lvbigpIHJlcXVpcmVzIGEgdXNlciBn
ZXN0dXJlCitUZXN0cyB0aGF0IERldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Np
b24oKSByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZS5uYW1lIGlzICJOb3RBbGxvd2VkRXJyb3IiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kZXZpY2Utb3JpZW50YXRpb24vZGV2aWNlLW9yaWVudGF0aW9uLXJlcXVlc3QtcGVy
bWlzc2lvbi11c2VyLWdlc3R1cmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVu
dGF0aW9uL2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTI2OTkyYWQ0MzU4ZGQ3M2JjYzk1MmE3MDg0ODFlNTJkZDZlNWNm
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZGV2aWNlLW9yaWVudGF0aW9u
L2RldmljZS1vcmllbnRhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24tdXNlci1nZXN0dXJlLmh0bWwK
QEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJt
aXNzaW9uKCkgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworCitEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigo
cmVzdWx0KSA9PiB7CisgICAgdGVzdEZhaWxlZCgicmVxdWVzdFBlcm1pc3Npb24gcHJvbWlzZSB3
YXMgbm90IHJlamVjdGVkIik7Cit9LCAoX2UpID0+IHsKKyAgICBlID0gX2U7CisgICAgY29uc29s
ZS5sb2coZSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLm5hbWUiLCAiTm90QWxsb3dl
ZEVycm9yIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNl
LW9yaWVudGF0aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1j
b250ZXh0Lmh0bWwKaW5kZXggZWQyZGQyMDM3N2M1NzM2NWUxYTVmN2ZmYzUyNTRmNzI3ZDcxYjVk
Yy4uMzhmMmQ0MjAwOWU5M2M0YTkzOTMyM2Q3MjAzOTZkOTFkNjVlNmQ0NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1u
b24tc2VjdXJlLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50
cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29udGV4dC5odG1sCkBAIC0y
Nyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHJ1bkRldmljZU1vdGlvblRlc3QoKQogICAgIGRlYnVnKCIq
IFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVuZXIiKTsKICAgICBhZGRFdmVudExpc3Rl
bmVyKCJkZXZpY2Vtb3Rpb24iLCBmdW5jdGlvbigpIHsgfSk7CiAgICAgaW50ZXJuYWxzLnBvc3RU
YXNrKCgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1l
c3NhZ2UiLCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50
YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJl
LiIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhc3RDb25zb2xlTWVzc2FnZSIs
ICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBl
dmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIik7
CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogfQpAQCAtNDQsNyArNDQsNyBAQCBm
dW5jdGlvbiBydW5EZXZpY2VPcmllbnRhdGlvblRlc3QoKQogICAgIGRlYnVnKCIqIFJlZ2lzdGVy
aW5nIGRldmljZSBvcmllbnRhdGlvbiBsaXN0ZW5lciIpOwogICAgIGFkZEV2ZW50TGlzdGVuZXIo
ImRldmljZW9yaWVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IH0pOwogICAgIGludGVybmFscy5wb3N0
VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdENvbnNvbGVN
ZXNzYWdlIiwgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVu
dGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3Vy
ZS4iKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYXN0Q29uc29sZU1lc3NhZ2Ui
LCAiQmxvY2tlZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24g
ZXZlbnQgbGlzdGVuZXIsIHJlYXNvbjogQnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIp
OwogICAgICAgICBydW5EZXZpY2VNb3Rpb25UZXN0KCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9u
LXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZl
bnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0
CmluZGV4IDBmYjdkN2ViZjJkODQyZDdiYjczNGFhODQzMzE4ZDg5NjgwZDQzNDYuLjBmYWQwYThl
Y2FiOGJlYzkyMWNhYmNmMWE4MmRmNDdmZTMwY2YyMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRl
eHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2Rldmlj
ZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDEw
ICsxLDExIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzc6IERldmljZSBPcmllbnRhdGlvbiBB
UEkgaXMgbm90IHN1cHBvcnRlZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBEZXZpY2UgTW90
aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IERldmlj
ZSBPcmllbnRhdGlvbiBBUEkgaXMgbm90IHN1cHBvcnRlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDI1OiBEZXZpY2UgTW90aW9uIEFQSSBpcyBub3Qgc3VwcG9ydGVkCiBUZXN0cyB0aGF0IHRyeWlu
ZyB0byBzZXQgYW4gZXZlbnQgbGlzdGVuZXIgZm9yIGRldmljZW9yaWVudGF0aW9uIGFuZCBkZXZp
Y2VvcmllbnRhdGlvbiBkb2VzIG5vdCBsb2cgYW4gZXJyb3IgaW4gc2VjdXJlIGNvbnRleHRzLgog
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJlLWNvbnRleHQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rp
b24tc2VjdXJlLWNvbnRleHQuaHRtbAppbmRleCA0ZTU0ZDExZDk5NDFlNzU4ZTAyNzUwYjg2ZDQz
ZTMyYmM5NDMzZWVlLi5mMTFhYzJmZDU4MzY1MjAwMDlkOTZjYWUxZjVmYTBiODM3ZmFiMWQ0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRp
b24tbW90aW9uLXNlY3VyZS1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1vdGlvbi1zZWN1cmUtY29udGV4dC5odG1sCkBA
IC02LDYgKzYsMTEgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRyeWluZyB0byBzZXQgYW4g
ZXZlbnQgbGlzdGVuZXIgZm9yIGRldmljZW9yaWVudGF0aW9uIGFuZCBkZXZpY2VvcmllbnRhdGlv
biBkb2VzIG5vdCBsb2cgYW4gZXJyb3IgaW4gc2VjdXJlIGNvbnRleHRzLiIpOwoganNUZXN0SXNB
c3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIGlmICh0ZXN0UnVu
bmVyLnNldFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpCisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzcyh0cnVlKTsKK30KKwogLy8gbG9jYWxob3N0IGlzIHNlY3VyZSBieSBkZWZhdWx0LgogCiBs
ZXQgbGFzdENvbnNvbGVNZXNzYWdlID0gbnVsbDsKQEAgLTE1LDE5ICsyMCwyNyBAQCBpbnRlcm5h
bHMuc2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcigobWVzc2FnZSkgPT4gewogCiBmdW5jdGlvbiBy
dW5EZXZpY2VNb3Rpb25UZXN0KCkKIHsKKyAgICBkZWJ1ZygiIik7CiAgICAgaWYgKCF3aW5kb3cu
RGV2aWNlTW90aW9uRXZlbnQpIHsKICAgICAgICAgY29uc29sZS5sb2coIkRldmljZSBNb3Rpb24g
QVBJIGlzIG5vdCBzdXBwb3J0ZWQiKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOwotICAgIGRl
YnVnKCIiKTsKLSAgICBkZWJ1ZygiKiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVy
Iik7Ci0gICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKSB7IH0p
OwotICAgIGludGVybmFscy5wb3N0VGFzaygoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlTnVsbCgi
bGFzdENvbnNvbGVNZXNzYWdlIik7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIGRlYnVn
KCIqIFJlcXVlc3RpbmcgZGV2aWNlIG1vdGlvbiBhY2Nlc3MuLi4iKTsKKyAgICBpbnRlcm5hbHMu
d2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICAgICAgRGV2aWNlTW90aW9uRXZlbnQucmVxdWVz
dFBlcm1pc3Npb24oKS50aGVuKChfcmVzdWx0KSA9PiB7CisgICAgICAgICAgICByZXN1bHQgPSBf
cmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZ3Jh
bnRlZCIpOworCisgICAgICAgICAgICBsYXN0Q29uc29sZU1lc3NhZ2UgPSBudWxsOworICAgICAg
ICAgICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG1vdGlvbiBsaXN0ZW5lciIpOworICAg
ICAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlbW90aW9uIiwgZnVuY3Rpb24oKSB7IH0p
OworICAgICAgICAgICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZU51bGwoImxhc3RDb25zb2xlTWVzc2FnZSIpOworICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQog
CkBAIC0zOSwxMiArNTIsMjAgQEAgZnVuY3Rpb24gcnVuRGV2aWNlT3JpZW50YXRpb25UZXN0KCkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGxhc3RDb25zb2xlTWVzc2FnZSA9IG51bGw7
Ci0gICAgZGVidWcoIiogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxpc3RlbmVyIik7
Ci0gICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlb3JpZW50YXRpb24iLCBmdW5jdGlvbigpIHsg
fSk7Ci0gICAgaW50ZXJuYWxzLnBvc3RUYXNrKCgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVOdWxs
KCJsYXN0Q29uc29sZU1lc3NhZ2UiKTsKLSAgICAgICAgcnVuRGV2aWNlTW90aW9uVGVzdCgpOwor
ICAgIGRlYnVnKCIqIFJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2Vzcy4uLiIpOwor
ICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoX3Jlc3VsdCkgPT4geworICAg
ICAgICAgICAgcmVzdWx0ID0gX3Jlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVzdWx0IiwgImdyYW50ZWQiKTsKKworICAgICAgICAgICAgbGFzdENvbnNvbGVNZXNz
YWdlID0gbnVsbDsKKyAgICAgICAgICAgIGRlYnVnKCIqIFJlZ2lzdGVyaW5nIGRldmljZSBvcmll
bnRhdGlvbiBsaXN0ZW5lciIpOworICAgICAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNl
b3JpZW50YXRpb24iLCBmdW5jdGlvbigpIHsgfSk7CisgICAgICAgICAgICBpbnRlcm5hbHMucG9z
dFRhc2soKCkgPT4geworICAgICAgICAgICAgICAgIHNob3VsZEJlTnVsbCgibGFzdENvbnNvbGVN
ZXNzYWdlIik7CisgICAgICAgICAgICAgICAgcnVuRGV2aWNlTW90aW9uVGVzdCgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjljODM4NGUyYzgxODY1MmYwNDVh
Y2Y0OTU1NGNiNjJlMjc5ZWVhYi4uMGI4ZTg0ZDgwNjk3NjU5YTU0MDhlY2EwN2I4MGI4NTUzMTM3
ODA4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNyw2ICs3LDcgQEAKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAog
Y29tcG9zaXRpbmcvaW9zIFsgUGFzcyBdCitmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFBhc3Mg
XQogZmFzdC9oaXN0b3J5L2lvcyBbIFBhc3MgXQogZmFzdC9zY3JvbGxpbmcvaW9zIFsgUGFzcyBd
CiBmYXN0L3ZpZXdwb3J0L2lvcyBbIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tbm9u
LXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9o
dHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLW5vbi1zZWN1cmUtY29u
dGV4dC1leHBlY3RlZC50eHQKaW5kZXggODY3NzlhZjQ2NTExMTFiMTg3MTVhNTNlN2IxMWUzYjEx
Yjk3M2ExMS4uNzgyN2FiYzJlZGMyODZjMWM2NzgxYzQ5MTllNDhkYmRhNTk5MmM5NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1v
cmllbnRhdGlvbi1tb3Rpb24tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0
aW9uLW1vdGlvbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDE1ICsxLDE1
IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDU6IEJsb2NrZWQgYXR0ZW1wdCB0byBhZGQgYSBk
ZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGxpc3RlbmVyIGJlY2F1c2UgdGhlIGJyb3dzaW5n
IGNvbnRleHQgaXMgbm90IHNlY3VyZS4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyODogQmxvY2tl
ZCBhdHRlbXB0IHRvIGFkZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIg
YmVjYXVzZSB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLgorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDQ1OiBCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBv
cmllbnRhdGlvbiBldmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5v
dCBzZWN1cmUuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjg6IEJsb2NrZWQgYXR0ZW1wdCB0byBh
ZGQgYSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246
IEJyb3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4KIFRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNl
dCBhbiBldmVudCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVu
dGF0aW9uIGxvZ3MgYW4gZXJyb3IgaW4gbm9uLXNlY3VyZSBjb250ZXh0cy4KIAogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCiAKICogUmVnaXN0ZXJpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGxp
c3RlbmVyCi1QQVNTIGxhc3RDb25zb2xlTWVzc2FnZSBpcyAiQmxvY2tlZCBhdHRlbXB0IHRvIGFk
ZCBhIGRldmljZSBtb3Rpb24gb3Igb3JpZW50YXRpb24gbGlzdGVuZXIgYmVjYXVzZSB0aGUgYnJv
d3NpbmcgY29udGV4dCBpcyBub3Qgc2VjdXJlLiIKK1BBU1MgbGFzdENvbnNvbGVNZXNzYWdlIGlz
ICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmllbnRhdGlvbiBl
dmVudCBsaXN0ZW5lciwgcmVhc29uOiBCcm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1cmUuIgog
CiAqIFJlZ2lzdGVyaW5nIGRldmljZSBtb3Rpb24gbGlzdGVuZXIKLVBBU1MgbGFzdENvbnNvbGVN
ZXNzYWdlIGlzICJCbG9ja2VkIGF0dGVtcHQgdG8gYWRkIGEgZGV2aWNlIG1vdGlvbiBvciBvcmll
bnRhdGlvbiBsaXN0ZW5lciBiZWNhdXNlIHRoZSBicm93c2luZyBjb250ZXh0IGlzIG5vdCBzZWN1
cmUuIgorUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgIkJsb2NrZWQgYXR0ZW1wdCB0byBhZGQg
YSBkZXZpY2UgbW90aW9uIG9yIG9yaWVudGF0aW9uIGV2ZW50IGxpc3RlbmVyLCByZWFzb246IEJy
b3dzaW5nIGNvbnRleHQgaXMgbm90IHNlY3VyZS4iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9odHRwL3Rlc3RzL2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1j
b250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3Rlc3Rz
L2V2ZW50cy9kZXZpY2Utb3JpZW50YXRpb24tbW90aW9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVk
LnR4dAppbmRleCAzMWI4NWY1ZDdkNDVmMzdmOWQ2YjE2NWY2NzM3ZGZlNTkyMmVkZjVjLi40NGZj
MThmODk5ZTMyOTM0NTdkMDhiY2EzZmQ2NmIyYjkwNmNhYzAzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvaHR0cC90ZXN0cy9ldmVudHMvZGV2aWNlLW9yaWVudGF0aW9uLW1v
dGlvbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL2h0dHAvdGVzdHMvZXZlbnRzL2RldmljZS1vcmllbnRhdGlvbi1tb3Rpb24tc2VjdXJl
LWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDE2IEBACitSZWNlaXZlZCBkZXZpY2Ug
b3JpZW50YXRpb24gJiBtb3Rpb24gYWNjZXNzIHJlcXVlc3QgZm9yIHNlY3VyaXR5IG9yaWdpbiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIi4KIFRlc3RzIHRoYXQgdHJ5aW5nIHRvIHNldCBhbiBldmVu
dCBsaXN0ZW5lciBmb3IgZGV2aWNlb3JpZW50YXRpb24gYW5kIGRldmljZW9yaWVudGF0aW9uIGRv
ZXMgbm90IGxvZyBhbiBlcnJvciBpbiBzZWN1cmUgY29udGV4dHMuCiAKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KIAogCisqIFJlcXVlc3RpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGFjY2Vzcy4u
LgorUEFTUyByZXN1bHQgaXMgImdyYW50ZWQiCiAqIFJlZ2lzdGVyaW5nIGRldmljZSBvcmllbnRh
dGlvbiBsaXN0ZW5lcgogUEFTUyBsYXN0Q29uc29sZU1lc3NhZ2UgaXMgbnVsbAogCisqIFJlcXVl
c3RpbmcgZGV2aWNlIG1vdGlvbiBhY2Nlc3MuLi4KK1BBU1MgcmVzdWx0IGlzICJncmFudGVkIgog
KiBSZWdpc3RlcmluZyBkZXZpY2UgbW90aW9uIGxpc3RlbmVyCiBQQVNTIGxhc3RDb25zb2xlTWVz
c2FnZSBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>