<?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>96894</bug_id>
          
          <creation_ts>2012-09-16 22:56:50 -0700</creation_ts>
          <short_desc>Add DeviceController base-class to remove duplication of DeviceXXXControler</short_desc>
          <delta_ts>2012-11-16 20:52:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100856</dependson>
          <blocked>92837</blocked>
    
    <blocked>97630</blocked>
    
    <blocked>102578</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kihong Kwon">kihong.kwon</reporter>
          <assigned_to name="Kihong Kwon">kihong.kwon</assigned_to>
          <cc>abarth</cc>
    
    <cc>cdumez</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>mifenton</cc>
    
    <cc>morrita</cc>
    
    <cc>peter</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vimff0</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>721687</commentid>
    <comment_count>0</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-16 22:56:50 -0700</bug_when>
    <thetext>DeviceOrientationController, DeviceMotionContoller and DeviceProximityController have almost same logic.
Therefore we can remove duplication in them by DeviceController base-class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721695</commentid>
    <comment_count>1</comment_count>
      <attachid>164340</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-16 23:13:53 -0700</bug_when>
    <thetext>Created attachment 164340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721713</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-17 00:05:45 -0700</bug_when>
    <thetext>There was some discussion of this patch in https://bugs.webkit.org/show_bug.cgi?id=93597</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724146</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-09-19 21:59:00 -0700</bug_when>
    <thetext>Could you set the blocking bug correctly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724149</commentid>
    <comment_count>4</comment_count>
      <attachid>164340</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-09-19 22:05:47 -0700</bug_when>
    <thetext>Comment on attachment 164340
Patch

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

I think the root source of (seemingly unnecessary) complexity is the responsibility assignment between client and the controller.
It smells possible wrong design if we see client creating an event object.

Can we eliminate preservedEvent() and hasPreservedEvent() by moving the logic to the controller?
That would simplify the interaction between controller and client. 
Since there is no client implementation available for now, it&apos;s hard to see whether this complexity is really necessary.
And I expect it isn&apos;t. 

What do you think?

&gt; Source/WebCore/page/DeviceController.cpp:39
&gt; +    int isEmpty = m_listeners.size();

What does this mean?
- Why is &quot;isEmpty&quot; int not bool?
- Why non-empty listener vector implies isEmpty?

&gt; Source/WebCore/page/DeviceController.cpp:41
&gt; +    if (m_listeners.find(window) == m_listeners.end())

You can just add it. That&apos;s how set works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724332</commentid>
    <comment_count>5</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-20 03:02:58 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Could you set the blocking bug correctly?
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724354</commentid>
    <comment_count>6</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-20 03:18:13 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 164340 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164340&amp;action=review
&gt; 
&gt; I think the root source of (seemingly unnecessary) complexity is the responsibility assignment between client and the controller.
&gt; It smells possible wrong design if we see client creating an event object.
&gt; 
&gt; Can we eliminate preservedEvent() and hasPreservedEvent() by moving the logic to the controller?
&gt; That would simplify the interaction between controller and client. 
&gt; Since there is no client implementation available for now, it&apos;s hard to see whether this complexity is really necessary.
&gt; And I expect it isn&apos;t. 
&gt; 
&gt; What do you think?
It&apos;s better. I will change this like yours.

&gt; 
&gt; &gt; Source/WebCore/page/DeviceController.cpp:39
&gt; &gt; +    int isEmpty = m_listeners.size();
&gt; 
&gt; What does this mean?
&gt; - Why is &quot;isEmpty&quot; int not bool?
&gt; - Why non-empty listener vector implies isEmpty?
I will change to bool and use isEmpty() of Set.
And I think wasEmpty is more reasonable name in this case.

&gt; 
&gt; &gt; Source/WebCore/page/DeviceController.cpp:41
&gt; &gt; +    if (m_listeners.find(window) == m_listeners.end())
&gt; 
&gt; You can just add it. That&apos;s how set works.
You&apos;re right. I need to change this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724393</commentid>
    <comment_count>7</comment_count>
      <attachid>164886</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-20 03:57:33 -0700</bug_when>
    <thetext>Created attachment 164886
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724395</commentid>
    <comment_count>8</comment_count>
      <attachid>164886</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-09-20 04:12:10 -0700</bug_when>
    <thetext>Comment on attachment 164886
Patch

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

I thought we need to clear DeviceController::m_event in some timing but I couldn&apos;t find such a location.
Don&apos;t we need to clear it?

&gt; Source/WebCore/page/DeviceController.cpp:34
&gt; +    , m_event(0)

We don&apos;t need this. RefPtr does this for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724436</commentid>
    <comment_count>9</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-20 05:09:59 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 164886 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164886&amp;action=review
&gt; 
&gt; I thought we need to clear DeviceController::m_event in some timing but I couldn&apos;t find such a location.
&gt; Don&apos;t we need to clear it?
Yes, we need it.

&gt; 
&gt; &gt; Source/WebCore/page/DeviceController.cpp:34
&gt; &gt; +    , m_event(0)
&gt; 
&gt; We don&apos;t need this. RefPtr does this for you.
I will remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725057</commentid>
    <comment_count>10</comment_count>
      <attachid>165032</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-20 18:36:38 -0700</bug_when>
    <thetext>Created attachment 165032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727298</commentid>
    <comment_count>11</comment_count>
      <attachid>165032</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-09-24 22:48:15 -0700</bug_when>
    <thetext>Comment on attachment 165032
Patch

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

I&apos;m sorry but I don&apos;t understand the underlying event lifecycle and why we need m_event.
Could you explain the whole design briefly or drop me a link if you have?
Reviewing this patch without understanding the interaction between WebKit layer is like blind man touching an elephant.

Thanks in advance.

&gt; Source/WebCore/page/DeviceController.cpp:70
&gt; +    m_event.clear();

Really?
This means m_event essentially never goes back null once it gets being set since we re-set m_event just after it is cleared.

&gt; Source/WebCore/page/DeviceController.cpp:93
&gt; +        listenerVector[i]-&gt;dispatchEvent(m_event);

You shouldn&apos;t dispatch same event object for different DOMWidows object
since its JavaScript object can be re-used and it can result a possible information leak across different domain.
We should create a fresh event for each window instead.

Basically, passing Event objects from WebKit layer isn&apos;t good idea. Event is WebCore concept and should be live inside WebCore.
For UI related event, WebKit has a low-level, &quot;PlatformEvent&quot; class for WebKit layer abstraction. We might need similar idea here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727300</commentid>
    <comment_count>12</comment_count>
      <attachid>165032</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-24 22:52:09 -0700</bug_when>
    <thetext>Comment on attachment 165032
Patch

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

&gt; Source/WebCore/page/DeviceController.cpp:73
&gt; +    copyToVector(m_listeners, listenerVector);

Why copy to a Vector? You could iterate over m_listeners directly.

&gt; Source/WebCore/page/DeviceController.cpp:88
&gt; +    copyToVector(m_lastEventListeners, listenerVector);

Why copy to a Vector? You could iterate over m_lastEventListeners directly.

&gt; Source/WebCore/page/DeviceController.h:41
&gt; +    void removeAllDeviceEventListener(DOMWindow*);

removeAllDeviceEventListeners() ? (plural)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727327</commentid>
    <comment_count>13</comment_count>
      <attachid>165032</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2012-09-24 23:31:19 -0700</bug_when>
    <thetext>Comment on attachment 165032
Patch

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

(drive-by comments)

&gt; Source/WebCore/page/DeviceClient.h:7
&gt; + *  This library is free software; you can redistribute it and/or
&gt; + *  modify it under the terms of the GNU Library General Public
&gt; + *  License as published by the Free Software Foundation; either
&gt; + *  version 2 of the License, or (at your option) any later version.

My copy of WebKit Committers Guideline (as of Sep 2010) says all WebKit code
must be governed by a BSD-style licence or LGPL 2.1. It also says (L)GPL 3.0
is NOT acceptable.

Your license statement looks like LGPL 2.0, which should be unacceptable.
I guess the clause &quot;or (at your option) any later version&quot; is also unacceptable.

Please use one of the &quot;safe&quot; licences listed above.

(I think there&apos;s an agreement that the BSD-style license is recommended for new
 files, but my memory may be wrong.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728209</commentid>
    <comment_count>14</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-25 22:55:31 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 165032 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=165032&amp;action=review
&gt; 
&gt; I&apos;m sorry but I don&apos;t understand the underlying event lifecycle and why we need m_event.

Basic idea of m_event is from lastOrientation of legacy DeviceOrientaionController.
If there is an event already fired when addDeviceEventListener is called from DOMWindow::addEventListener, we can fire an event for the listener using preserved event.(This can eliminate response time delaying)
IMHO, this is useful functionality because we can fire an event immediately without any delay, otherwise we don&apos;t guarantee when device event is fired.

&gt; Could you explain the whole design briefly or drop me a link if you have?
&gt; Reviewing this patch without understanding the interaction between WebKit layer is like blind man touching an elephant.

Here is the DeviceProximityController implementation using DeviceController.
https://bugs.webkit.org/attachment.cgi?id=165729&amp;action=review

&gt; 
&gt; &gt; Source/WebCore/page/DeviceController.cpp:93
&gt; &gt; +        listenerVector[i]-&gt;dispatchEvent(m_event);
&gt; 
&gt; You shouldn&apos;t dispatch same event object for different DOMWidows object
&gt; since its JavaScript object can be re-used and it can result a possible information leak across different domain.
&gt; We should create a fresh event for each window instead.

Actually, all attributes of device events are readonly, therefore if we use same event object, there is no way to overwrite or modify an event data.
In addition, we already use an event like this in the Device[Orientation/Motion]Controller.

&gt; 
&gt; Basically, passing Event objects from WebKit layer isn&apos;t good idea. Event is WebCore concept and should be live inside WebCore.
&gt; For UI related event, WebKit has a low-level, &quot;PlatformEvent&quot; class for WebKit layer abstraction. We might need similar idea here.

You are right. As you can see in the Bug 97630, we don&apos;t make an event in the WebKit layer. We generate an event in the WebCore.

Thank you for your reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728232</commentid>
    <comment_count>15</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-09-25 23:20:03 -0700</bug_when>
    <thetext>As we talked at IRC, this patch could be a refactoring which pulls 
DeviceController superclass up from DeviceOrientationController.
Then the mysterious timer usage will be explained well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744028</commentid>
    <comment_count>16</comment_count>
      <attachid>169127</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-10-17 02:03:08 -0700</bug_when>
    <thetext>Created attachment 169127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744065</commentid>
    <comment_count>17</comment_count>
      <attachid>169127</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-17 02:41:34 -0700</bug_when>
    <thetext>Comment on attachment 169127
Patch

Attachment 169127 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14424010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744097</commentid>
    <comment_count>18</comment_count>
      <attachid>169127</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-17 03:12:09 -0700</bug_when>
    <thetext>Comment on attachment 169127
Patch

Attachment 169127 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14400386</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744108</commentid>
    <comment_count>19</comment_count>
      <attachid>169127</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 03:26:52 -0700</bug_when>
    <thetext>Comment on attachment 169127
Patch

Attachment 169127 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14400388

New failing tests:
inspector/device-orientation-success.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746216</commentid>
    <comment_count>20</comment_count>
      <attachid>169599</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-10-19 04:42:57 -0700</bug_when>
    <thetext>Created attachment 169599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746217</commentid>
    <comment_count>21</comment_count>
      <attachid>169599</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 04:48:00 -0700</bug_when>
    <thetext>Comment on attachment 169599
Patch

Attachment 169599 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14456466</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746221</commentid>
    <comment_count>22</comment_count>
      <attachid>169599</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-19 04:51:27 -0700</bug_when>
    <thetext>Comment on attachment 169599
Patch

Attachment 169599 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14457412</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746222</commentid>
    <comment_count>23</comment_count>
      <attachid>169599</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-19 04:51:54 -0700</bug_when>
    <thetext>Comment on attachment 169599
Patch

Attachment 169599 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14463444</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746312</commentid>
    <comment_count>24</comment_count>
      <attachid>169599</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 08:27:18 -0700</bug_when>
    <thetext>Comment on attachment 169599
Patch

Attachment 169599 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14456525</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747222</commentid>
    <comment_count>25</comment_count>
      <attachid>169829</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-10-21 21:57:50 -0700</bug_when>
    <thetext>Created attachment 169829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747273</commentid>
    <comment_count>26</comment_count>
      <attachid>169829</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-10-22 00:36:36 -0700</bug_when>
    <thetext>Comment on attachment 169829
Patch

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

Almost looks good. I added some small points.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Add DeviceController base-class for DeviceOrientationController.

This is better to be explained as &quot;extracted&quot; . See http://refactoring.com/catalog/extractSuperclass.html

&gt; Source/WebCore/ChangeLog:63
&gt; +

Let&apos;s have per-file comment where it is appropriate. Apparently this is a big change and there are some non-trivial modificaitons like Document.cpp

&gt; Source/WebCore/dom/DeviceOrientationController.cpp:42
&gt; +    static_cast&lt;DeviceOrientationClient*&gt;(m_client)-&gt;setController(this);

Let&apos;s define deviceOriengationClient()  to encapsulate these down cast.
Ideally we could have some way to check the underlying client type, but that can be done in separate change.

&gt; Source/WebCore/dom/Document.cpp:11
&gt; + * Copyright (C) 2012 Samsung Electronics. All rights reserved.

I&apos;d recommend not to do this unless you change the significant part of the file.

&gt; Source/WebCore/dom/Document.cpp:-2184
&gt; -    if (DeviceOrientationController* controller = DeviceOrientationController::from(page()))

Why can we remove this? That is worth mentioning in the ChangeLog.

&gt; Source/WebCore/dom/Document.cpp:-2200
&gt; -    if (DeviceOrientationController* controller = DeviceOrientationController::from(page()))

Ditto.

&gt; Source/WebCore/page/DOMWindow.cpp:4
&gt; + * Copyright (C) 2012 Samsung Electronics. All rights reserved.

Ditto.

&gt; Source/WebCore/page/DeviceController.cpp:2
&gt; + * Copyright (C) 2012 Samsung Electronics. All rights reserved.

I&apos;d recommend to leave original copyright holder of the original file.

&gt; Source/WebCore/page/DeviceController.h:2
&gt; + * Copyright (C) 2012 Samsung Electronics. All rights reserved.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747378</commentid>
    <comment_count>27</comment_count>
      <attachid>169829</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-10-22 03:19:36 -0700</bug_when>
    <thetext>Comment on attachment 169829
Patch

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

Thank you for your comments.

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Add DeviceController base-class for DeviceOrientationController.
&gt; 
&gt; This is better to be explained as &quot;extracted&quot; . See http://refactoring.com/catalog/extractSuperclass.html

It&apos;will be changed.

&gt;&gt; Source/WebCore/ChangeLog:63
&gt;&gt; +
&gt; 
&gt; Let&apos;s have per-file comment where it is appropriate. Apparently this is a big change and there are some non-trivial modificaitons like Document.cpp

It&apos;will be changed.

&gt;&gt; Source/WebCore/dom/DeviceOrientationController.cpp:42
&gt;&gt; +    static_cast&lt;DeviceOrientationClient*&gt;(m_client)-&gt;setController(this);
&gt; 
&gt; Let&apos;s define deviceOriengationClient()  to encapsulate these down cast.
&gt; Ideally we could have some way to check the underlying client type, but that can be done in separate change.

I will add deviceOrientationClient().
And if we need type checking during implement other features(like device motion events), I will add it.

&gt;&gt; Source/WebCore/dom/Document.cpp:11
&gt;&gt; + * Copyright (C) 2012 Samsung Electronics. All rights reserved.
&gt; 
&gt; I&apos;d recommend not to do this unless you change the significant part of the file.

OK.

&gt;&gt; Source/WebCore/dom/Document.cpp:-2184
&gt;&gt; -    if (DeviceOrientationController* controller = DeviceOrientationController::from(page()))
&gt; 
&gt; Why can we remove this? That is worth mentioning in the ChangeLog.

I will do that.

&gt;&gt; Source/WebCore/page/DeviceController.cpp:2
&gt;&gt; + * Copyright (C) 2012 Samsung Electronics. All rights reserved.
&gt; 
&gt; I&apos;d recommend to leave original copyright holder of the original file.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754951</commentid>
    <comment_count>28</comment_count>
      <attachid>171580</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-10-30 21:51:09 -0700</bug_when>
    <thetext>Created attachment 171580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755125</commentid>
    <comment_count>29</comment_count>
      <attachid>171580</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-10-31 03:56:36 -0700</bug_when>
    <thetext>Comment on attachment 171580
Patch

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

looks god.

&gt; Source/WebCore/loader/EmptyClients.h:576
&gt; +    virtual void startUpdating() { }

Use OVERRIDE here.

&gt; Source/WebCore/loader/EmptyClients.h:577
&gt; +    virtual void stopUpdating() { }

DItto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755163</commentid>
    <comment_count>30</comment_count>
      <attachid>171619</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-10-31 04:48:24 -0700</bug_when>
    <thetext>Created attachment 171619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755166</commentid>
    <comment_count>31</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-10-31 04:51:42 -0700</bug_when>
    <thetext>Thank you so much for reviewing, abarth and morrita.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755196</commentid>
    <comment_count>32</comment_count>
      <attachid>171619</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-31 05:56:14 -0700</bug_when>
    <thetext>Comment on attachment 171619
Patch

Clearing flags on attachment: 171619

Committed r133016: &lt;http://trac.webkit.org/changeset/133016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755197</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-31 05:56:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755278</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-31 07:16:45 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 100856</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755436</commentid>
    <comment_count>35</comment_count>
      <attachid>171619</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-31 10:28:11 -0700</bug_when>
    <thetext>Comment on attachment 171619
Patch

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

&gt; Source/WebCore/page/DeviceController.cpp:83
&gt; +    Vector&lt;DOMWindow*&gt; listenerVector;
&gt; +    copyToVector(m_listeners, listenerVector);
&gt; +    for (size_t i = 0; i &lt; listenerVector.size(); ++i) {
&gt; +        if (!listenerVector[i]-&gt;document()-&gt;activeDOMObjectsAreSuspended()
&gt; +            &amp;&amp; !listenerVector[i]-&gt;document()-&gt;activeDOMObjectsAreStopped())
&gt; +        listenerVector[i]-&gt;dispatchEvent(event);
&gt; +    }

Is it possible that these DOMWindow* become garbage during this iteration?  We might want to change to Vector&lt;RefPtr&lt;DOMWindow&gt; &gt; here and then null-check listenerVector[i]-&gt;document() in each iteration.

&gt; Source/WebCore/page/DeviceController.cpp:92
&gt; +    Vector&lt;DOMWindow*&gt; listenerVector;

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755438</commentid>
    <comment_count>36</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-31 10:28:38 -0700</bug_when>
    <thetext>Other than that one issue, this is a big improvement over the earlier patches.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755868</commentid>
    <comment_count>37</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-10-31 21:58:05 -0700</bug_when>
    <thetext>I missed inspector related statement in the DeviceOrientationController.cpp
It&apos;s fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755955</commentid>
    <comment_count>38</comment_count>
      <attachid>171787</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-11-01 00:27:41 -0700</bug_when>
    <thetext>Created attachment 171787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755962</commentid>
    <comment_count>39</comment_count>
      <attachid>171787</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-11-01 00:35:09 -0700</bug_when>
    <thetext>Comment on attachment 171787
Patch

I got r+ from morrita this, but I think I need to confirm this patch one more time, because this patch is changed little bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756042</commentid>
    <comment_count>40</comment_count>
      <attachid>171787</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-01 03:29:08 -0700</bug_when>
    <thetext>Comment on attachment 171787
Patch

r=me again seeing that adam&apos;s comment is addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756046</commentid>
    <comment_count>41</comment_count>
      <attachid>171787</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-01 03:38:26 -0700</bug_when>
    <thetext>Comment on attachment 171787
Patch

Clearing flags on attachment: 171787

Committed r133143: &lt;http://trac.webkit.org/changeset/133143&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756047</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-01 03:38:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756197</commentid>
    <comment_count>43</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-11-01 07:11:58 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; All reviewed patches have been landed.  Closing bug.

This patch seems to be causing a failure in content_browsertests on at least Linux and MacOS 10.6:

DeviceOrientationBrowserTest.BasicTest: 
[25419:25428:1101/063250:4481937548:ERROR:object_proxy.cc(608)] Failed to get name owner. Got org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name &apos;org.freedesktop.NetworkManager&apos;: no such name
[25419:25439:1101/063250:4482017847:WARNING:proxy_service.cc(885)] PAC support disabled because there is no system implementation
Killed (timed out).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756226</commentid>
    <comment_count>44</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-11-01 07:26:40 -0700</bug_when>
    <thetext>Reverted r133143 for reason:

Causing content_browsertests failures

Committed r133167: &lt;http://trac.webkit.org/changeset/133167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767685</commentid>
    <comment_count>45</comment_count>
      <attachid>171787</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-11-14 21:24:08 -0800</bug_when>
    <thetext>Comment on attachment 171787
Patch

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

There has been a bug in this patch, it will be fixed.

&gt; Source/WebCore/page/DeviceController.cpp:54
&gt; +    if (!wasEmpty)

&quot;!&quot; has to be eliminated to call startUpdating().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767688</commentid>
    <comment_count>46</comment_count>
      <attachid>174336</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-11-14 21:28:42 -0800</bug_when>
    <thetext>Created attachment 174336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769052</commentid>
    <comment_count>47</comment_count>
      <attachid>174336</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-11-16 02:14:10 -0800</bug_when>
    <thetext>Comment on attachment 174336
Patch

This is already reviewed.
But, there is a bug which makes a regression in the content_browsertests.
I only eliminate &quot;!&quot; from DeviceController::addDeviceEventListener() for fixing regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769055</commentid>
    <comment_count>48</comment_count>
      <attachid>174336</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 02:20:16 -0800</bug_when>
    <thetext>Comment on attachment 174336
Patch

Clearing flags on attachment: 174336

Committed r134918: &lt;http://trac.webkit.org/changeset/134918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769056</commentid>
    <comment_count>49</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 02:20:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164340</attachid>
            <date>2012-09-16 23:13:53 -0700</date>
            <delta_ts>2012-09-20 03:57:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96894-20120917151318.patch</filename>
            <type>text/plain</type>
            <size>17442</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWU0NTQ5MTczZGE1ZTIx
ZDZjYzI4YmNiYzlmOTQ3NWNkOWIwYjZjNS4uOTgyYWVmNjI4NTkxNGIwOGM5YzU5YzZlZTkxMDc5
NDU4ZWY4NzUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA5LTE2ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENv
bnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGV2aWNlQ29udHJvbGxlciBiYXNlLWNsYXNzIGZvciBzb29uLXRvLWJlLWFkZGVkIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIsCisgICAgICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciBh
bmQgUHJveGltaXR5Q29udHJvbGxlci4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2aWNlQ2xpZW50KToKKyAgICAgICAgKiBwYWdl
L0RldmljZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6RGV2aWNlQ29udHJvbGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjphZGREZXZpY2VFdmVudExpc3RlbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OnJlbW92ZURldmljZUV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsRGV2aWNl
RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpkaXNw
YXRjaERldmljZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmZp
cmVEZXZpY2VFdmVudCk6CisgICAgICAgICogcGFnZS9EZXZpY2VDb250cm9sbGVyLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6On5EZXZpY2VDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZUNvbnRyb2xsZXI6OmNsaWVudCk6CisKIDIwMTItMDktMTYgIEphbWVzIFJvYmlu
c29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaHJvbWl1bSB3aW4gYnVpbGQg
Zml4IC0gbGlzdGluZyBhIGZpbGUgdGhhdCBkb2Vzbid0IGV4aXN0IGlzIGEgZmF0YWwgZXJyb3Jz
IGluIHRoZSBtc3ZzIGd5cCBnZW5lcmF0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDkyODEy
M2MyOWRjNGZiZThlMjFjMDQyYjk2NWVmOGQwNGJhZWFjZTIuLjQxZWMwMTI2MjlmZWMwODhkZjhk
ZWM1MDQ4OWQ3ODA0MmE1NWMyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjc1LDYgKzE2
NzUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCiAgICAgcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCiAgICAgcGFnZS9Dcnlw
dG8uY3BwCisgICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcAogICAgIHBhZ2UvRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmNwcAogICAgIHBhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuY3BwCiAgICAgcGFn
ZS9ET01TZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxZjI0
YjczNTViNjM3MmM4ZjIwMzdiYjVmMDJjMmQ2ZTM0NWU1MDVkLi5jZmQyNzYwMTc4ODc5NmYxMDIw
YjZlNWMwNTY2NTAzM2FmODhhMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTM5NDMsNiArMzk0Myw5IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGFnZS9Db29yZGluYXRlcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2
aWNlQ2xpZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2Vj
dXJpdHlQb2xpY3kuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGU2NWFhYmNjZjNhN2U4OGQwMzE1MTNj
YjA4MjU0YjljZDVmMjhiYTMuLjcyYmMzMmFhMDExM2ZkNTg3NTMyMjljMzEyMTU3ZWZjNTI0NGIy
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQpAQCAtODU2LDYgKzg1Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBh
Z2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBcCiAgICAgcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwIFwKICAgICBwYWdlL0NyeXB0by5jcHAgXAorICAgIHBhZ2UvRGV2aWNlQ29udHJv
bGxlci5jcHAgXAogICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCBcCiAgICAgcGFn
ZS9ET01TZWxlY3Rpb24uY3BwIFwKICAgICBwYWdlL0RPTVRpbWVyLmNwcCBcCkBAIC0xOTc0LDYg
KzE5NzUsOCBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5o
IFwKICAgICBwYWdlL0NvbnRleHRNZW51UHJvdmlkZXIuaCBcCiAgICAgcGFnZS9Db29yZGluYXRl
cy5oIFwKKyAgICBwYWdlL0RldmljZUNsaWVudC5oIFwKKyAgICBwYWdlL0RldmljZUNvbnRyb2xs
ZXIuaCBcCiAgICAgcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaCBcCiAgICAgcGFnZS9ET01T
ZWxlY3Rpb24uaCBcCiAgICAgcGFnZS9ET01UaW1lci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0
MDg1MzExOWQ0NjJjY2FlOGYzMGIyMmE0ZWY5NmQ1YzIxYTUyYzlmLi5hNGRlMzMzZDNhN2ExZjc3
Y2RjOTkzNzAwMGE5MjEwMDYxZDFhOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMDk1LDYgKzMw
OTUsOSBAQAogICAgICAgICAgICAgJ3BhZ2UvQ29udGV4dE1lbnVQcm92aWRlci5oJywKICAgICAg
ICAgICAgICdwYWdlL0NyeXB0by5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvQ3J5cHRvLmgnLAor
ICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlQ2xpZW50LmgnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2
aWNlQ29udHJvbGxlci5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlQ29udHJvbGxlci5o
JywKICAgICAgICAgICAgICdwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgnLAogICAgICAgICAgICAgJ3BhZ2Uv
RE9NU2VjdXJpdHlQb2xpY3kuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggMDYyNzRiOTRiZmM5MDM1NTMzYTg2MTRkZTE3MjZjYzcxNTA1
Y2MyMS4uZGJiNzRhYWMwMWE2ZWExNjMxNDRkYzE3YmU4ZDk2ODA4OGJkNzU5YiAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2OTU1LDYgKzI2
OTU1LDE4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBhZ2VcRGV2aWNlQ2xpZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2aWNlQ29udHJvbGxlci5jcHAiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2aWNlQ29udHJv
bGxlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGE1ZDZkNzQ3NWY3ODZkODhhMTNlODFjMmZmOWRmNWNhODExZWQ3MDAuLmQ2NTlmNmViYWMwYzE3
MGRjYzIyYjgxOTZkMWNjMDk1Yzg0ZDZmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU4NTQsNiArNTg1NCw5IEBACiAJCUNB
RTlGOTBGMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBEMTQ2NDQxRjAw
MEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLzsgfTsKIAkJQ0FFOUY5MTAxNDY0
NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBD
U1NBc3BlY3RSYXRpb1ZhbHVlLmggKi87IH07CiAJCUNBRTlGOTEwMTQ2NDQxRjAwMEMyNDVCMSAv
KiBDU1NWYXJpYWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5o
ICovOyB9OworCQlDQ0MyQjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMDE1RjYx
MzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi87IH07CisJCUNDQzJCNTE1MTVGNjEzMDYw
MDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VD
b250cm9sbGVyLmNwcCAqLzsgfTsKKwkJQ0NDMkI1MTYxNUY2MTMwNjAwNDhDREQ2IC8qIERldmlj
ZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi87IH07
CiAJCUNEMTI3REVEMTRGMzA5N0QwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVC
MTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLzsgfTsKIAkJ
Q0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0RjMw
OTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDI3RjZFNTE0NTc2ODVBMDA3ODIw
N0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTIxNDU3Njc1ODAwNzgyMDdEIC8qIEpTTWVkaWFDb250
cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTEzMTg5LDYgKzEzMTkyLDkgQEAKIAkJQ0FFOUY5MEQxNDY0
NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RS
YXRpb1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0FzcGVjdFJh
dGlvVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEUxNDY0NDFG
MDAwQzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ1NTVmFyaWFibGVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDQ0MyQjUxMTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VDb250cm9sbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0NDMkI1MTIxNUY2MTMwNjAwNDhD
REQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGV2aWNlQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEy
N0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdl
YkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEMjdGNkUwMTQ1NzVDMUIwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IE1lZGlhQ29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTc4NSw2ICsxNTc5MSw5IEBACiAJCQkJOTc1Q0EyODcxMzAzNjVGODAwRTk5QUQ5IC8qIENy
eXB0by5jcHAgKi8sCiAJCQkJOTc1Q0EyODgxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5oICov
LAogCQkJCTk3NUNBMjg5MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaWRsICovLAorCQkJCUND
QzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCAqLywKKwkJCQlDQ0MyQjUx
MTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgKi8sCisJCQkJQ0NDMkI1
MTIxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLywKIAkJCQlDRDM3QjM3
NDE1QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAqLywKIAkJCQlD
RDM3QjM3NTE1QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmggKi8sCiAJ
CQkJMkQ5QTI0NkExNUI5QkJERDAwRDM0NTI3IC8qIERPTVNlY3VyaXR5UG9saWN5LmNwcCAqLywK
QEAgLTIyNjQ1LDYgKzIyNjU0LDggQEAKIAkJCQk5MzMwOURFMTA5OUU2NDkyMDA1NkU1ODEgLyog
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQxNjYwQTUxMzc4
N0M2RDAwMUZGQTdCIC8qIERlbm9ybWFsRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
QzlBQkY5MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0NDMkI1MTQxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQ0NDMkI1MTYxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTU3MTIwQTVEMDYwMERDMDJBMCAvKiBE
ZXZpY2VNb3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTU5MTIwQTVEMDYw
MERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MUZCMUE1QjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNjIxOSw2ICsyNjIzMCw3IEBACiAJCQkJOTMzMDlEREUwOTlFNjQ5MjAwNTZFNTgx
IC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMz
MDlERTAwOTlFNjQ5MjAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTdDOUFCRjgxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJD
b250cm9sLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNDQzJCNTE1MTVGNjEzMDYwMDQ4Q0RENiAv
KiBEZXZpY2VDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRkIxQTU4MTIwQTVE
MDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTMxRkIxQTVBMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTMxRkIxQTVDMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGV2aWNlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFjZTQzYjIyNDQ0MzE1YTJiMDg2MjhhMThmMzZlNmI5OWZhMGU2YmYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oCkBAIC0wLDAgKzEs
NDEgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ2xpZW50X2gKKyNk
ZWZpbmUgRGV2aWNlQ2xpZW50X2gKKworI2luY2x1ZGUgPEV2ZW50Lmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VDbGll
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRldmljZUNsaWVudCgpIHsgfQorCisgICAgdmly
dHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRh
dGluZygpID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBoYXNQcmVzZXJ2ZWRFdmVudCgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RXZlbnQ+IHByZXNlcnZlZEV2ZW50KCkgY29u
c3QgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNl
Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI3N2I5NzI1M2JhM2E2ODc3NTFhNTE0NjM2NmZiNWE5ZWZkZjk2ZmIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAg
KzEsMTAzIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisj
aW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJFdmVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitE
ZXZpY2VDb250cm9sbGVyOjpEZXZpY2VDb250cm9sbGVyKERldmljZUNsaWVudCogY2xpZW50KQor
ICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV90aW1lcih0aGlzLCAmRGV2aWNlQ29udHJv
bGxlcjo6ZmlyZURldmljZUV2ZW50KQoreworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmFk
ZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaW50IGlzRW1w
dHkgPSBtX2xpc3RlbmVycy5zaXplKCk7CisKKyAgICBpZiAobV9saXN0ZW5lcnMuZmluZCh3aW5k
b3cpID09IG1fbGlzdGVuZXJzLmVuZCgpKQorICAgICAgICBtX2xpc3RlbmVycy5hZGQod2luZG93
KTsKKworICAgIGlmIChtX2NsaWVudC0+aGFzUHJlc2VydmVkRXZlbnQoKSkgeworICAgICAgICBt
X2xhc3RFdmVudExpc3RlbmVycy5hZGQod2luZG93KTsKKyAgICAgICAgaWYgKCFtX3RpbWVyLmlz
QWN0aXZlKCkpCisgICAgICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICB9CisK
KyAgICBpZiAoIWlzRW1wdHkpCisgICAgICAgIG1fY2xpZW50LT5zdGFydFVwZGF0aW5nKCk7Cit9
CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihET01X
aW5kb3cqIHdpbmRvdykKK3sKKyAgICBtX2xpc3RlbmVycy5yZW1vdmUod2luZG93KTsKKyAgICBt
X2xhc3RFdmVudExpc3RlbmVycy5yZW1vdmUod2luZG93KTsKKyAgICBpZiAobV9saXN0ZW5lcnMu
aXNFbXB0eSgpKQorICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK3ZvaWQg
RGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cq
IHdpbmRvdykKK3sKKyAgICBtX2xpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAgICBtX2xh
c3RFdmVudExpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAgICBpZiAobV9saXN0ZW5lcnMu
aXNFbXB0eSgpKQorICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK3ZvaWQg
RGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBl
dmVudCkKK3sKKyAgICBpZiAoIW1fbGlzdGVuZXJzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgVmVjdG9yPERPTVdpbmRvdyo+IGxpc3RlbmVyVmVjdG9yOworICAgIGNvcHlUb1ZlY3Rv
cihtX2xpc3RlbmVycywgbGlzdGVuZXJWZWN0b3IpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbGlzdGVuZXJWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCFsaXN0ZW5lclZl
Y3RvcltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpCisgICAg
ICAgICAgICAmJiAhbGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVj
dHNBcmVTdG9wcGVkKCkpCisgICAgICAgIGxpc3RlbmVyVmVjdG9yW2ldLT5kaXNwYXRjaEV2ZW50
KGV2ZW50KTsKKyAgICB9Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZmlyZURldmljZUV2
ZW50KFRpbWVyPERldmljZUNvbnRyb2xsZXI+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5VU0VE
KHRpbWVyLCB0aW1lciA9PSAmbV90aW1lcik7CisgICAgQVNTRVJUKG1fY2xpZW50LT5oYXNQcmVz
ZXJ2ZWRFdmVudCgpKTsKKyAgICBtX3RpbWVyLnN0b3AoKTsKKworICAgIGlmICghbV9sYXN0RXZl
bnRMaXN0ZW5lcnMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8RE9NV2lu
ZG93Kj4gbGlzdGVuZXJWZWN0b3I7CisgICAgY29weVRvVmVjdG9yKG1fbGFzdEV2ZW50TGlzdGVu
ZXJzLCBsaXN0ZW5lclZlY3Rvcik7CisgICAgbV9sYXN0RXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVyVmVjdG9yLnNpemUoKTsgKytpKSB7
CisgICAgICAgIGlmICghbGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9i
amVjdHNBcmVTdXNwZW5kZWQoKQorICAgICAgICAgICAgJiYgIWxpc3RlbmVyVmVjdG9yW2ldLT5k
b2N1bWVudCgpLT5hY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpKQorICAgICAgICBsaXN0ZW5l
clZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVudChtX2NsaWVudC0+cHJlc2VydmVkRXZlbnQoKSk7Cisg
ICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNl
Q29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4ZGRmM2ExY2JmMzBlZmNlZWY5YjRmZThhY2JjNThk
NDUzY2NkM2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNv
bnRyb2xsZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBT
YW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZu
ZGVmIERldmljZUNvbnRyb2xsZXJfaAorI2RlZmluZSBEZXZpY2VDb250cm9sbGVyX2gKKworI2lu
Y2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3
dGYvSGFzaENvdW50ZWRTZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01X
aW5kb3c7CitjbGFzcyBEZXZpY2VDbGllbnQ7CitjbGFzcyBFdmVudDsKK2NsYXNzIFBhZ2U7CisK
K2NsYXNzIERldmljZUNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgRGV2aWNlQ29udHJvbGxlcihEZXZpY2VDbGllbnQqKTsKKyAgICB+
RGV2aWNlQ29udHJvbGxlcigpIHsgfTsKKworICAgIHZvaWQgYWRkRGV2aWNlRXZlbnRMaXN0ZW5l
cihET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoRE9NV2lu
ZG93Kik7CisgICAgdm9pZCByZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyop
OworCisgICAgdm9pZCBkaXNwYXRjaERldmljZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAg
ICBib29sIGlzQWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQorICAg
IERldmljZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworcHJvdGVjdGVk
OgorICAgIHZvaWQgZmlyZURldmljZUV2ZW50KFRpbWVyPERldmljZUNvbnRyb2xsZXI+Kik7CisK
KyAgICBIYXNoQ291bnRlZFNldDxET01XaW5kb3cqPiBtX2xpc3RlbmVyczsKKyAgICBIYXNoQ291
bnRlZFNldDxET01XaW5kb3cqPiBtX2xhc3RFdmVudExpc3RlbmVyczsKKyAgICBEZXZpY2VDbGll
bnQqIG1fY2xpZW50OworICAgIFRpbWVyPERldmljZUNvbnRyb2xsZXI+IG1fdGltZXI7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VDb250cm9sbGVyX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164886</attachid>
            <date>2012-09-20 03:57:33 -0700</date>
            <delta_ts>2012-09-20 18:36:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96894-20120920195658.patch</filename>
            <type>text/plain</type>
            <size>17264</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc3ODkxNWIzNDJkODA2
NjRiYzllMzQ5MjM2OThlMzBhODNiNGJhNS4uZmVkMzRiY2IyZDc5ZGJjZjhjZDJmOGRiMGFiNGEx
OWM1ZWJmOTE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA5LTE5ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENv
bnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGV2aWNlQ29udHJvbGxlciBiYXNlLWNsYXNzIGZvciBzb29uLXRvLWJlLWFkZGVkIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIsCisgICAgICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciBh
bmQgUHJveGltaXR5Q29udHJvbGxlci4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2aWNlQ2xpZW50KToKKyAgICAgICAgKiBwYWdl
L0RldmljZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6RGV2aWNlQ29udHJvbGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjphZGREZXZpY2VFdmVudExpc3RlbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OnJlbW92ZURldmljZUV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsRGV2aWNl
RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpkaXNw
YXRjaERldmljZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmZp
cmVEZXZpY2VFdmVudCk6CisgICAgICAgICogcGFnZS9EZXZpY2VDb250cm9sbGVyLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6On5EZXZpY2VDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZUNvbnRyb2xsZXI6OmNsaWVudCk6CisKIDIwMTItMDktMTkgIERhdmlkIEdyb2dh
biAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogUHJpbnQgY29u
c29sZSB3YXJuaW5nIGFib3V0IHNldFZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNGIw
MjUwNjI5MTVhZTgwZWU5MzA1MzVjZDljMDNjMmFkZTYxMDBhYS4uMWU2ZWFhZDE1YjgyODUzNTU2
ZDZiZGQ1YmZjMDlhZjNkOTMzZGJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2NzUsNiAr
MTY3NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBv
bGljeS5jcHAKICAgICBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKICAgICBwYWdlL0Ny
eXB0by5jcHAKKyAgICBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCiAgICAgcGFnZS9EaWFnbm9z
dGljTG9nZ2luZ0tleXMuY3BwCiAgICAgcGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAKICAgICBw
YWdlL0RPTVNlbGVjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhj
YThiMjY4ZTMyNmJiZmY4N2Q3MTQ1NmY3NzQxM2E4ODY0MDc3MjYuLjM4Y2ZiMGFkMzBiOTMwODU3
NzA4MjllOGQzNWYxOTU3ODEyYWQ0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMzk0Myw2ICszOTQzLDkgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nvb3JkaW5hdGVzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9ET01T
ZWN1cml0eVBvbGljeS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNzQ2NWQ0NDA1MjZkOGE1N2ZlNzhi
MGJiNzA1OGJkN2MzMTAzMGNkOC4uYWExNGQwNDFmODc1MzAwOWYxZTc2NTc3NjdhNmUwNTVjMGU0
ZTZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC04NTYsNiArODU2LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
cGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIFwKICAgICBwYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAgXAogICAgIHBhZ2UvQ3J5cHRvLmNwcCBcCisgICAgcGFnZS9EZXZpY2VDb250
cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIFwKICAgICBw
YWdlL0RPTVNlbGVjdGlvbi5jcHAgXAogICAgIHBhZ2UvRE9NVGltZXIuY3BwIFwKQEAgLTE5NzUs
NiArMTk3Niw4IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmggXAogICAgIHBhZ2UvQ29udGV4dE1lbnVQcm92aWRlci5oIFwKICAgICBwYWdlL0Nvb3JkaW5h
dGVzLmggXAorICAgIHBhZ2UvRGV2aWNlQ2xpZW50LmggXAorICAgIHBhZ2UvRGV2aWNlQ29udHJv
bGxlci5oIFwKICAgICBwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIFwKICAgICBwYWdlL0RP
TVNlbGVjdGlvbi5oIFwKICAgICBwYWdlL0RPTVRpbWVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDRkNDNjNDE2NWJmNGYxODEwODBhY2NlYmI3MjcyZDZkYWFhYTM0Y2QuLmE3MDk4MWIwM2E2ZmMw
ZTk5YmQ3YjIyNThkNGIxY2VmZWYxNDNhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMwOTYsNiAr
MzA5Niw5IEBACiAgICAgICAgICAgICAncGFnZS9Db250ZXh0TWVudVByb3ZpZGVyLmgnLAogICAg
ICAgICAgICAgJ3BhZ2UvQ3J5cHRvLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9DcnlwdG8uaCcs
CisgICAgICAgICAgICAncGFnZS9EZXZpY2VDbGllbnQuaCcsCisgICAgICAgICAgICAncGFnZS9E
ZXZpY2VDb250cm9sbGVyLmNwcCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDb250cm9sbGVy
LmgnLAogICAgICAgICAgICAgJ3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCcsCiAgICAg
ICAgICAgICAncGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaCcsCiAgICAgICAgICAgICAncGFn
ZS9ET01TZWN1cml0eVBvbGljeS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCA3NjhkZTBkYzQ4MzI1N2QzMmMyYWEyOTUxZTAyNjRlMzY3
MTY4YTYwLi40MDEwNDBkMTQwMzIxZTg0NzczMjhkODliODJjMzQxZTVmZmFkZGY0IDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjY5NTUsNiAr
MjY5NTUsMTggQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGFnZVxEZXZpY2VDbGllbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VDb250cm9sbGVyLmNwcCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VDb250
cm9sbGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBhZ2VcRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggN2EyNWVhYTg4MTRhZDQ4NTczMzFhNmM1M2E3NjYzNjZjZDNjMjJkYy4uZDQwNjIzZjA4OGFh
YWQxYzZjMDZlYzM4MmUxNTI4Y2Y0NzIxMDE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTg1Niw2ICs1ODU2LDkgQEAKIAkJ
Q0FFOUY5MEYxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0NDFG
MDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovOyB9OwogCQlDQUU5RjkxMDE0
NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8q
IENTU0FzcGVjdFJhdGlvVmFsdWUuaCAqLzsgfTsKIAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0NUIx
IC8qIENTU1ZhcmlhYmxlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVl
LmggKi87IH07CisJCUNDQzJCNTE0MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEwMTVG
NjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCAqLzsgfTsKKwkJQ0NDMkI1MTUxNUY2MTMw
NjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmlj
ZUNvbnRyb2xsZXIuY3BwICovOyB9OworCQlDQ0MyQjUxNjE1RjYxMzA2MDA0OENERDYgLyogRGV2
aWNlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLzsg
fTsKIAkJQ0QxMjdERUQxNEYzMDk3RDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdE
RUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovOyB9Owog
CQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVBMTRG
MzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4
MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFMjE0NTc2NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNv
bnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTMxOTMsNiArMTMxOTYsOSBAQAogCQlDQUU5RjkwRDE0
NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVj
dFJhdGlvVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQXNwZWN0
UmF0aW9WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRTE0NjQ0
MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDU1NWYXJpYWJsZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZUNvbnRyb2xs
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDQ0MyQjUxMjE1RjYxMzA2MDA0
OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZXZpY2VDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
MTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyog
V2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0QyN0Y2RTAxNDU3NUMxQjAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTWVkaWFDb250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE1Nzg5LDYgKzE1Nzk1LDkgQEAKIAkJCQk5NzVDQTI4NzEzMDM2NUY4MDBFOTlBRDkgLyog
Q3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmgg
Ki8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCisJCQkJ
Q0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovLAorCQkJCUNDQzJC
NTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLywKKwkJCQlDQ0My
QjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovLAogCQkJCUNEMzdC
Mzc0MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwICovLAogCQkJ
CUNEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLywK
IAkJCQkyRDlBMjQ2QTE1QjlCQkREMDBEMzQ1MjcgLyogRE9NU2VjdXJpdHlQb2xpY3kuY3BwICov
LApAQCAtMjI2NTEsNiArMjI2NjAsOCBAQAogCQkJCTkzMzA5REUxMDk5RTY0OTIwMDU2RTU4MSAv
KiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDE2NjBBNTEz
Nzg3QzZEMDAxRkZBN0IgLyogRGVub3JtYWxEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTdDOUFCRjkxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDQ0MyQjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDQ0MyQjUxNjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFBNTcxMjBBNUQwNjAwREMwMkEwIC8q
IERldmljZU1vdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFBNTkxMjBBNUQw
NjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTMxRkIxQTVCMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI2MjI2LDYgKzI2MjM3LDcgQEAKIAkJCQk5MzMwOURERTA5OUU2NDkyMDA1NkU1
ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzMwOURFMDA5OUU2NDkyMDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBN0M5QUJGODEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtl
ckNvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2
IC8qIERldmljZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNTgxMjBB
NUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlv
bkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EZXZpY2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODA0M2IzOTk2MzE0MDRhMzI2ZTRlNzg4Zjk2MzRhNzQ5NzI0NjUwZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmgKQEAgLTAsMCAr
MSwzOSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBEZXZpY2VDbGllbnRfaAor
I2RlZmluZSBEZXZpY2VDbGllbnRfaAorCisjaW5jbHVkZSA8RXZlbnQuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZUNs
aWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGV2aWNlQ2xpZW50KCkgeyB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVw
ZGF0aW5nKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc1VwZGF0aW5nKCkgPSAwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlQ2xpZW50X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2NjU2ZGM1MmI1
MmFjZjAxNGM5MjRhZjcwNWZiODNmY2IwMTc5ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsMTAzIEBACisvKgor
ICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNl
Q29udHJvbGxlci5oIgorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRGV2aWNl
Q2xpZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VDb250cm9sbGVy
OjpEZXZpY2VDb250cm9sbGVyKERldmljZUNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQo
Y2xpZW50KQorICAgICwgbV90aW1lcih0aGlzLCAmRGV2aWNlQ29udHJvbGxlcjo6ZmlyZURldmlj
ZUV2ZW50KQorICAgICwgbV9ldmVudCgwKQoreworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6
OmFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgYm9vbCB3
YXNFbXB0eSA9IG1fbGlzdGVuZXJzLmlzRW1wdHkoKTsKKyAgICBtX2xpc3RlbmVycy5hZGQod2lu
ZG93KTsKKworICAgIGlmIChtX2V2ZW50KSB7CisgICAgICAgIG1fbGFzdEV2ZW50TGlzdGVuZXJz
LmFkZCh3aW5kb3cpOworICAgICAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAg
ICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIH0KKworICAgIGlmICghd2FzRW1wdHkp
CisgICAgICAgIG1fY2xpZW50LT5zdGFydFVwZGF0aW5nKCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29u
dHJvbGxlcjo6cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cqIHdpbmRvdykKK3sK
KyAgICBtX2xpc3RlbmVycy5yZW1vdmUod2luZG93KTsKKyAgICBtX2xhc3RFdmVudExpc3RlbmVy
cy5yZW1vdmUod2luZG93KTsKKyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQorICAgICAg
ICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6
cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBt
X2xpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAgICBtX2xhc3RFdmVudExpc3RlbmVycy5y
ZW1vdmVBbGwod2luZG93KTsKKyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQorICAgICAg
ICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6
ZGlzcGF0Y2hEZXZpY2VFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBtX2V2
ZW50ID0gZXZlbnQ7CisgICAgaWYgKCFtX2xpc3RlbmVycy5zaXplKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIFZlY3RvcjxET01XaW5kb3cqPiBsaXN0ZW5lclZlY3RvcjsKKyAgICBjb3B5VG9W
ZWN0b3IobV9saXN0ZW5lcnMsIGxpc3RlbmVyVmVjdG9yKTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGxpc3RlbmVyVmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICghbGlzdGVu
ZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKQor
ICAgICAgICAgICAgJiYgIWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVudCgpLT5hY3RpdmVET01P
YmplY3RzQXJlU3RvcHBlZCgpKQorICAgICAgICBsaXN0ZW5lclZlY3RvcltpXS0+ZGlzcGF0Y2hF
dmVudChtX2V2ZW50KTsKKyAgICB9Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZmlyZURl
dmljZUV2ZW50KFRpbWVyPERldmljZUNvbnRyb2xsZXI+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRf
VU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1lcik7CisgICAgQVNTRVJUKG1fZXZlbnQpOwor
ICAgIG1fdGltZXIuc3RvcCgpOworCisgICAgaWYgKCFtX2xhc3RFdmVudExpc3RlbmVycy5zaXpl
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxET01XaW5kb3cqPiBsaXN0ZW5lclZl
Y3RvcjsKKyAgICBjb3B5VG9WZWN0b3IobV9sYXN0RXZlbnRMaXN0ZW5lcnMsIGxpc3RlbmVyVmVj
dG9yKTsKKyAgICBtX2xhc3RFdmVudExpc3RlbmVycy5jbGVhcigpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbGlzdGVuZXJWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCFs
aXN0ZW5lclZlY3RvcltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRl
ZCgpCisgICAgICAgICAgICAmJiAhbGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2
ZURPTU9iamVjdHNBcmVTdG9wcGVkKCkpCisgICAgICAgIGxpc3RlbmVyVmVjdG9yW2ldLT5kaXNw
YXRjaEV2ZW50KG1fZXZlbnQpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmMzMzg2Yzc0
YTRiOWZjYzU5NWZhYzhjNGIwMTdhOWJkMGVjM2M2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBEZXZpY2VDb250cm9sbGVyX2gKKyNkZWZpbmUgRGV2
aWNlQ29udHJvbGxlcl9oCisKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUg
IlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworY2xhc3MgRGV2aWNlQ2xpZW50OworY2xhc3Mg
RXZlbnQ7CitjbGFzcyBQYWdlOworCitjbGFzcyBEZXZpY2VDb250cm9sbGVyIDogcHVibGljIFN1
cHBsZW1lbnQ8UGFnZT4geworcHVibGljOgorICAgIGV4cGxpY2l0IERldmljZUNvbnRyb2xsZXIo
RGV2aWNlQ2xpZW50Kik7CisgICAgfkRldmljZUNvbnRyb2xsZXIoKSB7IH07CisKKyAgICB2b2lk
IGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Kik7CisgICAgdm9pZCByZW1vdmVEZXZp
Y2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyopOworICAgIHZvaWQgcmVtb3ZlQWxsRGV2aWNlRXZl
bnRMaXN0ZW5lcihET01XaW5kb3cqKTsKKworICAgIHZvaWQgZGlzcGF0Y2hEZXZpY2VFdmVudChQ
YXNzUmVmUHRyPEV2ZW50Pik7CisgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0dXJuICFtX2xpc3Rl
bmVycy5pc0VtcHR5KCk7IH0KKyAgICBEZXZpY2VDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50OyB9CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpcmVEZXZpY2VFdmVudChUaW1lcjxE
ZXZpY2VDb250cm9sbGVyPiopOworCisgICAgSGFzaENvdW50ZWRTZXQ8RE9NV2luZG93Kj4gbV9s
aXN0ZW5lcnM7CisgICAgSGFzaENvdW50ZWRTZXQ8RE9NV2luZG93Kj4gbV9sYXN0RXZlbnRMaXN0
ZW5lcnM7CisgICAgRGV2aWNlQ2xpZW50KiBtX2NsaWVudDsKKyAgICBUaW1lcjxEZXZpY2VDb250
cm9sbGVyPiBtX3RpbWVyOworICAgIFJlZlB0cjxFdmVudD4gbV9ldmVudDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZUNvbnRyb2xsZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165032</attachid>
            <date>2012-09-20 18:36:38 -0700</date>
            <delta_ts>2012-10-17 02:03:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96894-20120921103602.patch</filename>
            <type>text/plain</type>
            <size>17150</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc3ODkxNWIzNDJkODA2
NjRiYzllMzQ5MjM2OThlMzBhODNiNGJhNS4uNzkzNDEyODNhYTNiNzgzZGUwMjFhNWYwZTY3MzQ5
Y2QzMzRlN2QyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTIwICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENv
bnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGV2aWNlQ29udHJvbGxlciBiYXNlLWNsYXNzIGZvciBzb29uLXRvLWJlLWFkZGVkIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIsCisgICAgICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciBh
bmQgUHJveGltaXR5Q29udHJvbGxlci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHBhZ2UvRGV2aWNlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChEZXZpY2VDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2
aWNlQ2xpZW50KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6
RGV2aWNlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjph
ZGREZXZpY2VFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xs
ZXI6OnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
Q29udHJvbGxlcjo6cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VDb250cm9sbGVyOjpkaXNwYXRjaERldmljZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmZpcmVEZXZpY2VFdmVudCk6CisgICAgICAgICogcGFn
ZS9EZXZpY2VDb250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChEZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6
On5EZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6
OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmNsaWVudCk6
CisKIDIwMTItMDktMTkgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEluZGV4ZWREQjogUHJpbnQgY29uc29sZSB3YXJuaW5nIGFib3V0IHNldFZlcnNpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNGIwMjUwNjI5MTVhZTgwZWU5MzA1MzVjZDljMDNjMmFk
ZTYxMDBhYS4uMWU2ZWFhZDE1YjgyODUzNTU2ZDZiZGQ1YmZjMDlhZjNkOTMzZGJjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTE2NzUsNiArMTY3NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKICAgICBwYWdlL0NyeXB0by5jcHAKKyAgICBwYWdlL0RldmljZUNvbnRy
b2xsZXIuY3BwCiAgICAgcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwCiAgICAgcGFnZS9E
T01TZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhjYThiMjY4ZTMyNmJiZmY4N2Q3MTQ1NmY3NzQxM2E4
ODY0MDc3MjYuLjM4Y2ZiMGFkMzBiOTMwODU3NzA4MjllOGQzNWYxOTU3ODEyYWQ0M2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzk0Myw2ICszOTQzLDkgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0Nvb3JkaW5hdGVzLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8u
aCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaCBcCisJU291cmNlL1dlYkNv
cmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZp
Y2VDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggNzQ2NWQ0NDA1MjZkOGE1N2ZlNzhiMGJiNzA1OGJkN2MzMTAzMGNkOC4uYWExNGQwNDFm
ODc1MzAwOWYxZTc2NTc3NjdhNmUwNTVjMGU0ZTZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04NTYsNiAr
ODU2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3Bw
IFwKICAgICBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvQ3J5cHRv
LmNwcCBcCisgICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9EaWFnbm9z
dGljTG9nZ2luZ0tleXMuY3BwIFwKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5jcHAgXAogICAgIHBh
Z2UvRE9NVGltZXIuY3BwIFwKQEAgLTE5NzUsNiArMTk3Niw4IEBAIEhFQURFUlMgKz0gXAogICAg
IHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggXAogICAgIHBhZ2UvQ29udGV4dE1lbnVQcm92
aWRlci5oIFwKICAgICBwYWdlL0Nvb3JkaW5hdGVzLmggXAorICAgIHBhZ2UvRGV2aWNlQ2xpZW50
LmggXAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5oIFwKICAgICBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5oIFwKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5oIFwKICAgICBwYWdlL0RPTVRp
bWVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRkNDNjNDE2NWJmNGYxODEwODBhY2NlYmI3Mjcy
ZDZkYWFhYTM0Y2QuLmE3MDk4MWIwM2E2ZmMwZTk5YmQ3YjIyNThkNGIxY2VmZWYxNDNhMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTMwOTYsNiArMzA5Niw5IEBACiAgICAgICAgICAgICAncGFnZS9D
b250ZXh0TWVudVByb3ZpZGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQ3J5cHRvLmNwcCcsCiAg
ICAgICAgICAgICAncGFnZS9DcnlwdG8uaCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDbGll
bnQuaCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCcsCisgICAgICAg
ICAgICAncGFnZS9EZXZpY2VDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0tleXMuaCcsCiAgICAgICAgICAgICAncGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA3NjhkZTBk
YzQ4MzI1N2QzMmMyYWEyOTUxZTAyNjRlMzY3MTY4YTYwLi40MDEwNDBkMTQwMzIxZTg0NzczMjhk
ODliODJjMzQxZTVmZmFkZGY0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMjY5NTUsNiArMjY5NTUsMTggQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VDbGllbnQuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZp
Y2VDb250cm9sbGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VDb250cm9sbGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2EyNWVhYTg4MTRhZDQ4NTczMzFhNmM1M2E3
NjYzNjZjZDNjMjJkYy4uZDQwNjIzZjA4OGFhYWQxYzZjMDZlYzM4MmUxNTI4Y2Y0NzIxMDE2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNTg1Niw2ICs1ODU2LDkgQEAKIAkJQ0FFOUY5MEYxNDY0NDFGMDAwQzI0NUIwIC8qIENT
U0FzcGVjdFJhdGlvVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFs
dWUuY3BwICovOyB9OwogCQlDQUU5RjkxMDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0
aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCAqLzsgfTsK
IAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2NDQxRjAw
MEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggKi87IH07CisJCUNDQzJCNTE0MTVGNjEzMDYw
MDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQu
aCAqLzsgfTsKKwkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1
MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovOyB9OworCQlDQ0My
QjUxNjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2
IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0QxMjdERUQxNEYzMDk3RDAwRTg0Nzc5
IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVG
dWxsU2NyZWVuV2luZG93Lm1tICovOyB9OwogCQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyog
V2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNj
cmVlbldpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFMjE0
NTc2NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTMxOTMs
NiArMTMxOTYsOSBAQAogCQlDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0
aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NBc3Bl
Y3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEUx
NDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NWYXJpYWJsZVZhbHVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAv
KiBEZXZpY2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNl
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTExMTVGNjEzMDYw
MDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDb250cm9sbGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJD
b3JlRnVsbFNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0Y2RTAxNDU3NUMxQjAw
NzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFDb250cm9sbGVyLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1Nzg5LDYgKzE1Nzk1LDkgQEAKIAkJCQk5
NzVDQTI4NzEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEz
MDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5
QUQ5IC8qIENyeXB0by5pZGwgKi8sCisJCQkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERl
dmljZUNsaWVudC5oICovLAorCQkJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VD
b250cm9sbGVyLmNwcCAqLywKKwkJCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNl
Q29udHJvbGxlci5oICovLAogCQkJCUNEMzdCMzc0MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9z
dGljTG9nZ2luZ0tleXMuY3BwICovLAogCQkJCUNEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBE
aWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLywKIAkJCQkyRDlBMjQ2QTE1QjlCQkREMDBEMzQ1Mjcg
LyogRE9NU2VjdXJpdHlQb2xpY3kuY3BwICovLApAQCAtMjI2NTEsNiArMjI2NjAsOCBAQAogCQkJ
CTkzMzA5REUxMDk5RTY0OTIwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDE2NjBBNTEzNzg3QzZEMDAxRkZBN0IgLyogRGVub3JtYWxEaXNh
Ymxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdDOUFCRjkxMzU3QTNCRjAwRjU1MDNGIC8qIERl
dGFpbHNNYXJrZXJDb250cm9sLmggaW4gSGVhZGVycyAqLywKKwkJCQlDQ0MyQjUxNDE1RjYxMzA2
MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDQ0MyQjUxNjE1
RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFGQjFBNTcxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFGQjFBNTkxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTVCMTIwQTVEMDYwMERDMDJBMCAvKiBE
ZXZpY2VNb3Rpb25EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjI2LDYgKzI2MjM3LDcgQEAK
IAkJCQk5MzMwOURERTA5OUU2NDkyMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURFMDA5OUU2NDkyMDA1NkU1ODEgLyogRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0M5QUJGODEzNTdB
M0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEw
IC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBB
NUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzMxYjdlNmYxODIzODRmMWVlODk5
NjViZmI2OWI2ZTk0ZmIyN2EwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGV2aWNlQ2xpZW50LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMp
IDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmbmRlZiBEZXZpY2VDbGllbnRfaAorI2RlZmluZSBEZXZpY2VDbGllbnRfaAorCisjaW5j
bHVkZSA8RXZlbnQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERldmljZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
RGV2aWNlQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgPSAwOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyMTRiY2EzNjM4M2RjYmEwMTll
ZjZiNmZlMDBiM2NkYTM3MzU2ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiAgQ29weXJp
Z2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VDb250cm9sbGVy
LmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZUNvbnRyb2xsZXI6OkRldmljZUNv
bnRyb2xsZXIoRGV2aWNlQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCisg
ICAgLCBtX3RpbWVyKHRoaXMsICZEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQpCit7
Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihET01X
aW5kb3cqIHdpbmRvdykKK3sKKyAgICBib29sIHdhc0VtcHR5ID0gbV9saXN0ZW5lcnMuaXNFbXB0
eSgpOworICAgIG1fbGlzdGVuZXJzLmFkZCh3aW5kb3cpOworCisgICAgaWYgKG1fZXZlbnQpIHsK
KyAgICAgICAgbV9sYXN0RXZlbnRMaXN0ZW5lcnMuYWRkKHdpbmRvdyk7CisgICAgICAgIGlmICgh
bV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7
CisgICAgfQorCisgICAgaWYgKCF3YXNFbXB0eSkKKyAgICAgICAgbV9jbGllbnQtPnN0YXJ0VXBk
YXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVEZXZpY2VFdmVudExp
c3RlbmVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbGlzdGVuZXJzLnJlbW92ZSh3aW5k
b3cpOworICAgIG1fbGFzdEV2ZW50TGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIGlmICht
X2xpc3RlbmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsK
K30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVy
KERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cp
OworICAgIG1fbGFzdEV2ZW50TGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIGlmICht
X2xpc3RlbmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsK
K30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpkaXNwYXRjaERldmljZUV2ZW50KFBhc3NSZWZQ
dHI8RXZlbnQ+IGV2ZW50KQoreworICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICBtX2V2ZW50ID0g
ZXZlbnQ7CisgICAgVmVjdG9yPERPTVdpbmRvdyo+IGxpc3RlbmVyVmVjdG9yOworICAgIGNvcHlU
b1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJWZWN0b3IpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbGlzdGVuZXJWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCFsaXN0
ZW5lclZlY3RvcltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgp
CisgICAgICAgICAgICAmJiAhbGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURP
TU9iamVjdHNBcmVTdG9wcGVkKCkpCisgICAgICAgIGxpc3RlbmVyVmVjdG9yW2ldLT5kaXNwYXRj
aEV2ZW50KG1fZXZlbnQpOworICAgIH0KK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpmaXJl
RGV2aWNlRXZlbnQoVGltZXI8RGV2aWNlQ29udHJvbGxlcj4qIHRpbWVyKQoreworICAgIEFTU0VS
VF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKKyAgICBBU1NFUlQobV9ldmVudCk7
CisKKyAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICBWZWN0b3I8RE9NV2luZG93Kj4gbGlzdGVuZXJW
ZWN0b3I7CisgICAgY29weVRvVmVjdG9yKG1fbGFzdEV2ZW50TGlzdGVuZXJzLCBsaXN0ZW5lclZl
Y3Rvcik7CisgICAgbV9sYXN0RXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGxpc3RlbmVyVmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICgh
bGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5k
ZWQoKQorICAgICAgICAgICAgJiYgIWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVudCgpLT5hY3Rp
dmVET01PYmplY3RzQXJlU3RvcHBlZCgpKQorICAgICAgICBsaXN0ZW5lclZlY3RvcltpXS0+ZGlz
cGF0Y2hFdmVudChtX2V2ZW50KTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWEzZWU0M2M0
YzE1MGRiNmE5ZjU4YTRjNTdiZjQyNzUxNTgxY2JhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisg
KiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ29udHJvbGxlcl9oCisjZGVmaW5lIERl
dmljZUNvbnRyb2xsZXJfaAorCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRl
ICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIERldmljZUNsaWVudDsKK2NsYXNz
IEV2ZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgRGV2aWNlQ29udHJvbGxlciA6IHB1YmxpYyBT
dXBwbGVtZW50PFBhZ2U+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEZXZpY2VDb250cm9sbGVy
KERldmljZUNsaWVudCopOworICAgIH5EZXZpY2VDb250cm9sbGVyKCkgeyB9CisKKyAgICB2b2lk
IGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Kik7CisgICAgdm9pZCByZW1vdmVEZXZp
Y2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyopOworICAgIHZvaWQgcmVtb3ZlQWxsRGV2aWNlRXZl
bnRMaXN0ZW5lcihET01XaW5kb3cqKTsKKworICAgIHZvaWQgZGlzcGF0Y2hEZXZpY2VFdmVudChQ
YXNzUmVmUHRyPEV2ZW50Pik7CisgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0dXJuICFtX2xpc3Rl
bmVycy5pc0VtcHR5KCk7IH0KKyAgICBEZXZpY2VDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50OyB9CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpcmVEZXZpY2VFdmVudChUaW1lcjxE
ZXZpY2VDb250cm9sbGVyPiopOworCisgICAgSGFzaENvdW50ZWRTZXQ8RE9NV2luZG93Kj4gbV9s
aXN0ZW5lcnM7CisgICAgSGFzaENvdW50ZWRTZXQ8RE9NV2luZG93Kj4gbV9sYXN0RXZlbnRMaXN0
ZW5lcnM7CisgICAgRGV2aWNlQ2xpZW50KiBtX2NsaWVudDsKKyAgICBUaW1lcjxEZXZpY2VDb250
cm9sbGVyPiBtX3RpbWVyOworICAgIFJlZlB0cjxFdmVudD4gbV9ldmVudDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZUNvbnRyb2xsZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169127</attachid>
            <date>2012-10-17 02:03:08 -0700</date>
            <delta_ts>2012-10-19 04:42:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96894-20121017180155.patch</filename>
            <type>text/plain</type>
            <size>56169</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ3OTlkMDIxYWI4NTc1
YjVkZTU1ZTIyMGU0MzA2Y2Q5NDU1NmM3Mi4uMjQ4NTczZDU0MmU1ZjNiNDk4ODdhMTYyNGM3NTk0
MDY3ZTVmZDg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEyLTEwLTE3ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENv
bnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGV2aWNlQ29udHJvbGxlciBiYXNlLWNsYXNzIGZvciBzb29uLXRvLWJlLWFkZGVkIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIsCisgICAgICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciBh
bmQgUHJveGltaXR5Q29udHJvbGxlci4KKyAgICAgICAgSW4gYWRkaXRpb24sIGNoYW5nZSBwYXJl
bnQgY2xhc3Mgb2YgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC9Nb2NrIGZyb20gRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQgdG8gRGV2aWNlQ2xpZW50LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRGV2
aWNlT3JpZW50YXRpb25DbGllbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcjo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlT3JpZW50
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpm
cm9tKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdmlkZURldmlj
ZU9yaWVudGF0aW9uVG8pOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyOjp+RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKToKKyAgICAgICAg
KERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyk6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycyk6CisgICAgICAg
ICogcGFnZS9EZXZpY2VDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKERldmljZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDbGllbnQ6On5EZXZp
Y2VDbGllbnQpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpE
ZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmFk
ZERldmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxl
cjo6cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VD
b250cm9sbGVyOjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VDb250cm9sbGVyOjpkaXNwYXRjaERldmljZUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmZpcmVEZXZpY2VFdmVudCk6CisgICAgICAgICogcGFn
ZS9EZXZpY2VDb250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChEZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6
On5EZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6
OmlzQWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmNsaWVudCk6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOjpEZXZpY2VP
cmllbnRhdGlvbkNsaWVudE1vY2spOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrOjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNb2NrOjpzZXRPcmllbnRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0Lmg6CisKIDIwMTItMTAtMTcgIFNoaW55YSBL
YXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBzaGFkb3dB
bmNlc3Rvck5vZGUoKSBmcm9tIFZpc2libGVTZWxlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nCmluZGV4IGVhYTJiM2I1MDdiYWEwY2M1NWFmNDExZjcyMWM4ZDVhYjEyNzBlNjguLjNj
MTY4Mzc0MmI1NTFmYTJiZDY5NmQ4YmNlMTRlYjMyMjg1ODU3OTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEwLTE3ICBLaWhvbmcgS3dvbiAg
PGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VDb250cm9sbGVy
IGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENvbnRyb2xlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY4OTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgcGFy
ZW50IGNsYXNzIG9mIERldmljZU9yaWVudGF0aW9uQ2xpZW50QmxhY2tiZXJyeSBmcm9tIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50IHRvIERldmljZUNsaWVudC4KKworICAgICAgICAqIEFwaS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dEJsYWNrQmVycnkuaDoKKwogMjAxMi0xMC0xNiAgTWlrZSBMYXR0YW56aW8gIDxtbGF0dGFuemlv
QHJpbS5jb20+CiAKICAgICAgICAgMjAxMi0xMC0xNiAgTWlrZSBMYXR0YW56aW8gIDxtbGF0dGFu
emlvQHJpbS5jb20+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDM5MTYzNmYwMWMzMmJm
NDI1NWEzZDRiYTdiOGEwMzhiOTVjMzE1NTguLjc1ZDI1YmM3NDE3YThhNGZmMjQ4NTk2MjEwZTNk
MWU2ZmI3N2QwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTItMTAtMTcgIEtpaG9uZyBLd29uICA8a2lob25nLmt3b25Ac2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgQWRkIERldmljZUNvbnRyb2xsZXIgYmFzZS1jbGFzcyB0byByZW1vdmUgZHVwbGljYXRp
b24gb2YgRGV2aWNlWFhYQ29udHJvbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05Njg5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZSBwYXJlbnQgY2xhc3Mgb2YgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRQcm94eSBmcm9tIERldmljZU9yaWVudGF0aW9uQ2xpZW50IHRvIERldmljZUNsaWVudC4K
KworICAgICAgICAqIHNyYy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Lmg6CisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Oldl
YlZpZXdJbXBsKToKKwogMjAxMi0xMC0xNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBbU2hhZG93IERPTV1bVjhdIFdlYkNvcmU6OlY4RE9NV2luZG93Ojpp
bnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMoKSBpcyBzbG93IHdoZW4gc2hhZG93RE9NRW5hYmxl
ZCBmbGFnIGlzIG9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDkxMDNhNzcxMDJiMTVkMTg3MWIwNjA5
MjA0ZDM0Mjc2ZjEwZTY1MTMuLmQ0MWEzMjFhZGQ4YjMyMjQxNWFjZDg4MDY2OWUzNDEyODU1NjZk
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xNyAgS2lob25n
IEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBBZGQgRGV2aWNlQ29u
dHJvbGxlciBiYXNlLWNsYXNzIHRvIHJlbW92ZSBkdXBsaWNhdGlvbiBvZiBEZXZpY2VYWFhDb250
cm9sZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2
ODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hh
bmdlIHBhcmVudCBjbGFzcyBvZiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudEVmbCBmcm9tIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50IHRvIERldmljZUNsaWVudC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorCiAyMDEyLTEwLTE3ICBCeXVuZ3dvbyBMZWUg
IDxidzgwLmxlZUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgYmFja2dyb3VuZCBj
b2xvciB0byB0aGUgcmFkaW8gYnV0dG9uIHRoZW1lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDk4NmU0
YjFkMzc4NzE3MDQ4MzNhZDM5ZWY2N2ExZTNiNmEzNmFkMGEuLmZkZDVjNmIxM2NmNzYwYzRiZTVl
YzViM2RlZDUwNmJmYWM2YzM0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMi0xMC0xNyAgS2lob25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KKworICAg
ICAgICBBZGQgRGV2aWNlQ29udHJvbGxlciBiYXNlLWNsYXNzIHRvIHJlbW92ZSBkdXBsaWNhdGlv
biBvZiBEZXZpY2VYWFhDb250cm9sZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk2ODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ2hhbmdlIHBhcmVudCBjbGFzcyBvZiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudEd0ayBmcm9tIERldmljZU9yaWVudGF0aW9uQ2xpZW50IHRvIERldmljZUNsaWVudC4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50R3RrLmg6Cisg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgorCiAyMDEyLTEwLTEwICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBTd2l0Y2ggUmVzb3VyY2VMb2Fk
ZXI6OnJlc291cmNlRGF0YSgpIGZyb20gU2hhcmVkQnVmZmVyIHRvIFJlc291cmNlQnVmZmVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggZTc0YTY0NDVkNWE0MTU5NzA0NTliNWRmMmRiOWJjYjlhN2FhMTNh
Mi4uZWI0NzE3NmVlOTNmMjYzMDIwN2FiZWM1OWRlOGI2MmM0YWZiM2NjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTE3ICBLaWhvbmcgS3dvbiAgPGtpaG9uZy5r
d29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VDb250cm9sbGVyIGJhc2UtY2xh
c3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENvbnRyb2xlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY4OTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgcGFyZW50IGNsYXNz
IG9mIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50IGZyb20gRGV2aWNlT3JpZW50YXRpb25DbGll
bnQgdG8gRGV2aWNlQ2xpZW50LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuaDoKKyAgICAgICAgKFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisKIDIwMTItMTAtMTYgIEppYW4gTGkg
IDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbmFtZSBmZWF0dXJlIGRlZmluZSBF
TkFCTEVfV0lER0VUX1JFR0lPTiB0byBFTkFCTEVfRFJBR0dCQUxFX1JFR0lPTgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCAxNzc4MzdlNWEyNjkxMmI5MTJlZDQ1MTRlYjdlNDc0ZjlkZWQ5ZGU0Li4wOWU5OWJh
MTdmN2VjYjY5M2M4MTZiNDE0YjNkNDk4ZWM2ZDJjN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDEyLTEwLTE3ICBLaWhvbmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIEFkZCBEZXZpY2VDb250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3Zl
IGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENvbnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnNl
dENvbnRyb2xsZXIgdG8gc3VwcG9ydCBEZWl2Y2VPcmllbnRhdGlvbiBsYXlvdXQgdGVzdHMuCisK
KyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpR
V2ViUGFnZVByaXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKHRvRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKToK
KwogMjAxMi0xMC0xNSAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5jb20+
CiAKICAgICAgICAgW1F0XSBTZXBhcmF0ZSBRdCBXZWJLaXQgaW50byBRdCBXZWJLaXQgYW5kIFF0
IFdlYktpdCBXaWRnZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGYwZmU0YTk0ZGQ4Nzc2MTI4
ZjliNjcxOWE4OTZjMTkxNmJkY2FkOWIuLjdlNjgxMTk0ZDkwNDhjODFlNDUxZGI5MDE3MTNjZmE3
MjA1ZGJkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzAzLDYgKzE3MDMsNyBAQCBTRVQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCiAgICAg
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCiAgICAgcGFnZS9DcnlwdG8uY3BwCisgICAg
cGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcAogICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
LmNwcAogICAgIHBhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuY3BwCiAgICAgcGFnZS9ET01TZWxlY3Rp
b24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA0MGYxMzkxZjE5YmRlN2Zl
OTliMWNmMmVlNzc0NGQxNGU3ZDczYzhhLi5jZmZhODUwNDAxN2JkZDg0ZTViODAyY2NjMDFhYmZm
OTQ4ZjA5NzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI3NDAsNyArMjc0
MCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkRhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2ZW50LmggXAotCVNvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
T3JpZW50YXRpb25EYXRhLmNwcCBcCkBAIC0zOTg2LDYgKzM5ODUsOSBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9DcnlwdG8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9w
YWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNv
bnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRl
eCAzYTA0ZmViMGNlYzdkY2NlNTA5NzMyOWNjODI2MTdiMTliNzAyMGVlLi5lYmQ5MmE0OTQ0ODQ3
YjY3OWRjZjhkYTEzY2EwMDk2YzE1YmZhNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg2Nyw2ICs4Njcs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgXAog
ICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9DcnlwdG8uY3Bw
IFwKKyAgICBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5jcHAgXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcCBcCiAgICAgcGFnZS9E
T01UaW1lci5jcHAgXApAQCAtMTk4OSw2ICsxOTkwLDggQEAgSEVBREVSUyArPSBcCiAgICAgcGFn
ZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaCBcCiAgICAgcGFnZS9Db250ZXh0TWVudVByb3ZpZGVy
LmggXAogICAgIHBhZ2UvQ29vcmRpbmF0ZXMuaCBcCisgICAgcGFnZS9EZXZpY2VDbGllbnQuaCBc
CisgICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmggXAogICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzLmggXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmggXAogICAgIHBhZ2UvRE9NVGltZXIu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMGE0NzdiODkzMGI5MmUxNmRhNmY0ODU0ODQxNWIxMTBi
NGI0NjMwYS4uODQ5MWQ1OGY4MTZjYzlhOTQ1ZjRkOTYzMzI5ZTg4ZDQwYzk0ZDk5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtMzEwNCw2ICszMTA0LDkgQEAKICAgICAgICAgICAgICdwYWdlL0NvbnRl
eHRNZW51UHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9DcnlwdG8uY3BwJywKICAgICAg
ICAgICAgICdwYWdlL0NyeXB0by5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNsaWVudC5o
JywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAgICAg
ICdwYWdlL0RldmljZUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9EaWFnbm9zdGlj
TG9nZ2luZ0tleXMuY3BwJywKICAgICAgICAgICAgICdwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5
cy5oJywKICAgICAgICAgICAgICdwYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGUzODdlZjMwYTNk
MTE4MzBiNmMzNzE4MTc4NzY4OTY3YmRiM2E5OTMuLmVjMTBjMzk5ZTVjYzkzN2EzYzU0YmM1Njk3
OTFjNWNjOGQ4ZDhkNTggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yNjkwNyw2ICsyNjkwNywxOCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNsaWVudC5oIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNv
bnRyb2xsZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXERldmljZUNvbnRyb2xsZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3Bw
IgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwODQ5OGUzY2NlYTZiMTUxMTc2NDg1MTZmM2IzMTZl
MzU3N2JlNWU4Li41ZDdiOWM5MTBhNGFhN2JhNzQzNmYyN2QwNGIxYTIxMjFlZGZjYWE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xNjc3LDcgKzE2NzcsNiBAQAogCQk1OUE4NjAwODExOURBRkExMDBERUYxRUYgLyogSlNEZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1OUE4NjAwNzExOURBRkExMDBERUYxRUYgLyogSlNEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmggKi87IH07CiAJCTU5QThGMUQ0MTFBNjk1MDgwMDFBQzM0QSAvKiBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTlBOEYxRDMxMUE2OTUwODAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlci5jcHAgKi87IH07CiAJCTU5QThGMUQ2MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU5QThGMUQ1MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIuaCAqLzsgfTsKLQkJNTlBOEYxRDgxMUE2OTUyMDAwMUFDMzRBIC8qIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1OUE4RjFENzExQTY5NTIwMDAxQUMzNEEgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk1OUI1OTc3MzExMDg2NTZCMDA3MTU5RTggLyogQnJpZGdlSlNDLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5QjU5NzcyMTEwODY1NkIwMDcx
NTlFOCAvKiBCcmlkZ2VKU0MuY3BwICovOyB9OwogCQk1OUI1OTc3NTExMDg2NTc5MDA3MTU5RTgg
LyogQnJpZGdlSlNDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1OUI1OTc3NDExMDg2NTc5MDA3MTU5RTggLyogQnJpZGdlSlNDLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTlDMjdGMDUxMzhEMjhDMTAw
NzlCN0UyIC8qIE5ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5QzI3RjA0MTM4RDI4QzEwMDc5QjdFMiAvKiBOZXR3
b3JrUmVzb3VyY2VzRGF0YS5jcHAgKi87IH07CkBAIC01ODY3LDYgKzU4NjYsOSBAQAogCQlDQUU5
RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRDE0NjQ0MUYwMDBD
MjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi87IH07CiAJCUNBRTlGOTEwMTQ2NDQx
RjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NT
QXNwZWN0UmF0aW9WYWx1ZS5oICovOyB9OwogCQlDQUU5RjkxMDE0NjQ0MUYwMDBDMjQ1QjEgLyog
Q1NTVmFyaWFibGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFsdWUuaCAq
LzsgfTsKKwkJQ0NDMkI1MTQxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTAxNUY2MTMw
NjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUNDQzJCNTE1MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLzsg
fTsKKwkJQ0NDMkI1MTYxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEyMTVGNjEz
MDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxMjdERUQxNEYzMDk3RDAwRTg0Nzc5IC8qIFdl
YkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2Ny
ZWVuV2luZG93Lm1tICovOyB9OwogCQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29y
ZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFMjE0NTc2NzU4
MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTMyMTUsNiArMTMy
MTcsOSBAQAogCQlDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NBc3BlY3RSYXRp
b1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEUxNDY0NDFG
MDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NWYXJpYWJsZVZhbHVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZp
Y2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RE
NiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERldmljZUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVs
bFNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RF
QjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0Y2RTAxNDU3NUMxQjAwNzgyMDdE
IC8qIE1lZGlhQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFDb250cm9sbGVyLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzkzLDYgKzE1Nzk4LDkgQEAKIAkJCQk5NzVDQTI4
NzEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4
MDBFOTlBRDkgLyogQ3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8q
IENyeXB0by5pZGwgKi8sCisJCQkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNs
aWVudC5oICovLAorCQkJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9s
bGVyLmNwcCAqLywKKwkJCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJv
bGxlci5oICovLAogCQkJCUNEMzdCMzc0MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9n
Z2luZ0tleXMuY3BwICovLAogCQkJCUNEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9z
dGljTG9nZ2luZ0tleXMuaCAqLywKIAkJCQkyRDlBMjQ2QTE1QjlCQkREMDBEMzQ1MjcgLyogRE9N
U2VjdXJpdHlQb2xpY3kuY3BwICovLApAQCAtMjI2ODgsMTEgKzIyNjk2LDEyIEBACiAJCQkJOTMz
MDlERTEwOTlFNjQ5MjAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMTY2MEE1MTM3ODdDNkQwMDFGRkE3QiAvKiBEZW5vcm1hbERpc2FibGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0M5QUJGOTEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWls
c01hcmtlckNvbnRyb2wuaCBpbiBIZWFkZXJzICovLAorCQkJCUNDQzJCNTE0MTVGNjEzMDYwMDQ4
Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNDQzJCNTE2MTVGNjEz
MDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZC
MUE1NzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMUZCMUE1OTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFBNUIxMjBBNUQwNjAwREMwMkEwIC8qIERldmlj
ZU1vdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTVEMTIwQTVEMDYwMERDMDJB
MCAvKiBEZXZpY2VNb3Rpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTlBOEYxRDgxMUE2
OTUyMDAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1OTMwOUExMzExRjRBRTZBMDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRN
b2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OUE4RjFENjExQTY5NTEzMDAxQUMzNEEgLyogRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OTBFMUI0OTEx
RTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2MjY4LDYgKzI2Mjc3LDcgQEAKIAkJCQk5MzMwOURERTA5OUU2NDkyMDA1NkU1ODEgLyog
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURF
MDA5OUU2NDkyMDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBN0M5QUJGODEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRy
b2wuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8qIERl
dmljZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAw
REMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDA0OWMwM2E0YTE0NGE3
NDUyMjlhMDU0MTM4MWNkNTdlMTRjNjViNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGll
bnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgMjAx
MCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRfaAotI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudF9oCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
OwotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOwotY2xhc3MgUGFnZTsKLQotY2xhc3MgRGV2
aWNlT3JpZW50YXRpb25DbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgfkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50KCkge30KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRp
bmcoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKLSAgICB2aXJ0
dWFsIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3QgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSA9
IDA7Ci19OwotCi12b2lkIHByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKFBhZ2UqLCBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudCopOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDMwMmRiNjEyNDM0YmE0ZDZhNTky
N2M4ZDNmZWM4Mzc2MDg3ZWFiNzUuLjIyYmI4OTk2NWVjNDRlZGIyOWFiODYxNzZkZTgwZTkyNjVi
MzNkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIuY3BwCkBAIC0yNiwxMTcgKzI2LDI3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCiAKLSNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgogI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
RXZlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OkRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcihQYWdlKiBwYWdlLCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogY2xp
ZW50KQotICAgIDogbV9jbGllbnQoY2xpZW50KQorRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
OjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoUGFnZSogcGFnZSwgRGV2aWNlQ2xpZW50KiBj
bGllbnQpCisgICAgOiBEZXZpY2VDb250cm9sbGVyKGNsaWVudCkKICAgICAsIG1fcGFnZShwYWdl
KQotICAgICwgbV90aW1lcih0aGlzLCAmRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjp0aW1l
ckZpcmVkKQogewotICAgIEFTU0VSVChtX2NsaWVudCk7Ci0gICAgbV9jbGllbnQtPnNldENvbnRy
b2xsZXIodGhpcyk7CiB9CiAKLURldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6fkRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcigpCi17Ci0gICAgbV9jbGllbnQtPmRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlckRlc3Ryb3llZCgpOwotfQotCi1QYXNzT3duUHRyPERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcj4gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpjcmVhdGUoUGFnZSogcGFn
ZSwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCkKK1Bhc3NPd25QdHI8RGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyPiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShQ
YWdlKiBwYWdlLCBEZXZpY2VDbGllbnQqIGNsaWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKIH0KIAotdm9p
ZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnRpbWVyRmlyZWQoVGltZXI8RGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyPiogdGltZXIpCi17Ci0gICAgQVNTRVJUX1VOVVNFRCh0aW1lciwg
dGltZXIgPT0gJm1fdGltZXIpOwotICAgIEFTU0VSVChtX2NsaWVudC0+bGFzdE9yaWVudGF0aW9u
KCkpOwotCi0gICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uRGF0YT4gb3JpZW50YXRpb24gPSBt
X2NsaWVudC0+bGFzdE9yaWVudGF0aW9uKCk7Ci0gICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9u
RXZlbnQ+IGV2ZW50ID0gRGV2aWNlT3JpZW50YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50LCBvcmllbnRhdGlvbi5nZXQoKSk7Ci0KLSAgICBWZWN0
b3I8UmVmUHRyPERPTVdpbmRvdz4gPiBsaXN0ZW5lcnNWZWN0b3I7Ci0gICAgY29weVRvVmVjdG9y
KG1fbmV3TGlzdGVuZXJzLCBsaXN0ZW5lcnNWZWN0b3IpOwotICAgIG1fbmV3TGlzdGVuZXJzLmNs
ZWFyKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lcnNWZWN0b3Iuc2l6ZSgp
OyArK2kpCi0gICAgICAgIGxpc3RlbmVyc1ZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVudChldmVudCk7
Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjphZGRMaXN0ZW5lcihET01X
aW5kb3cqIHdpbmRvdykKLXsKLSAgICAvLyBJZiB0aGUgY2xpZW50IGFscmVhZHkgaGFzIGFuIG9y
aWVudGF0aW9uLCB3ZSBzaG91bGQgZmlyZSBhbiBldmVudCB3aXRoIHRoYXQKLSAgICAvLyBvcmll
bnRhdGlvbi4gVGhlIGV2ZW50IGlzIGZpcmVkIGFzeW5jaHJvbm91c2x5LCBidXQgd2l0aG91dAot
ICAgIC8vIHdhaXRpbmcgZm9yIHRoZSBjbGllbnQgdG8gZ2V0IGEgbmV3IG9yaWVudGF0aW9uLgot
ICAgIGlmIChtX2NsaWVudC0+bGFzdE9yaWVudGF0aW9uKCkpIHsKLSAgICAgICAgbV9uZXdMaXN0
ZW5lcnMuYWRkKHdpbmRvdyk7Ci0gICAgICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQotICAg
ICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Ci0gICAgfQotCi0gICAgLy8gVGhlIGNs
aWVudCBtdXN0IG5vdCBjYWxsIGJhY2sgc3luY2hyb25vdXNseS4KLSAgICBib29sIHdhc0VtcHR5
ID0gbV9saXN0ZW5lcnMuaXNFbXB0eSgpOwotICAgIG1fbGlzdGVuZXJzLmFkZCh3aW5kb3cpOwot
ICAgIGlmICh3YXNFbXB0eSkKLSAgICAgICAgbV9jbGllbnQtPnN0YXJ0VXBkYXRpbmcoKTsKLX0K
LQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVyKERPTVdp
bmRvdyogd2luZG93KQotewotICAgIG1fbGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOwotICAgIG1f
c3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOwotICAgIG1fbmV3TGlzdGVuZXJzLnJl
bW92ZSh3aW5kb3cpOwotICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpCi0gICAgICAgIG1f
Y2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXI6OnJlbW92ZUFsbExpc3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKLXsKLSAgICAvLyBN
YXkgYmUgY2FsbGVkIHdpdGggYSBET01XaW5kb3cgdGhhdCdzIG5vdCBhIGxpc3RlbmVyLgotICAg
IGlmICghbV9saXN0ZW5lcnMuY29udGFpbnMod2luZG93KSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9saXN0ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7Ci0gICAgbV9zdXNwZW5kZWRMaXN0ZW5l
cnMucmVtb3ZlQWxsKHdpbmRvdyk7Ci0gICAgbV9uZXdMaXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7
Ci0gICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9jbGllbnQtPnN0b3BV
cGRhdGluZygpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6c3VzcGVu
ZEV2ZW50c0ZvckFsbExpc3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKLXsKLSAgICBpZiAoIW1f
bGlzdGVuZXJzLmNvbnRhaW5zKHdpbmRvdykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBj
b3VudCA9IG1fbGlzdGVuZXJzLmNvdW50KHdpbmRvdyk7Ci0gICAgcmVtb3ZlQWxsTGlzdGVuZXJz
KHdpbmRvdyk7Ci0gICAgd2hpbGUgKGNvdW50LS0pCi0gICAgICAgIG1fc3VzcGVuZGVkTGlzdGVu
ZXJzLmFkZCh3aW5kb3cpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJzKERPTVdpbmRvdyogd2luZG93KQotewotICAgIGlm
ICghbV9zdXNwZW5kZWRMaXN0ZW5lcnMuY29udGFpbnMod2luZG93KSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaW50IGNvdW50ID0gbV9zdXNwZW5kZWRMaXN0ZW5lcnMuY291bnQod2luZG93KTsK
LSAgICBtX3N1c3BlbmRlZExpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKLSAgICB3aGlsZSAo
Y291bnQtLSkKLSAgICAgICAgYWRkTGlzdGVuZXIod2luZG93KTsKLX0KLQogdm9pZCBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6OmRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9y
aWVudGF0aW9uRGF0YSogb3JpZW50YXRpb24pCiB7Ci0gICAgb3JpZW50YXRpb24gPSBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246Om92ZXJyaWRlRGV2aWNlT3JpZW50YXRpb24obV9wYWdlLCBvcmll
bnRhdGlvbik7Ci0gICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uRXZlbnQ+IGV2ZW50ID0gRGV2
aWNlT3JpZW50YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlv
bkV2ZW50LCBvcmllbnRhdGlvbik7Ci0gICAgVmVjdG9yPFJlZlB0cjxET01XaW5kb3c+ID4gbGlz
dGVuZXJzVmVjdG9yOwotICAgIGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJzVmVj
dG9yKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVyc1ZlY3Rvci5zaXplKCk7
ICsraSkKLSAgICAgICAgbGlzdGVuZXJzVmVjdG9yW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsK
KyAgICBkaXNwYXRjaERldmljZUV2ZW50KERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCwgb3JpZW50YXRpb24pKTsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1l
bnROYW1lKCkKQEAgLTE0NSw2ICs1NSwxMSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiBuYW1lOwog
fQogCitEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlcjo6ZnJvbShQYWdlKiBwYWdlKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBs
ZW1lbnROYW1lKCkpKTsKK30KKwogYm9vbCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6Omlz
QWN0aXZlQXQoUGFnZSogcGFnZSkKIHsKICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKiBzZWxmID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpKQpAQCAt
MTUyLDcgKzY3LDcgQEAgYm9vbCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZl
QXQoUGFnZSogcGFnZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgcHJvdmlkZURldmlj
ZU9yaWVudGF0aW9uVG8oUGFnZSogcGFnZSwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVu
dCkKK3ZvaWQgcHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8oUGFnZSogcGFnZSwgRGV2aWNlQ2xp
ZW50KiBjbGllbnQpCiB7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpwcm92aWRl
VG8ocGFnZSwgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShwYWdlLCBjbGllbnQpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAppbmRl
eCBmNWU2Zjk1MDNjMTNlZDlmOTJlOTI4ZjkxZTFmYjViMjMyNDBlMGVkLi43YTRlNWE3NzRmZjcw
M2I0Nzg3MjcwMmIyNzI5MGRkZmRjNWUzZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCkBAIC0yNiw1NSArMjYsMzQgQEAKICNpZm5k
ZWYgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyX2gKICNkZWZpbmUgRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyX2gKIAotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIlBhZ2Uu
aCIKLSNpbmNsdWRlICJUaW1lci5oIgotCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIERldmljZUNsaWVudDsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKLWNsYXNz
IERldmljZU9yaWVudGF0aW9uQ2xpZW50OwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIgOiBwdWJsaWMgRGV2aWNlQ29udHJvbGxlciB7CiBwdWJsaWM6Ci0gICAgfkRl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpOwotCi0gICAgc3RhdGljIFBhc3NPd25QdHI8RGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBjcmVhdGUoUGFnZSosIERldmljZU9yaWVudGF0aW9u
Q2xpZW50Kik7CisgICAgfkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIHsgfTsKIAotICAg
IHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93Kik7Ci0gICAgdm9pZCByZW1vdmVMaXN0ZW5lcihE
T01XaW5kb3cqKTsKLSAgICB2b2lkIHJlbW92ZUFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKLQot
ICAgIHZvaWQgc3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKLSAgICB2
b2lkIHJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKKyAgICBzdGF0aWMg
UGFzc093blB0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgRGV2
aWNlQ2xpZW50Kik7CiAKICAgICB2b2lkIGRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKERldmlj
ZU9yaWVudGF0aW9uRGF0YSopOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0dXJuICFtX2xp
c3RlbmVycy5pc0VtcHR5KCk7IH0KLQotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGll
bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQotCiAgICAgc3RhdGljIGNvbnN0IEF0b21p
Y1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKLSAgICBzdGF0aWMgRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKiBmcm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19jYXN0PERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFnZSwgc3VwcGxl
bWVudE5hbWUoKSkpOyB9CisgICAgc3RhdGljIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciog
ZnJvbShQYWdlKik7CiAgICAgc3RhdGljIGJvb2wgaXNBY3RpdmVBdChQYWdlKik7CiAKIHByaXZh
dGU6Ci0gICAgZXhwbGljaXQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFBhZ2UqLCBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudCopOwotCi0gICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcj4qKTsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIoUGFnZSosIERldmljZUNsaWVudCopOwogCi0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQq
IG1fY2xpZW50OwogICAgIFBhZ2UqIG1fcGFnZTsKLSAgICB0eXBlZGVmIEhhc2hDb3VudGVkU2V0
PFJlZlB0cjxET01XaW5kb3c+ID4gTGlzdGVuZXJzQ291bnRlZFNldDsKLSAgICBMaXN0ZW5lcnND
b3VudGVkU2V0IG1fbGlzdGVuZXJzOwotICAgIExpc3RlbmVyc0NvdW50ZWRTZXQgbV9zdXNwZW5k
ZWRMaXN0ZW5lcnM7Ci0gICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxET01XaW5kb3c+ID4gTGlz
dGVuZXJzU2V0OwotICAgIExpc3RlbmVyc1NldCBtX25ld0xpc3RlbmVyczsKLSAgICBUaW1lcjxE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IG1fdGltZXI7CiB9OwogCit2b2lkIHByb3ZpZGVE
ZXZpY2VPcmllbnRhdGlvblRvKFBhZ2UqLCBEZXZpY2VDbGllbnQqKTsKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGM0NTNjZDNjYzk5NmQxMmRkYjg0MzI4OWI2NWFhNGQx
ZmY0Y2IyMDMuLjQ3N2JjYWI0ZTJmZGU2OWM1NDYzMWVkZDllMDYxYzJmZjNkZWZjNmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjE3Niw5ICsyMTc2LDYgQEAgdm9pZCBEb2N1bWVudDo6
c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoQWN0aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5z
aW9uIHdoeSkKIAogICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0g
RGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVy
LT5zdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKLSAgICBpZiAoRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnN1c3BlbmRFdmVu
dHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwotCiAjZW5kaWYKIH0KIApAQCAtMjE5Miw4
ICsyMTg5LDYgQEAgdm9pZCBEb2N1bWVudDo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0cygpCiAKICAg
ICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNv
bnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRz
Rm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKLSAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9t
KHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVy
cyhkb21XaW5kb3coKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCmluZGV4IDljMmMyM2QzZTA4YThmZDE3OGUxODViNThhZTFjYTk1MWEyYzQwNDUuLjg3MDlh
NzNjNDU5OTE0NWFhYWZlYjExMjRiNTM5YTAzNGEyNzk1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKQEAgLTMxLDggKzMxLDggQEAKIAogI2luY2x1ZGUgIkNocm9tZUNsaWVu
dC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50LmgiCi0jaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCiAjaW5jbHVkZSAi
RWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKQEAgLTU4MCwx
MyArNTgwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJv
bGxlckRlc3Ryb3llZCgpIHsgfQogfTsKIAotY2xhc3MgRW1wdHlEZXZpY2VPcmllbnRhdGlvbkNs
aWVudCA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7CitjbGFzcyBFbXB0eURldmlj
ZUNsaWVudCA6IHB1YmxpYyBEZXZpY2VDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRh
dGluZygpIHsgfQotICAgIHZpcnR1YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50
YXRpb24oKSBjb25zdCB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIHsgfQogfTsKIAogdm9pZCBmaWxsV2l0aEVtcHR5
Q2xpZW50cyhQYWdlOjpQYWdlQ2xpZW50cyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmlu
ZGV4IGZhYTRiYTA0ODYxYzhmMzdjZTY5ODBjNTg4YTJiN2QyZTJjOTk3ZWIuLjEzMzZlYjJjMDYx
ZjEzOGI2YTAwNGNlNTQ5OTk3NWY4NzEyMzRmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKQEAgLTE1ODMsNyArMTU4Myw3IEBAIGJvb2wgRE9NV2luZG93OjphZGRFdmVudExpc3RlbmVy
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50CiAgICAgICAg
ICAgICBjb250cm9sbGVyLT5hZGRMaXN0ZW5lcih0aGlzKTsKICAgICB9IGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCAmJiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpkZXZpY2VPcmllbnRhdGlvbkVuYWJsZWQoKSkgewogICAgICAgICBpZiAo
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCi0gICAgICAgICAgICBjb250cm9sbGVyLT5hZGRM
aXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGNvbnRyb2xsZXItPmFkZERldmljZUV2ZW50TGlz
dGVuZXIodGhpcyk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTE2MTIsNyArMTYxMiw3IEBAIGJvb2wg
RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBFdmVudExpc3RlbmVyCiAgICAgICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVMaXN0ZW5l
cih0aGlzKTsKICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNl
b3JpZW50YXRpb25FdmVudCkgewogICAgICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2Uo
KSkpCi0gICAgICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVMaXN0ZW5lcih0aGlzKTsKKyAgICAg
ICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIodGhpcyk7CiAgICAg
fQogI2VuZGlmCiAKQEAgLTE2NjksNyArMTY2OSw3IEBAIHZvaWQgRE9NV2luZG93OjpyZW1vdmVB
bGxFdmVudExpc3RlbmVycygpCiAgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNv
bnRyb2xsZXItPnJlbW92ZUFsbExpc3RlbmVycyh0aGlzKTsKICAgICBpZiAoRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbExpc3RlbmVycyh0
aGlzKTsKKyAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMo
dGhpcyk7CiAjZW5kaWYKIAogICAgIHJlbW92ZUFsbFVubG9hZEV2ZW50TGlzdGVuZXJzKHRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUyYWFkMzJmYWM5MTBh
ODlhMmU5OWRjM2IzY2Q4MmNmZGI4YzFmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIERldmljZUNsaWVudF9oCisjZGVmaW5lIERldmljZUNsaWVudF9oCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5EZXZpY2VDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVw
ZGF0aW5nKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSA9IDA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VDbGllbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkxZDdiNjYw
MDhhYmE2OTU3OWI5NDY2MzU2NTRhMmRlYzdkNTM2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxMDQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmlj
ZUNvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRldmlj
ZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGV2aWNlQ29udHJvbGxl
cjo6RGV2aWNlQ29udHJvbGxlcihEZXZpY2VDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50
KGNsaWVudCkKKyAgICAsIG1fdGltZXIodGhpcywgJkRldmljZUNvbnRyb2xsZXI6OmZpcmVEZXZp
Y2VFdmVudCkKK3sKKyAgICBBU1NFUlQobV9jbGllbnQpOworfQorCit2b2lkIERldmljZUNvbnRy
b2xsZXI6OmFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAg
Ym9vbCB3YXNFbXB0eSA9IG1fbGlzdGVuZXJzLmlzRW1wdHkoKTsKKyAgICBtX2xpc3RlbmVycy5h
ZGQod2luZG93KTsKKworICAgIGlmIChtX2V2ZW50KSB7CisgICAgICAgIG1fbGFzdEV2ZW50TGlz
dGVuZXJzLmFkZCh3aW5kb3cpOworICAgICAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKKyAg
ICAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIH0KKworICAgIGlmICghd2Fz
RW1wdHkpCisgICAgICAgIG1fY2xpZW50LT5zdGFydFVwZGF0aW5nKCk7Cit9CisKK3ZvaWQgRGV2
aWNlQ29udHJvbGxlcjo6cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cqIHdpbmRv
dykKK3sKKyAgICBtX2xpc3RlbmVycy5yZW1vdmUod2luZG93KTsKKyAgICBtX2xhc3RFdmVudExp
c3RlbmVycy5yZW1vdmUod2luZG93KTsKKyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQor
ICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJv
bGxlcjo6cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5kb3cpCit7
CisgICAgbV9saXN0ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7CisgICAgbV9sYXN0RXZlbnRMaXN0
ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7CisgICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkK
KyAgICAgICAgbV9jbGllbnQtPnN0b3BVcGRhdGluZygpOworfQorCit2b2lkIERldmljZUNvbnRy
b2xsZXI6OmRpc3BhdGNoRGV2aWNlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCit7Cisg
ICAgbV9ldmVudC5jbGVhcigpOworICAgIG1fZXZlbnQgPSBldmVudDsKKyAgICBWZWN0b3I8RE9N
V2luZG93Kj4gbGlzdGVuZXJWZWN0b3I7CisgICAgY29weVRvVmVjdG9yKG1fbGlzdGVuZXJzLCBs
aXN0ZW5lclZlY3Rvcik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lclZlY3Rv
ci5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoIWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVu
dCgpLT5hY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkKKyAgICAgICAgICAgICYmICFsaXN0
ZW5lclZlY3RvcltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSkK
KyAgICAgICAgbGlzdGVuZXJWZWN0b3JbaV0tPmRpc3BhdGNoRXZlbnQobV9ldmVudCk7CisgICAg
fQorfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmZpcmVEZXZpY2VFdmVudChUaW1lcjxEZXZp
Y2VDb250cm9sbGVyPiogdGltZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIg
PT0gJm1fdGltZXIpOworICAgIEFTU0VSVChtX2V2ZW50KTsKKworICAgIG1fdGltZXIuc3RvcCgp
OworICAgIFZlY3RvcjxET01XaW5kb3cqPiBsaXN0ZW5lclZlY3RvcjsKKyAgICBjb3B5VG9WZWN0
b3IobV9sYXN0RXZlbnRMaXN0ZW5lcnMsIGxpc3RlbmVyVmVjdG9yKTsKKyAgICBtX2xhc3RFdmVu
dExpc3RlbmVycy5jbGVhcigpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJW
ZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCFsaXN0ZW5lclZlY3RvcltpXS0+ZG9j
dW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpCisgICAgICAgICAgICAmJiAh
bGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdG9wcGVk
KCkpCisgICAgICAgIGxpc3RlbmVyVmVjdG9yW2ldLT5kaXNwYXRjaEV2ZW50KG1fZXZlbnQpOwor
ICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2Q2YzUyZWIwN2FhY2IxYTFmOTkyNmMxODlhNDEz
YWZhNzg4NGMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VD
b250cm9sbGVyLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBT
YW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIERldmljZUNvbnRyb2xsZXJfaAorI2RlZmluZSBEZXZpY2VDb250cm9sbGVyX2gKKworI2lu
Y2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJU
aW1lci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIERldmljZUNsaWVudDsKK2NsYXNzIFBh
Z2U7CisKK2NsYXNzIERldmljZUNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgRGV2aWNlQ29udHJvbGxlcihEZXZpY2VDbGllbnQqKTsK
KyAgICB+RGV2aWNlQ29udHJvbGxlcigpIHsgfQorCisgICAgdm9pZCBhZGREZXZpY2VFdmVudExp
c3RlbmVyKERPTVdpbmRvdyopOworICAgIHZvaWQgcmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihE
T01XaW5kb3cqKTsKKyAgICB2b2lkIHJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKERPTVdp
bmRvdyopOworCisgICAgdm9pZCBkaXNwYXRjaERldmljZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+
KTsKKyAgICBib29sIGlzQWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsg
fQorICAgIERldmljZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworcHJv
dGVjdGVkOgorICAgIHZvaWQgZmlyZURldmljZUV2ZW50KFRpbWVyPERldmljZUNvbnRyb2xsZXI+
Kik7CisKKyAgICBIYXNoQ291bnRlZFNldDxET01XaW5kb3cqPiBtX2xpc3RlbmVyczsKKyAgICBI
YXNoQ291bnRlZFNldDxET01XaW5kb3cqPiBtX2xhc3RFdmVudExpc3RlbmVyczsKKyAgICBEZXZp
Y2VDbGllbnQqIG1fY2xpZW50OworICAgIFRpbWVyPERldmljZUNvbnRyb2xsZXI+IG1fdGltZXI7
CisgICAgUmVmUHRyPEV2ZW50PiBtX2V2ZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRGV2aWNlQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAK
aW5kZXggYzdkYjkwOTllZTJkOTQ5MWFkMmEzNDIzZGQzNmNhMjM2ZjY5MDEwZi4uOTQ5OTA1Njdi
ZjE1OGY3Yjk5MDQ0NGViYzEyNzA2ZjBkNTJjMTZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNw
cApAQCAtMzIsNyArMzIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jazo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKCkKICAgICA6IG1fY29u
dHJvbGxlcigwKQotICAgICwgbV90aW1lcih0aGlzLCAmRGV2aWNlT3JpZW50YXRpb25DbGllbnRN
b2NrOjp0aW1lckZpcmVkKQogICAgICwgbV9pc1VwZGF0aW5nKGZhbHNlKQogewogfQpAQCAtNTIs
MjAgKzUxLDExIEBAIHZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOjpzdGFydFVwZGF0
aW5nKCkKIHZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOjpzdG9wVXBkYXRpbmcoKQog
ewogICAgIG1faXNVcGRhdGluZyA9IGZhbHNlOwotICAgIG1fdGltZXIuc3RvcCgpOwogfQogCiB2
b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6c2V0T3JpZW50YXRpb24oUGFzc1JlZlB0
cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IG9yaWVudGF0aW9uKQogewogICAgIG1fb3JpZW50YXRp
b24gPSBvcmllbnRhdGlvbjsKLSAgICBpZiAobV9pc1VwZGF0aW5nICYmICFtX3RpbWVyLmlzQWN0
aXZlKCkpCi0gICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwotfQotCi12b2lkIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6dGltZXJGaXJlZChUaW1lcjxEZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2s+KiB0aW1lcikKLXsKLSAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9
PSAmbV90aW1lcik7Ci0gICAgbV90aW1lci5zdG9wKCk7CiAgICAgbV9jb250cm9sbGVyLT5kaWRD
aGFuZ2VEZXZpY2VPcmllbnRhdGlvbihtX29yaWVudGF0aW9uLmdldCgpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dE1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrLmgKaW5kZXggNGQ1NWQyMDdhNjQ1OTQ1MWZhMGNkOGE0NjAwYWIyZjkxZWJhOWY0
ZC4uMTdhZTFlYjcwYTM3YzU1YzBiOGU3Mzc4MzQxMTIwMTM1ZDA2YjQ4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xp
ZW50TW9jay5oCkBAIC0yNiwxMCArMjYsOCBAQAogI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudE1vY2tfaAogI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2tfaAogCi0jaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQu
aCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKLSNpbmNsdWRlICJUaW1lci5o
IgotCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKQEAgLTM3LDI4ICszNSwyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKIAotLy8gQSBtb2NrIGltcGxlbWVudGF0aW9uIG9mIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50IHVzZWQgdG8gdGVzdCB0aGUgZmVhdHVyZSBpbgorLy8gQSBt
b2NrIGltcGxlbWVudGF0aW9uIG9mIERldmljZUNsaWVudCB1c2VkIHRvIHRlc3QgdGhlIGZlYXR1
cmUgaW4KIC8vIER1bXBSZW5kZXJUcmVlLiBFbWJlZGRlcnMgc2hvdWxkIHNob3VsZCBjb25maWd1
cmUgdGhlIFBhZ2Ugb2JqZWN0IHRvIHVzZSB0aGlzCiAvLyBjbGllbnQgd2hlbiBydW5uaW5nIER1
bXBSZW5kZXJUcmVlLgotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrIDogcHVibGlj
IERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jayA6IHB1YmxpYyBEZXZpY2VDbGllbnQgewogcHVibGljOgogICAgIERldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jaygpOwogCi0gICAgLy8gRGV2aWNlT3JpZW50YXRpb25DbGllbnQKKyAgICAv
LyBEZXZpY2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRh
dGluZygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9vcmllbnRhdGlvbi5nZXQoKTsgfQotICAgIHZpcnR1
YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBPVkVSUklERSB7
IH0KIAogICAgIHZvaWQgc2V0T3JpZW50YXRpb24oUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlv
bkRhdGE+KTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNb2NrPiopOwotCiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uRGF0
YT4gbV9vcmllbnRhdGlvbjsKICAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIG1fY29u
dHJvbGxlcjsKLSAgICBUaW1lcjxEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s+IG1fdGltZXI7
CiAgICAgYm9vbCBtX2lzVXBkYXRpbmc7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0LmgKaW5kZXggNmEyZDVkZDBk
NWRjYjU4ZWU0NTgxNTQ3YWUyZjIyOWRjNTU3YzFmNC4uYjk1NzEyZjAyNjEyNTJlNGU2NzM4YTg0
ZjAzNDhmYTMwODJhNmY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaApAQCAtMjAsNyArMjAsNyBAQAogI2lmbmRl
ZiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0X2gKICNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRRdF9oCiAKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2luY2x1
ZGUgIkRldmljZUNsaWVudC5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgog
CiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
clF0OwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0IDogcHVibGljIERldmljZU9y
aWVudGF0aW9uQ2xpZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQgOiBwdWJs
aWMgRGV2aWNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxl
cihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRV
cGRhdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXgg
YmJmODQyNWNiZjQyY2Y2ZGQ5OTk0Yzk1MWY3YzMzNThmZWIyNTU3ZC4uY2QxZGI3NDZjZDc5YmQz
ZmJkYTVkMjRhODUxZDEyNmE1YjhkM2ZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlBhZ2UuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaWYgIWRlZmluZWQoUFVCTElDX0JVSUxE
KSB8fCAhUFVCTElDX0JVSUxECiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2Nr
LmgiCiAjZW5kaWYKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJEcmFnQ2xpZW50QmxhY2tCZXJyeS5oIgogLy8gRklYTUU6IFdlIHNob3VsZCBiZSB1
c2luZyBEdW1wUmVuZGVyVHJlZUNsaWVudCwgYnV0IEknbSBub3Qgc3VyZSB3aGVyZSB3ZSBzaG91
bGQKIC8vIGNyZWF0ZSB0aGUgRFJUX0JCIG9iamVjdC4gU2VlIFBSICMxMjAzNTUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggY2ExZGQ5
ZDRkZmIxY2M3Y2ZkYWRmYzBjNTliZWExMmU2OWQ2OGJhNC4uZjcwYWQ3OTZjY2I0ZDg2MWNjNjI2
MzFmMzUwNDM1YmQ2ODQwNTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudEJsYWNrQmVycnkuaApAQCAtMTksNyArMTksNyBAQAogI2lmbmRlZiBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudEJsYWNrQmVycnlfaAogI2RlZmluZSBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dEJsYWNrQmVycnlfaAogCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKyNp
bmNsdWRlICJEZXZpY2VDbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEu
aCIKIAogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybURldmljZU9yaWVudGF0aW9uVHJhY2tl
ckxpc3RlbmVyLmg+CkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIERldmljZU9yaWVudGF0aW9uVHJh
Y2tlcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudEJsYWNrQmVycnkgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQsIHB1YmxpYyBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6RGV2aWNlT3JpZW50YXRpb25UcmFja2VyTGlzdGVuZXIgewor
Y2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRCbGFja0JlcnJ5IDogcHVibGljIERldmljZUNs
aWVudCwgcHVibGljIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpEZXZpY2VPcmllbnRhdGlvblRyYWNr
ZXJMaXN0ZW5lciB7CiBwdWJsaWM6CiAgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRCbGFja0Jl
cnJ5KEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqKTsKICAgICB2aXJ0dWFsIH5E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudEJsYWNrQmVycnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0RldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkuaAppbmRl
eCBlZGRiM2QyOWQ5ZmNiOWNhZTgwMjYyMzVkNjNmNTk1ZThiODI4ZDY1Li45YjZjZWRkMmE1NjQw
ZDRkNzAzZmQzMWQ4Y2IyMzRlMjkwODIwMzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5oCkBAIC0yNiw3
ICsyNiw3IEBACiAjaWZuZGVmIERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHlfaAogI2RlZmlu
ZSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5X2gKIAotI2luY2x1ZGUgIkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRpb25DbGll
bnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNz
IERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQgeworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eSA6IHB1
YmxpYyBXZWJDb3JlOjpEZXZpY2VDbGllbnQgewogcHVibGljOgogICAgIERldmljZU9yaWVudGF0
aW9uQ2xpZW50UHJveHkoV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCkKICAgICAg
ICAgOiBtX2NsaWVudChjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKaW5kZXggZDZiZjk0Yjk2NzYzOTg0Nzk3NDZkOGIzMzE3YzA3MTkxMzg5NWYwNi4u
MDRmMjRiMWQ1NTc0YzBhZjRlZDg1M2ZmZWQxNWJkNWQxYmUyMmFmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1
ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkRPTVV0aWxpdGllc1ByaXZhdGUuaCIKICNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCkBAIC00ODAsNiArNDgx
LDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKIAog
ICAgIHByb3ZpZGVDb250ZXh0RmVhdHVyZXNUbyhtX3BhZ2UuZ2V0KCksIG1fZmVhdHVyZVN3aXRj
aENsaWVudC5nZXQoKSk7CiAgICAgcHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8obV9wYWdlLmdl
dCgpLCBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkuZ2V0KCkpOworICAgIG1fZGV2aWNl
T3JpZW50YXRpb25DbGllbnRQcm94eS0+c2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmZyb20obV9wYWdlLmdldCgpKSk7CiAgICAgcHJvdmlkZUdlb2xvY2F0aW9uVG8o
bV9wYWdlLmdldCgpLCBtX2dlb2xvY2F0aW9uQ2xpZW50UHJveHkuZ2V0KCkpOwogICAgIG1fZ2Vv
bG9jYXRpb25DbGllbnRQcm94eS0+c2V0Q29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXI6
OmZyb20obV9wYWdlLmdldCgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudEVmbC5oCmluZGV4IDBi
YjE5N2NiN2Y5ZjQ2YTQ1ODQ5YTVjZjNhZDEyOTk4MTI5ZmU4NzEuLmIxZjdjZTQyY2UyZWIwMjEy
ZmU3ODNiNjYwNzE2ZjNkODdmOWU2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRFZmwuaApAQCAt
MjAsMTIgKzIwLDE0IEBACiAjaWZuZGVmIERldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsX2gKICNk
ZWZpbmUgRGV2aWNlT3JpZW50YXRpb25DbGllbnRFZmxfaAogCi0jaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKICNpbmNsdWRlICJE
ZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudEVmbCA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCB7CitjbGFzcyBQYWdlOworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudEVmbCA6IHB1
YmxpYyBEZXZpY2VDbGllbnQgewogcHVibGljOgogICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50
RWZsKCk7CiAgICAgdmlydHVhbCB+RGV2aWNlT3JpZW50YXRpb25DbGllbnRFZmwoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDNhOGI3MTM4YzdjMzgxNGNmNTUzMGQyMWM3OWRm
ZGI2MGZhNTY3MzIuLjYyZTFkOTMxOGQ5M2M4NmE1NzYzOTE3NWU0MGM4OTUzM2EyY2JjZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtODMsNiArODMsNyBAQAogI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50RWZsLmgi
CiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnRFZmwuaCIKKyNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJQlJBVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RldmljZU9y
aWVudGF0aW9uQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0ay5oCmluZGV4IGZjYWEyZDJlODFkZDczM2IxOWNlNTA3
OTFkMWI5ODY4MDA1OWNlNTEuLmJhYjRiNDk1ZjJkMDk0ODc5OTQ3N2E5ZTM2ZGM2YjZjZGQ5MmRi
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RldmljZU9y
aWVudGF0aW9uQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGsuaApAQCAtMjEsMTIgKzIxLDEyIEBACiAjaWZu
ZGVmIERldmljZU9yaWVudGF0aW9uQ2xpZW50R3RrX2gKICNkZWZpbmUgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRHdGtfaAogCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKyNp
bmNsdWRlICJEZXZpY2VDbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEu
aCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50
R3RrIDogcHVibGljIFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKK2NsYXNzIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50R3RrIDogcHVibGljIFdlYkNvcmU6OkRldmljZUNsaWVudCB7
CiBwdWJsaWM6CiAgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGsoKTsKICAgICB2aXJ0dWFs
IH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0aygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDVhYzA0ODQyZDVmODc2ZjcyNzZjZTA2YjRiZmQ4ZmI1
MTYzNDU4MDUuLjFjNGIwY2Y4Y2ZhNDI3NTNlZjY2YjU4Zjk3MzU4NDZkZWE4YjRmOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTExNyw2ICsxMTcs
NyBAQAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAjaW5jbHVkZSAiRGV2aWNlTW90
aW9uQ2xpZW50R3RrLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGsuaCIK
KyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNlbmRpZgogCiAvKioK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9y
aWVudGF0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCmluZGV4IDdlNDk4NzFjMDBhOTE4MmExZDZmMGRkZWM5
Yzk5MDIyOWQ4ZTVhNzkuLmI3MjM5MmI5NDVjYWM1ZDUyZGRjZjE4NDQ4ZTFhNWE2YmQ4ZDg5MzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9y
aWVudGF0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaApAQCAtMjQsNyArMjQsOCBAQAogICovCiAKICNp
bXBvcnQgIldlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXIuaCIKLSNpbXBvcnQgPFdlYkNvcmUv
RGV2aWNlT3JpZW50YXRpb25DbGllbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRGV2aWNlQ2xpZW50
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RldmljZU9yaWVudGF0aW9uRGF0YS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CkBAIC0zMiwy
MCArMzMsMjEgQEAgY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwogCiBAY2xhc3Mg
V2ViVmlldzsKIAotLy8gVGhpcyBjbGFzcyBpcyB0aGUgTWFjIGltcGxlbWVudGF0aW9uIG9mIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50LiBJdCBpcworLy8gVGhpcyBjbGFzcyBpcyB0aGUgTWFjIGlt
cGxlbWVudGF0aW9uIG9mIERldmljZUNsaWVudC4gSXQgaXMKIC8vIHBhc3NlZCB0byB0aGUgUGFn
ZSBjb25zdHJ1Y3RvciBieSB0aGUgV2ViVmlldy4gSXQgaXMgYSBzaW1wbGUgcHJveHkgdG8KIC8v
IGVpdGhlciB0aGUgcmVhbCBvciBtb2NrIGNsaWVudCB3aGljaCBpcyBwYXNzZWQgdG8gdGhlIFdl
YlZpZXcuIEl0IGlzCiAvLyByZXF1aXJlZCBiZWNhdXNlIHRoZSBXZWJWaWV3IG11c3QgcGFzcyBh
IGNsaWVudCB0byB0aGUgUGFnZSBjb25zdHJ1Y3RvciwKIC8vIGJ1dCB0aGUgcmVhbCBvciBtb2Nr
IGNsaWVudCBjYW4gbm90IGJlIHNwZWNpZmllZCB1bnRpbCBhZnRlciB0aGUgUGFnZSBoYXMKIC8v
IGJlZW4gY29uc3RydWN0ZWQuCi1jbGFzcyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7CitjbGFzcyBXZWJEZXZpY2VP
cmllbnRhdGlvbkNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpEZXZpY2VDbGllbnQgewogcHVibGlj
OgogICAgIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50KFdlYlZpZXcqKTsKIAotICAgIC8vIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50IG1ldGhvZHMKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJv
bGxlcihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKSBPVkVSUklERTsKKyAg
ICAvLyBEZXZpY2VDbGllbnQgbWV0aG9kcwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5n
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpIE9WRVJSSURFOwor
CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpEZXZpY2VPcmll
bnRhdGlvbkRhdGEqIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBPVkVSUklERTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDJhYWU1NDhlYmQ1NGNlMjVl
NjhhMmFlOWYxZTE2MjMzMDQzMjAwMjQuLmQ0OTQ0YWIzMjkyYTVhYmNkOWExZTY1NGZkMzYyNDYx
MjI3MDdjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTExOCw2ICsx
MTgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db2xvck1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3Vyc29yLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBh
Z2UuY3BwCmluZGV4IDkwMTlmNDY4ODU3ZGYxYjZiYmVlNDQ3MWY3NDY2ZWE4NzgwOGE4NGEuLjg5
OWY0MDg5ZTk0YTI0YzRiOTJiOWVjYmQ3M2NlNmQ0NGEwZGNmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25DbGll
bnRRdC5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1
ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIuaCIKICNlbmRpZgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAj
aW5jbHVkZSAiRHJhZ0NsaWVudFF0LmgiCkBAIC0zNDEsOSArMzQyLDExIEBAIFFXZWJQYWdlUHJp
dmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWdlICpxcSkKICAgICAgICAgV2ViQ29yZTo6cHJv
dmlkZUdlb2xvY2F0aW9uVG8ocGFnZSwgbmV3IEdlb2xvY2F0aW9uQ2xpZW50UXQocSkpOwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBpZiAodXNlTW9jaykKLSAg
ICAgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8ocGFnZSwgbmV3IERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TW9jayk7Ci0gICAgZWxzZQorICAgIGlmICh1c2VNb2NrKSB7Cisg
ICAgICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogbW9jayA9IG5ldyBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2s7CisgICAgICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VPcmllbnRh
dGlvblRvKHBhZ2UsIG1vY2spOworICAgICAgICBtb2NrLT5zZXRDb250cm9sbGVyKFdlYkNvcmU6
OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKSk7CisgICAgfSBlbHNlCiAg
ICAgICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKHBhZ2UsIG5ldyBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFF0KTsKICAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlTW90aW9u
VG8ocGFnZSwgbmV3IERldmljZU1vdGlvbkNsaWVudFF0KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcAppbmRleCA3N2E1YzI5OTQ0OWU0ZjhlYjMxODA2Zjk5YTk1ZjYyZTc5NDhjMjQxLi43
Mzk0MTY3OGI2ZDk4NjM4NzdhYjIzMWU1NTcyNjU5ODQwNzlmODJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogdG9HZW9s
b2NhdGlvbkNsaWVudE1vY2soR2VvbG9jYXRpb25DbGllbnQqIGNsaWVudCkKICNlbmRpZgogCiAj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLURldmljZU9yaWVudGF0aW9uQ2xpZW50TW9j
ayogdG9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soRGV2aWNlT3JpZW50YXRpb25DbGllbnQq
IGNsaWVudCkKK0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogdG9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2soRGV2aWNlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgQVNTRVJUKFFXZWJQYWdl
UHJpdmF0ZTo6ZHJ0UnVuKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrKj4oY2xpZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169599</attachid>
            <date>2012-10-19 04:42:57 -0700</date>
            <delta_ts>2012-10-21 21:57:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96894-20121019204140.patch</filename>
            <type>text/plain</type>
            <size>34258</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE1ZGQyNTE4YjMzODNi
ZmM4ODEzZjk2NDc0ODg4ZDk4Mzg4OTQ0MC4uYTU3NzYxZmRjNDBjNTAyMWIyYzZhMmE1NTczNzA1
Mjc5OTM2MWRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTEwLTE5ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENv
bnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGV2aWNlQ29udHJvbGxlciBiYXNlLWNsYXNzIGZvciBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuCisgICAgICAgIEFuZCBzb29uLXRvLWJlLWFkZGVkIERldmljZU1vdGlvbkNvbnRyb2xs
ZXIgYW5kIFByb3hpbWl0eUNvbnRyb2xsZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgor
ICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
OjpkaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6Omhhc0xhc3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Z2V0TGFzdEV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cjo6fkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcik6CisgICAgICAgIChEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHMpOgorICAgICAgICAqIGxvYWRl
ci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKEVtcHR5RGV2aWNlQ2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkVtcHR5RGV2aWNlQ2xpZW50OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkVtcHR5RGV2aWNlQ2xpZW50OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlbW92
ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdlL0RldmljZUNsaWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlQ2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZUNsaWVudDo6fkRldmljZUNsaWVudCk6CisgICAgICAgICogcGFnZS9E
ZXZpY2VDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OkRldmljZUNvbnRyb2xsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVEZXZpY2VFdmVudExpc3RlbmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2
ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmRpc3Bh
dGNoRGV2aWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6Zmly
ZURldmljZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZUNvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6fkRldmljZUNvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6aXNBY3RpdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlQ29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNv
bnRyb2xsZXI6OmdldExhc3RFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudE1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2spOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOjpzdG9wVXBkYXRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOjpzZXRPcmllbnRhdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
aDoKKwogMjAxMi0xMC0xOSAgRXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFzLmJ1Z0BnbWFpbC5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVXBkYXRlIGxvY2FsaXplZFN0cmluZ3MuanMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDUzNzM3OTgwOTk3ZTc0YzFkZDg0N2M4NWRlNjg5MzAx
MTZlMTQwOC4uZjg2M2VkYzk3MjdhYjY2Y2Y3OTAyOTcxMTE1MjY0NGUxMDY5NjNjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTE3MDYsNiArMTcwNiw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKICAgICBwYWdlL0NyeXB0by5jcHAKKyAgICBwYWdlL0RldmljZUNvbnRy
b2xsZXIuY3BwCiAgICAgcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwCiAgICAgcGFnZS9E
T01TZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGVhMmIyMmU5YWVhNjI5YmFjNGM3ODAzN2ExYTIwMGZh
NjhjZWNhNTMuLjFkNzQ5MjYzY2FjNzBiYzk5MjFiZWI2NWIwMTE5N2RlNzVmNjA3ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzk5OSw2ICszOTk5LDkgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0Nvb3JkaW5hdGVzLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8u
aCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaCBcCisJU291cmNlL1dlYkNv
cmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZp
Y2VDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggN2U3MDVlNDg2YjEyZTZhZTUzZTc5NmY3ZGIyZGQ3Nzg0YzExNTY4ZS4uYTIzYjNkNjky
MzMxNTI1ZGVjMWZlYjJiZWVkMzY2NzUwODBmMmE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04NjgsNiAr
ODY4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3Bw
IFwKICAgICBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvQ3J5cHRv
LmNwcCBcCisgICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9EaWFnbm9z
dGljTG9nZ2luZ0tleXMuY3BwIFwKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5jcHAgXAogICAgIHBh
Z2UvRE9NVGltZXIuY3BwIFwKQEAgLTE5OTIsNiArMTk5Myw4IEBAIEhFQURFUlMgKz0gXAogICAg
IHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggXAogICAgIHBhZ2UvQ29udGV4dE1lbnVQcm92
aWRlci5oIFwKICAgICBwYWdlL0Nvb3JkaW5hdGVzLmggXAorICAgIHBhZ2UvRGV2aWNlQ2xpZW50
LmggXAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5oIFwKICAgICBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5oIFwKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5oIFwKICAgICBwYWdlL0RPTVRp
bWVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDkwMTk2MDRkY2U4YWRjZWY5OGNkNjNiY2NmYWU5
MTRiNGExNWQzNzYuLjkwOWViNjA4ZGMxNDNmM2ViNzhhYzkyYjE1NTE3Njg5MzViNmYyMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTMxMDksNiArMzEwOSw5IEBACiAgICAgICAgICAgICAncGFnZS9D
b250ZXh0TWVudVByb3ZpZGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQ3J5cHRvLmNwcCcsCiAg
ICAgICAgICAgICAncGFnZS9DcnlwdG8uaCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDbGll
bnQuaCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCcsCisgICAgICAg
ICAgICAncGFnZS9EZXZpY2VDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0tleXMuaCcsCiAgICAgICAgICAgICAncGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1NDBmYTUz
OTM1MWVlNmE3NDVlOTEzMDEzZWUzMTU2ZTVkNTBiZmRlLi4zM2ZiMjczZmRlYzQwYWUwM2JhNDM5
Mjk0MGIyYTdkOWNjNjljZTVmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMjY5MDcsNiArMjY5MDcsMTggQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VDbGllbnQuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZp
Y2VDb250cm9sbGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VDb250cm9sbGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjYyNjJkYmQwZWJkODY1OTU1OGY2MjIyNmFk
OTAzMmIwZWE5NjcxYi4uMmNlMmFmMmFlOTBiM2Q2YzFlN2RhNmNkOThjY2UzMjhkOGFlZWI3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNTg3NSw2ICs1ODc1LDkgQEAKIAkJQ0FFOUY5MEYxNDY0NDFGMDAwQzI0NUIwIC8qIENT
U0FzcGVjdFJhdGlvVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFs
dWUuY3BwICovOyB9OwogCQlDQUU5RjkxMDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0
aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCAqLzsgfTsK
IAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2NDQxRjAw
MEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggKi87IH07CisJCUNDQzJCNTE0MTVGNjEzMDYw
MDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDQ0My
QjUxNTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMTE1RjYxMzA2MDA0OENE
RDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgKi87IH07CisJCUNDQzJCNTE2MTVGNjEzMDYwMDQ4
Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJv
bGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUNEMTI3REVEMTRGMzA5N0QwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVCMTRG
MzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLzsgfTsKIAkJQ0Qx
MjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0RjMwOTc5
MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDI3RjZFNTE0NTc2ODVBMDA3ODIwN0Qg
LyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTIxNDU3Njc1ODAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9s
bGVyLmNwcCAqLzsgfTsKQEAgLTEzMjMxLDYgKzEzMjM0LDkgQEAKIAkJQ0FFOUY5MEQxNDY0NDFG
MDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRp
b1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0FzcGVjdFJhdGlv
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEUxNDY0NDFGMDAw
QzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTVmFyaWFibGVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
Q0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDQ0MyQjUxMTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VDb250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2
IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGV2aWNlQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RF
QTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNv
cmVGdWxsU2NyZWVuV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEMjdGNkUwMTQ1NzVDMUIwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE1lZGlhQ29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NTgxMSw2ICsxNTgxNyw5IEBACiAJCQkJOTc1Q0EyODcxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0
by5jcHAgKi8sCiAJCQkJOTc1Q0EyODgxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5oICovLAog
CQkJCTk3NUNBMjg5MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaWRsICovLAorCQkJCUNDQzJC
NTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCAqLywKKwkJCQlDQ0MyQjUxMTE1
RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgKi8sCisJCQkJQ0NDMkI1MTIx
NUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLywKIAkJCQlDRDM3QjM3NDE1
QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAqLywKIAkJCQlDRDM3
QjM3NTE1QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmggKi8sCiAJCQkJ
MkQ5QTI0NkExNUI5QkJERDAwRDM0NTI3IC8qIERPTVNlY3VyaXR5UG9saWN5LmNwcCAqLywKQEAg
LTIyNzEyLDYgKzIyNzIxLDggQEAKIAkJCQk5MzMwOURFMTA5OUU2NDkyMDA1NkU1ODEgLyogRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQxNjYwQTUxMzc4N0M2
RDAwMUZGQTdCIC8qIERlbm9ybWFsRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QzlB
QkY5MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0NDMkI1MTQxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQ0NDMkI1MTYxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTU3MTIwQTVEMDYwMERDMDJBMCAvKiBEZXZp
Y2VNb3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTU5MTIwQTVEMDYwMERD
MDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZC
MUE1QjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNjI5Niw2ICsyNjMwNyw3IEBACiAJCQkJOTMzMDlEREUwOTlFNjQ5MjAwNTZFNTgxIC8q
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlE
RTAwOTlFNjQ5MjAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTdDOUFCRjgxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250
cm9sLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNDQzJCNTE1MTVGNjEzMDYwMDQ4Q0RENiAvKiBE
ZXZpY2VDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRkIxQTU4MTIwQTVEMDYw
MERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMxRkIxQTVBMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTMxRkIxQTVDMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50LmgKaW5kZXggNDA0OWMwM2E0YTE0NGE3NDUyMjlhMDU0MTM4MWNkNTdlMTRjNjVi
NS4uODVkNjJlYzBkN2JkNDZiZjlhNDYyYzliNTJlY2E5YTQ4MTFlZWIxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxOCArMjcsMTggQEAK
ICNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRfaAogI2RlZmluZSBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudF9oCiAKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiBjbGFzcyBEZXZp
Y2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBQYWdlOwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCA6IHB1YmxpYyBEZXZpY2VD
bGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50KCkg
e30KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKICAgICB2aXJ0dWFsIERldmljZU9yaWVu
dGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSA9IDA7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcAppbmRl
eCAzMDJkYjYxMjQzNGJhNGQ2YTU5MjdjOGQzZmVjODM3NjA4N2VhYjc1Li40MTU5NTQ2YjI0YWY4
YjBhZTNiNTYzN2EyYzRiYzllZmM0ZWZjNjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQ29w
eXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDE3ICszNSwxMSBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OkRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcihQYWdlKiBwYWdlLCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCog
Y2xpZW50KQotICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgIDogRGV2aWNlQ29udHJvbGxlcihj
bGllbnQpCiAgICAgLCBtX3BhZ2UocGFnZSkKLSAgICAsIG1fdGltZXIodGhpcywgJkRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6dGltZXJGaXJlZCkKIHsKICAgICBBU1NFUlQobV9jbGllbnQp
OwotICAgIG1fY2xpZW50LT5zZXRDb250cm9sbGVyKHRoaXMpOwotfQotCi1EZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXI6On5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKQotewotICAgIG1f
Y2xpZW50LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKKyAgICBzdGF0
aWNfY2FzdDxEZXZpY2VPcmllbnRhdGlvbkNsaWVudCo+KG1fY2xpZW50KS0+c2V0Q29udHJvbGxl
cih0aGlzKTsKIH0KIAogUGFzc093blB0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50KiBjbGllbnQpCkBAIC01Miw5MSArNDcsMTkgQEAgUGFzc093blB0cjxEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Y3Jl
YXRlKFBhZ2UKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlcihwYWdlLCBjbGllbnQpKTsKIH0KIAotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OnRpbWVyRmlyZWQoVGltZXI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiogdGltZXIp
Ci17Ci0gICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOwotICAgIEFT
U0VSVChtX2NsaWVudC0+bGFzdE9yaWVudGF0aW9uKCkpOwotCi0gICAgUmVmUHRyPERldmljZU9y
aWVudGF0aW9uRGF0YT4gb3JpZW50YXRpb24gPSBtX2NsaWVudC0+bGFzdE9yaWVudGF0aW9uKCk7
Ci0gICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uRXZlbnQ+IGV2ZW50ID0gRGV2aWNlT3JpZW50
YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50LCBv
cmllbnRhdGlvbi5nZXQoKSk7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPERPTVdpbmRvdz4gPiBsaXN0
ZW5lcnNWZWN0b3I7Ci0gICAgY29weVRvVmVjdG9yKG1fbmV3TGlzdGVuZXJzLCBsaXN0ZW5lcnNW
ZWN0b3IpOwotICAgIG1fbmV3TGlzdGVuZXJzLmNsZWFyKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBsaXN0ZW5lcnNWZWN0b3Iuc2l6ZSgpOyArK2kpCi0gICAgICAgIGxpc3RlbmVyc1Zl
Y3RvcltpXS0+ZGlzcGF0Y2hFdmVudChldmVudCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyOjphZGRMaXN0ZW5lcihET01XaW5kb3cqIHdpbmRvdykKLXsKLSAgICAvLyBJ
ZiB0aGUgY2xpZW50IGFscmVhZHkgaGFzIGFuIG9yaWVudGF0aW9uLCB3ZSBzaG91bGQgZmlyZSBh
biBldmVudCB3aXRoIHRoYXQKLSAgICAvLyBvcmllbnRhdGlvbi4gVGhlIGV2ZW50IGlzIGZpcmVk
IGFzeW5jaHJvbm91c2x5LCBidXQgd2l0aG91dAotICAgIC8vIHdhaXRpbmcgZm9yIHRoZSBjbGll
bnQgdG8gZ2V0IGEgbmV3IG9yaWVudGF0aW9uLgotICAgIGlmIChtX2NsaWVudC0+bGFzdE9yaWVu
dGF0aW9uKCkpIHsKLSAgICAgICAgbV9uZXdMaXN0ZW5lcnMuYWRkKHdpbmRvdyk7Ci0gICAgICAg
IGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV90aW1lci5zdGFydE9uZVNo
b3QoMCk7Ci0gICAgfQotCi0gICAgLy8gVGhlIGNsaWVudCBtdXN0IG5vdCBjYWxsIGJhY2sgc3lu
Y2hyb25vdXNseS4KLSAgICBib29sIHdhc0VtcHR5ID0gbV9saXN0ZW5lcnMuaXNFbXB0eSgpOwot
ICAgIG1fbGlzdGVuZXJzLmFkZCh3aW5kb3cpOwotICAgIGlmICh3YXNFbXB0eSkKLSAgICAgICAg
bV9jbGllbnQtPnN0YXJ0VXBkYXRpbmcoKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVyKERPTVdpbmRvdyogd2luZG93KQotewotICAgIG1fbGlz
dGVuZXJzLnJlbW92ZSh3aW5kb3cpOwotICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZSh3
aW5kb3cpOwotICAgIG1fbmV3TGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOwotICAgIGlmIChtX2xp
c3RlbmVycy5pc0VtcHR5KCkpCi0gICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKLX0K
LQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUFsbExpc3RlbmVycyhE
T01XaW5kb3cqIHdpbmRvdykKK3ZvaWQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpkaWRD
aGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRhdGlvbkRhdGEqIG9yaWVudGF0aW9u
KQogewotICAgIC8vIE1heSBiZSBjYWxsZWQgd2l0aCBhIERPTVdpbmRvdyB0aGF0J3Mgbm90IGEg
bGlzdGVuZXIuCi0gICAgaWYgKCFtX2xpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX2xpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKLSAgICBtX3N1
c3BlbmRlZExpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKLSAgICBtX25ld0xpc3RlbmVycy5y
ZW1vdmUod2luZG93KTsKLSAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQotICAgICAgICBt
X2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7CisgICAgZGlzcGF0Y2hEZXZpY2VFdmVudChEZXZpY2VP
cmllbnRhdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZl
bnQsIG9yaWVudGF0aW9uKSk7CiB9CiAKLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
OjpzdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKERPTVdpbmRvdyogd2luZG93KQorYm9vbCBE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6Omhhc0xhc3REYXRhKCkKIHsKLSAgICBpZiAoIW1f
bGlzdGVuZXJzLmNvbnRhaW5zKHdpbmRvdykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBj
b3VudCA9IG1fbGlzdGVuZXJzLmNvdW50KHdpbmRvdyk7Ci0gICAgcmVtb3ZlQWxsTGlzdGVuZXJz
KHdpbmRvdyk7Ci0gICAgd2hpbGUgKGNvdW50LS0pCi0gICAgICAgIG1fc3VzcGVuZGVkTGlzdGVu
ZXJzLmFkZCh3aW5kb3cpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VPcmllbnRhdGlv
bkNsaWVudCo+KG1fY2xpZW50KS0+bGFzdE9yaWVudGF0aW9uKCk7CiB9CiAKLXZvaWQgRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOjpyZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2lu
ZG93KiB3aW5kb3cpCitQYXNzUmVmUHRyPEV2ZW50PiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OmdldExhc3RFdmVudCgpCiB7Ci0gICAgaWYgKCFtX3N1c3BlbmRlZExpc3RlbmVycy5jb250
YWlucyh3aW5kb3cpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbnQgY291bnQgPSBtX3N1c3Bl
bmRlZExpc3RlbmVycy5jb3VudCh3aW5kb3cpOwotICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJl
bW92ZUFsbCh3aW5kb3cpOwotICAgIHdoaWxlIChjb3VudC0tKQotICAgICAgICBhZGRMaXN0ZW5l
cih3aW5kb3cpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZGlkQ2hh
bmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb25EYXRhKiBvcmllbnRhdGlvbikK
LXsKLSAgICBvcmllbnRhdGlvbiA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6b3ZlcnJpZGVE
ZXZpY2VPcmllbnRhdGlvbihtX3BhZ2UsIG9yaWVudGF0aW9uKTsKLSAgICBSZWZQdHI8RGV2aWNl
T3JpZW50YXRpb25FdmVudD4gZXZlbnQgPSBEZXZpY2VPcmllbnRhdGlvbkV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQsIG9yaWVudGF0aW9uKTsKLSAgICBW
ZWN0b3I8UmVmUHRyPERPTVdpbmRvdz4gPiBsaXN0ZW5lcnNWZWN0b3I7Ci0gICAgY29weVRvVmVj
dG9yKG1fbGlzdGVuZXJzLCBsaXN0ZW5lcnNWZWN0b3IpOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGlzdGVuZXJzVmVjdG9yLnNpemUoKTsgKytpKQotICAgICAgICBsaXN0ZW5lcnNWZWN0
b3JbaV0tPmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIHJldHVybiBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQsIHN0YXRp
Y19jYXN0PERldmljZU9yaWVudGF0aW9uQ2xpZW50Kj4obV9jbGllbnQpLT5sYXN0T3JpZW50YXRp
b24oKSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyOjpzdXBwbGVtZW50TmFtZSgpCkBAIC0xNDUsNiArNjgsMTEgQEAgY29uc3QgQXRvbWljU3Ry
aW5nJiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKICAgICBy
ZXR1cm4gbmFtZTsKIH0KIAorRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXI6OmZyb20oUGFnZSogcGFnZSkKK3sKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKj4oU3VwcGxlbWVudDxQYWdlPjo6ZnJv
bShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7Cit9CisKIGJvb2wgRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyOjppc0FjdGl2ZUF0KFBhZ2UqIHBhZ2UpCiB7CiAgICAgaWYgKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogc2VsZiA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJv
bShwYWdlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuaAppbmRleCBmNWU2Zjk1MDNjMTNlZDlmOTJlOTI4ZjkxZTFmYjViMjMyNDBlMGVkLi4y
YzU0MTQyZWRmZTcxYmY5MGFlZWFiNTkyOWQxZGI0NzYwYjgwNjgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNTMgKzI3LDMz
IEBACiAjaWZuZGVmIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcl9oCiAjZGVmaW5lIERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcl9oCiAKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNs
dWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKLQorI2luY2x1ZGUgIkRldmljZUNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudDsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKIAotY2xhc3MgRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworY2xh
c3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyIDogcHVibGljIERldmljZUNvbnRyb2xsZXIg
ewogcHVibGljOgotICAgIH5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKTsKKyAgICB+RGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgeyB9OwogCiAgICAgc3RhdGljIFBhc3NPd25QdHI8
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBjcmVhdGUoUGFnZSosIERldmljZU9yaWVudGF0
aW9uQ2xpZW50Kik7CiAKLSAgICB2b2lkIGFkZExpc3RlbmVyKERPTVdpbmRvdyopOwotICAgIHZv
aWQgcmVtb3ZlTGlzdGVuZXIoRE9NV2luZG93Kik7Ci0gICAgdm9pZCByZW1vdmVBbGxMaXN0ZW5l
cnMoRE9NV2luZG93Kik7Ci0KLSAgICB2b2lkIHN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMo
RE9NV2luZG93Kik7Ci0gICAgdm9pZCByZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2lu
ZG93Kik7Ci0KICAgICB2b2lkIGRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9yaWVu
dGF0aW9uRGF0YSopOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0dXJuICFtX2xpc3RlbmVy
cy5pc0VtcHR5KCk7IH0KLQotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX2NsaWVudDsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNMYXN0RGF0YSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFdmVudD4gZ2V0TGFzdEV2ZW50KCkg
T1ZFUlJJREU7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFt
ZSgpOwotICAgIHN0YXRpYyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGZyb20oUGFnZSog
cGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKj4o
U3VwcGxlbWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KKyAgICBz
dGF0aWMgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBmcm9tKFBhZ2UqKTsKICAgICBzdGF0
aWMgYm9vbCBpc0FjdGl2ZUF0KFBhZ2UqKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoUGFnZSosIERldmljZU9yaWVudGF0aW9uQ2xpZW50Kik7
CiAKLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
PiopOwotCi0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIG1fY2xpZW50OwogICAgIFBhZ2Uq
IG1fcGFnZTsKLSAgICB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PFJlZlB0cjxET01XaW5kb3c+ID4g
TGlzdGVuZXJzQ291bnRlZFNldDsKLSAgICBMaXN0ZW5lcnNDb3VudGVkU2V0IG1fbGlzdGVuZXJz
OwotICAgIExpc3RlbmVyc0NvdW50ZWRTZXQgbV9zdXNwZW5kZWRMaXN0ZW5lcnM7Ci0gICAgdHlw
ZWRlZiBIYXNoU2V0PFJlZlB0cjxET01XaW5kb3c+ID4gTGlzdGVuZXJzU2V0OwotICAgIExpc3Rl
bmVyc1NldCBtX25ld0xpc3RlbmVyczsKLSAgICBUaW1lcjxEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXI+IG1fdGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA1NWVhODY5NGYyYzkwN2Q4OGYyMzdhZDM2NDZmOGUzZjJhMWI3NTY3
Li45Mzc4YmQ5MzA2M2FhNjVlNDQ4OWU1ODljZGM0ZTAwN2E5MDU3ODEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTgsNiArOCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDks
IDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
ICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC0yMDExLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxODAs
OSArMjE4MSw2IEBAIHZvaWQgRG9jdW1lbnQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKEFjdGl2
ZURPTU9iamVjdDo6UmVhc29uRm9yU3VzcGVuc2lvbiB3aHkpCiAKICAgICBpZiAoRGV2aWNlTW90
aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20o
cGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+c3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVy
cyhkb21XaW5kb3coKSk7Ci0gICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29u
dHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAg
ICAgICBjb250cm9sbGVyLT5zdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygp
KTsKLQogI2VuZGlmCiB9CiAKQEAgLTIxOTYsOCArMjE5NCw2IEBAIHZvaWQgRG9jdW1lbnQ6OnJl
c3VtZUFjdGl2ZURPTU9iamVjdHMoKQogCiAgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAg
ICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7
Ci0gICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICBjb250cm9sbGVy
LT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5YzJjMjNkM2UwOGE4ZmQxNzhl
MTg1YjU4YWUxY2E5NTFhMmM0MDQ1Li4zY2Q0Y2UxMjQ5MGViZjE5ZjNjMzg2MjZlNTU1Y2RhM2Rk
OGFhMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC01NzEsNiArNTcx
LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hsaWdodCgpIHsgfQogfTsK
IAorY2xhc3MgRW1wdHlEZXZpY2VDbGllbnQgOiBwdWJsaWMgRGV2aWNlQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBzdG9wVXBkYXRpbmcoKSB7IH0KK307CisKIGNsYXNzIEVtcHR5RGV2aWNlTW90aW9uQ2xpZW50
IDogcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciopIHsgfQpAQCAtNTgzLDggKzU4
OSw2IEBAIHB1YmxpYzoKIGNsYXNzIEVtcHR5RGV2aWNlT3JpZW50YXRpb25DbGllbnQgOiBwdWJs
aWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGlu
ZygpIHsgfQogICAgIHZpcnR1YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRp
b24oKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAppbmRleCBmYWE0YmEwNDg2MWM4ZjM3Y2U2OTgwYzU4OGEyYjdkMmUyYzk5N2ViLi43MjA1NjE5
NzkyZDY0OWQ0MTFiMzJhNmMxMmVjMGExNTEzNmU4YjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywg
MjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTU4Myw3ICsxNTg0LDcg
QEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnQKICAgICAgICAgICAgIGNvbnRyb2xsZXItPmFkZExp
c3RlbmVyKHRoaXMpOwogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5k
ZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRldmljZU9y
aWVudGF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFn
ZSgpKSkKLSAgICAgICAgICAgIGNvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOworICAgICAg
ICAgICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICB9CiAj
ZW5kaWYKIApAQCAtMTYxMiw3ICsxNjEzLDcgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAg
ICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUxpc3RlbmVyKHRoaXMpOwogICAgIH0gZWxzZSBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7CiAg
ICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRy
b2xsZXItPnJlbW92ZUxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgY29udHJvbGxlci0+cmVt
b3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICB9CiAjZW5kaWYKIApAQCAtMTY2OSw3
ICsxNjcwLDcgQEAgdm9pZCBET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkKICAg
ICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNv
bnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsTGlz
dGVuZXJzKHRoaXMpOwogICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAg
ICAgY29udHJvbGxlci0+cmVtb3ZlQWxsTGlzdGVuZXJzKHRoaXMpOworICAgICAgICBjb250cm9s
bGVyLT5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyh0aGlzKTsKICNlbmRpZgogCiAgICAg
cmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VD
bGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNTJhYWQzMmZhYzkxMGE4OWEyZTk5ZGMzYjNjZDgyY2ZkYjhj
MWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQu
aApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNl
Q2xpZW50X2gKKyNkZWZpbmUgRGV2aWNlQ2xpZW50X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBEZXZpY2VDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRldmljZUNsaWVu
dCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIERldmljZUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VD
b250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTEwZWY4NTA5NGFjNmMwMDk5Y2UyMGEzNDc5MzNm
NDhjMzI1ZGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VD
b250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgorCisjaW5j
bHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
RGV2aWNlQ29udHJvbGxlcjo6RGV2aWNlQ29udHJvbGxlcihEZXZpY2VDbGllbnQqIGNsaWVudCkK
KyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fdGltZXIodGhpcywgJkRldmljZUNvbnRy
b2xsZXI6OmZpcmVEZXZpY2VFdmVudCkKK3sKKyAgICBBU1NFUlQobV9jbGllbnQpOworfQorCit2
b2lkIERldmljZUNvbnRyb2xsZXI6OmFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93KiB3
aW5kb3cpCit7CisgICAgYm9vbCB3YXNFbXB0eSA9IG1fbGlzdGVuZXJzLmlzRW1wdHkoKTsKKyAg
ICBtX2xpc3RlbmVycy5hZGQod2luZG93KTsKKworICAgIGlmIChoYXNMYXN0RGF0YSgpKSB7Cisg
ICAgICAgIG1fbGFzdEV2ZW50TGlzdGVuZXJzLmFkZCh3aW5kb3cpOworICAgICAgICBpZiAoIW1f
dGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwor
ICAgIH0KKworICAgIGlmICghd2FzRW1wdHkpCisgICAgICAgIG1fY2xpZW50LT5zdGFydFVwZGF0
aW5nKCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlRGV2aWNlRXZlbnRMaXN0
ZW5lcihET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBtX2xpc3RlbmVycy5yZW1vdmUod2luZG93
KTsKKyAgICBtX2xhc3RFdmVudExpc3RlbmVycy5yZW1vdmUod2luZG93KTsKKyAgICBpZiAobV9s
aXN0ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cit9
CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMo
RE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgbV9saXN0ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7
CisgICAgbV9sYXN0RXZlbnRMaXN0ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7CisgICAgaWYgKG1f
bGlzdGVuZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9jbGllbnQtPnN0b3BVcGRhdGluZygpOwor
fQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmRpc3BhdGNoRGV2aWNlRXZlbnQoUGFzc1JlZlB0
cjxFdmVudD4gZXZlbnQpCit7CisgICAgVmVjdG9yPERPTVdpbmRvdyo+IGxpc3RlbmVyVmVjdG9y
OworICAgIGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJWZWN0b3IpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgaWYgKCFsaXN0ZW5lclZlY3RvcltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0Fy
ZVN1c3BlbmRlZCgpCisgICAgICAgICAgICAmJiAhbGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50
KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdG9wcGVkKCkpCisgICAgICAgIGxpc3RlbmVyVmVjdG9y
W2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICB9Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJv
bGxlcjo6ZmlyZURldmljZUV2ZW50KFRpbWVyPERldmljZUNvbnRyb2xsZXI+KiB0aW1lcikKK3sK
KyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1lcik7CisgICAgQVNTRVJU
KGhhc0xhc3REYXRhKCkpOworCisgICAgbV90aW1lci5zdG9wKCk7CisgICAgVmVjdG9yPERPTVdp
bmRvdyo+IGxpc3RlbmVyVmVjdG9yOworICAgIGNvcHlUb1ZlY3RvcihtX2xhc3RFdmVudExpc3Rl
bmVycywgbGlzdGVuZXJWZWN0b3IpOworICAgIG1fbGFzdEV2ZW50TGlzdGVuZXJzLmNsZWFyKCk7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lclZlY3Rvci5zaXplKCk7ICsraSkg
eworICAgICAgICBpZiAoIWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVudCgpLT5hY3RpdmVET01P
YmplY3RzQXJlU3VzcGVuZGVkKCkKKyAgICAgICAgICAgICYmICFsaXN0ZW5lclZlY3RvcltpXS0+
ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSkKKyAgICAgICAgbGlzdGVu
ZXJWZWN0b3JbaV0tPmRpc3BhdGNoRXZlbnQoZ2V0TGFzdEV2ZW50KCkpOworICAgIH0KK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MWMyOGZhODM5NjcxM2JkZDE0ODFhZTM4NDVmZmFjNzQxNDZjZGNkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgK
QEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0
cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmljZUNv
bnRyb2xsZXJfaAorI2RlZmluZSBEZXZpY2VDb250cm9sbGVyX2gKKworI2luY2x1ZGUgIkV2ZW50
LmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERPTVdpbmRvdzsKK2NsYXNzIERldmljZUNsaWVudDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNz
IERldmljZUNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgRGV2aWNlQ29udHJvbGxlcihEZXZpY2VDbGllbnQqKTsKKyAgICB+RGV2aWNl
Q29udHJvbGxlcigpIHsgfQorCisgICAgdm9pZCBhZGREZXZpY2VFdmVudExpc3RlbmVyKERPTVdp
bmRvdyopOworICAgIHZvaWQgcmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cqKTsK
KyAgICB2b2lkIHJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKERPTVdpbmRvdyopOworCisg
ICAgdm9pZCBkaXNwYXRjaERldmljZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICBib29s
IGlzQWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQorICAgIERldmlj
ZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHZpcnR1YWwgYm9v
bCBoYXNMYXN0RGF0YSgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEV2ZW50PiBnZXRMYXN0RXZlbnQoKSB7IHJldHVybiAwOyB9CisKK3Byb3RlY3Rl
ZDoKKyAgICB2b2lkIGZpcmVEZXZpY2VFdmVudChUaW1lcjxEZXZpY2VDb250cm9sbGVyPiopOwor
CisgICAgSGFzaENvdW50ZWRTZXQ8RE9NV2luZG93Kj4gbV9saXN0ZW5lcnM7CisgICAgSGFzaENv
dW50ZWRTZXQ8RE9NV2luZG93Kj4gbV9sYXN0RXZlbnRMaXN0ZW5lcnM7CisgICAgRGV2aWNlQ2xp
ZW50KiBtX2NsaWVudDsKKyAgICBUaW1lcjxEZXZpY2VDb250cm9sbGVyPiBtX3RpbWVyOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlQ29udHJvbGxlcl9o
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169829</attachid>
            <date>2012-10-21 21:57:50 -0700</date>
            <delta_ts>2012-10-30 21:50:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96894-20121022135628.patch</filename>
            <type>text/plain</type>
            <size>35839</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhmZmY2NzhkNjcyZGQ2
ZGViOGI0NDkyNWE3YzhmZmNlYzhlMDAwMi4uNWI1YTAxODUwZjNhZWE3ZjM2NjBlZjdkZGRjYWI5
ZmE4Y2RmN2ViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTEwLTIxICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENv
bnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGV2aWNlQ29udHJvbGxlciBiYXNlLWNsYXNzIGZvciBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuCisgICAgICAgIEFuZCBzb29uLXRvLWJlLWFkZGVkIERldmljZU1vdGlvbkNvbnRyb2xs
ZXIgYW5kIFByb3hpbWl0eUNvbnRyb2xsZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
OjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6Omhhc0xhc3REYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Z2V0TGFzdEV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJv
bSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6fkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcik6Cisg
ICAgICAgIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3VzcGVuZEFjdGl2ZURPTU9i
amVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9iamVj
dHMpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKEVtcHR5RGV2
aWNlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RGV2aWNlQ2xpZW50OjpzdGFydFVw
ZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RGV2aWNlQ2xpZW50OjpzdG9wVXBkYXRp
bmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBwYWdl
L0RldmljZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2
aWNlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNsaWVudDo6fkRldmljZUNsaWVu
dCk6CisgICAgICAgICogcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OkRldmljZUNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNl
RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpyZW1v
dmVEZXZpY2VFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xs
ZXI6OnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUNvbnRyb2xsZXI6OmRpc3BhdGNoRGV2aWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlQ29udHJvbGxlcjo6ZmlyZURldmljZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmlj
ZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6fkRldmlj
ZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6aXNBY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6Omhhc0xhc3REYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmdldExhc3RFdmVudCk6CisKIDIwMTItMTAtMjEgIFNo
aW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFNoYWRvdyBET006IE5vZGUgcmVtb3ZhbCBkb2Vzbid0IHJlZmxlY3QuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCmluZGV4IDA2YmIzMjIwYTdjMDY5ZDBkYWQ0YmYyYzRmYjMyNmY2MTc4YzM2ZTguLmYwZGQx
MThjZDRiZmNlNjk2YjcxMzE0NTE2ZDdiYjQyY2MxZDJmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTItMTAtMjEgIEtpaG9uZyBLd29uICA8a2lob25nLmt3b25Ac2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgQWRkIERldmljZUNvbnRyb2xsZXIgYmFzZS1jbGFzcyB0byByZW1v
dmUgZHVwbGljYXRpb24gb2YgRGV2aWNlWFhYQ29udHJvbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njg5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdGF0aWNfY2FzdCBmb3IgdG9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudE1vY2soKSB3aGljaCBuZWVkcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dAorICAgICAgICBidXQgRGV2aWNlQ29udHJvbGxlcjo6Y2xpZW50KCkgcmV0dXJucyBEZXZpY2VD
bGllbnQgb2JqZWN0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tE
ZXZpY2VPcmllbnRhdGlvbik6CisKIDIwMTItMTAtMTcgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3Iu
YXJuZS52ZXN0Ym9AZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gTW9kdWxhcml6ZSBkb2N1bWVu
dGF0aW9uIGZvciBRdFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3OGY5ODk4ZGY0MWEx
MDc1N2RkYjM0YmY1YTljODg4YzQ5ODJjODQwLi5hODUzODQ4N2VkZWNjYzIyNmJiNzE0NjI2ZjIw
YWM2M2M2YzkxNWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTcwNyw2ICsxNzA3LDcgQEAg
U0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAog
ICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAogICAgIHBhZ2UvQ3J5cHRvLmNwcAor
ICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0RpYWdub3N0aWNMb2dnaW5n
S2V5cy5jcHAKICAgICBwYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcAogICAgIHBhZ2UvRE9NU2Vs
ZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggY2ZmOThjODZlN2Zh
NWIwMmU0MDRmZGNjNDVlZjg2M2RhNjA4ODUxZS4uZDJkZGE3Y2E5NGZiZTdjMDRjMGRhZjQ1YzM4
NDdhZmM0OTdmZTZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MDAxLDYg
KzQwMDEsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29v
cmRpbmF0ZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL0NyeXB0by5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVu
dC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFn
ZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdu
b3N0aWNMb2dnaW5nS2V5cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlY3VyaXR5UG9s
aWN5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAwZGQ0OWU3YTMxZWZhNjI1YTU2MzViZWM5OGRjMWNh
Y2RiODA2YTE0Li5mMGNjODM0YWNiZDUxNjlkYzdhMWJmMGFjMWJjNjY3ZTc5Zjc4Y2FhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTg2OSw2ICs4NjksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5jcHAgXAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cCBcCiAgICAgcGFnZS9DcnlwdG8uY3BwIFwKKyAgICBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3Bw
IFwKICAgICBwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgXAogICAgIHBhZ2UvRE9NU2Vs
ZWN0aW9uLmNwcCBcCiAgICAgcGFnZS9ET01UaW1lci5jcHAgXApAQCAtMTk5NCw2ICsxOTk1LDgg
QEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaCBcCiAgICAg
cGFnZS9Db250ZXh0TWVudVByb3ZpZGVyLmggXAogICAgIHBhZ2UvQ29vcmRpbmF0ZXMuaCBcCisg
ICAgcGFnZS9EZXZpY2VDbGllbnQuaCBcCisgICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmggXAog
ICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmggXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9u
LmggXAogICAgIHBhZ2UvRE9NVGltZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMDhjNWQ2N2Yz
NjczMzBkYTQ5ZjQ3MjA2MmVkZWM2NmE1ZGVhZjhmZC4uOTgyYzIwODY3MGQ1MDkzZDNjYWZjZDQ2
Y2RjYjI4YTM2Y2YxNGJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzExMSw2ICszMTExLDkgQEAK
ICAgICAgICAgICAgICdwYWdlL0NvbnRleHRNZW51UHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAn
cGFnZS9DcnlwdG8uY3BwJywKICAgICAgICAgICAgICdwYWdlL0NyeXB0by5oJywKKyAgICAgICAg
ICAgICdwYWdlL0RldmljZUNsaWVudC5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNvbnRy
b2xsZXIuY3BwJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNvbnRyb2xsZXIuaCcsCiAgICAg
ICAgICAgICAncGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwJywKICAgICAgICAgICAgICdw
YWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oJywKICAgICAgICAgICAgICdwYWdlL0RPTVNlY3Vy
aXR5UG9saWN5LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IGM3NjZjMDZmNmIxNGUzNzAyZWM2NmI0ZjNjNTNiOWE1OTMyNGE1ZGEuLmJm
MGE5NzcyY2Y0NzdmNmI3NzlkMTQzMjI4ZjA2Y2QwYTE2NTBlN2UgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNjkwNyw2ICsyNjkwNywxOCBA
QAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdl
XERldmljZUNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwYWdlXERldmljZUNvbnRyb2xsZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNvbnRyb2xsZXIuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxE
aWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNjg5ZjQ2
YjYwN2RkN2E0YmJmZGIwNzdlODQyMzY4ZjVlMmUwYTdhLi4yODRhNjczOWJlOWIxNGE1YTQyY2Q2
YzdjNWI0NDcxNzQ4MThiMDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODc1LDYgKzU4NzUsOSBAQAogCQlDQUU5RjkwRjE0
NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAg
LyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi87IH07CiAJCUNBRTlGOTEwMTQ2NDQxRjAwMEMy
NDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0
UmF0aW9WYWx1ZS5oICovOyB9OwogCQlDQUU5RjkxMDE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFy
aWFibGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFsdWUuaCAqLzsgfTsK
KwkJQ0NDMkI1MTQxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTAxNUY2MTMwNjAwNDhD
REQ2IC8qIERldmljZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUNDQzJCNTE1MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEND
QzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLzsgfTsKKwkJ
Q0NDMkI1MTYxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEyMTVGNjEzMDYwMDQ4
Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxMjdERUQxNEYzMDk3RDAwRTg0Nzc5IC8qIFdlYkNvcmVG
dWxsU2NyZWVuV2luZG93Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2lu
ZG93Lm1tICovOyB9OwogCQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxT
Y3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMjdG
NkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFMjE0NTc2NzU4MDA3ODIw
N0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTMyMzMsNiArMTMyMzYsOSBA
QAogCQlDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEUxNDY0NDFGMDAwQzI0
NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NWYXJpYWJsZVZhbHVlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBE
ZXZpY2VDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERldmljZUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDQ0My
QjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVl
bldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnVsbFNj
cmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMw
OTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0Y2RTAxNDU3NUMxQjAwNzgyMDdEIC8qIE1l
ZGlhQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFDb250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE1ODE1LDYgKzE1ODIxLDkgQEAKIAkJCQk5NzVDQTI4NzEzMDM2
NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlB
RDkgLyogQ3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0
by5pZGwgKi8sCisJCQkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5o
ICovLAorCQkJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNw
cCAqLywKKwkJCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5o
ICovLAogCQkJCUNEMzdCMzc0MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tl
eXMuY3BwICovLAogCQkJCUNEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9n
Z2luZ0tleXMuaCAqLywKIAkJCQkyRDlBMjQ2QTE1QjlCQkREMDBEMzQ1MjcgLyogRE9NU2VjdXJp
dHlQb2xpY3kuY3BwICovLApAQCAtMjI3MTgsNiArMjI3MjcsOCBAQAogCQkJCTkzMzA5REUxMDk5
RTY0OTIwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDE2NjBBNTEzNzg3QzZEMDAxRkZBN0IgLyogRGVub3JtYWxEaXNhYmxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTdDOUFCRjkxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJD
b250cm9sLmggaW4gSGVhZGVycyAqLywKKwkJCQlDQ0MyQjUxNDE1RjYxMzA2MDA0OENERDYgLyog
RGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDQ0MyQjUxNjE1RjYxMzA2MDA0OENE
RDYgLyogRGV2aWNlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFBNTcxMjBB
NUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFGQjFBNTkxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxRkIxQTVCMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25E
YXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MzAzLDYgKzI2MzE0LDcgQEAKIAkJCQk5MzMwOURE
RTA5OUU2NDkyMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5MzMwOURFMDA5OUU2NDkyMDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0M5QUJGODEzNTdBM0JGMDBGNTUwM0Yg
LyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0NDMkI1MTUx
NUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1v
dGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEw
IC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAppbmRleCA0MDQ5YzAzYTRhMTQ0YTc0NTIy
OWEwNTQxMzgxY2Q1N2UxNGM2NWI1Li44NWQ2MmVjMGQ3YmQ0NmJmOWE0NjJjOWI1MmVjYTlhNDgx
MWVlYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25D
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQu
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgMjAxMCwgVGhlIEFuZHJvaWQgT3Bl
biBTb3VyY2UgUHJvamVjdAorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI2LDE4ICsyNywxOCBAQAogI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudF9oCiAj
ZGVmaW5lIERldmljZU9yaWVudGF0aW9uQ2xpZW50X2gKIAorI2luY2x1ZGUgIkRldmljZUNsaWVu
dC5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcjsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKIGNsYXNzIFBhZ2U7CiAKLWNs
YXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50IDogcHVibGljIERldmljZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGV2aWNl
T3JpZW50YXRpb25DbGllbnQoKSB7fQogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRV
cGRhdGluZygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgPSAwOwogICAg
IHZpcnR1YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3ll
ZCgpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIuY3BwCmluZGV4IDMwMmRiNjEyNDM0YmE0ZDZhNTkyN2M4ZDNmZWM4Mzc2MDg3
ZWFiNzUuLjQxNTk1NDZiMjRhZjhiMGFlM2I1NjM3YTJjNGJjOWVmYzRlZmM2NTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNv
dXJjZSBQcm9qZWN0CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzQsMTcgKzM1LDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcjo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFBhZ2UqIHBhZ2UsIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChjbGllbnQpCisgICAg
OiBEZXZpY2VDb250cm9sbGVyKGNsaWVudCkKICAgICAsIG1fcGFnZShwYWdlKQotICAgICwgbV90
aW1lcih0aGlzLCAmRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjp0aW1lckZpcmVkKQogewog
ICAgIEFTU0VSVChtX2NsaWVudCk7Ci0gICAgbV9jbGllbnQtPnNldENvbnRyb2xsZXIodGhpcyk7
Ci19Ci0KLURldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6fkRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcigpCi17Ci0gICAgbV9jbGllbnQtPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRl
c3Ryb3llZCgpOworICAgIHN0YXRpY19jYXN0PERldmljZU9yaWVudGF0aW9uQ2xpZW50Kj4obV9j
bGllbnQpLT5zZXRDb250cm9sbGVyKHRoaXMpOwogfQogCiBQYXNzT3duUHRyPERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcj4gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpjcmVhdGUoUGFn
ZSogcGFnZSwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCkKQEAgLTUyLDkxICs0Nywx
OSBAQCBQYXNzT3duUHRyPERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4gRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyOjpjcmVhdGUoUGFnZQogICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKHBhZ2UsIGNsaWVudCkpOwogfQogCi12b2lkIERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6dGltZXJGaXJlZChUaW1lcjxEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXI+KiB0aW1lcikKLXsKLSAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9
PSAmbV90aW1lcik7Ci0gICAgQVNTRVJUKG1fY2xpZW50LT5sYXN0T3JpZW50YXRpb24oKSk7Ci0K
LSAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25EYXRhPiBvcmllbnRhdGlvbiA9IG1fY2xpZW50
LT5sYXN0T3JpZW50YXRpb24oKTsKLSAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25FdmVudD4g
ZXZlbnQgPSBEZXZpY2VPcmllbnRhdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRldmlj
ZW9yaWVudGF0aW9uRXZlbnQsIG9yaWVudGF0aW9uLmdldCgpKTsKLQotICAgIFZlY3RvcjxSZWZQ
dHI8RE9NV2luZG93PiA+IGxpc3RlbmVyc1ZlY3RvcjsKLSAgICBjb3B5VG9WZWN0b3IobV9uZXdM
aXN0ZW5lcnMsIGxpc3RlbmVyc1ZlY3Rvcik7Ci0gICAgbV9uZXdMaXN0ZW5lcnMuY2xlYXIoKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVyc1ZlY3Rvci5zaXplKCk7ICsraSkK
LSAgICAgICAgbGlzdGVuZXJzVmVjdG9yW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLX0KLQot
dm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmFkZExpc3RlbmVyKERPTVdpbmRvdyog
d2luZG93KQotewotICAgIC8vIElmIHRoZSBjbGllbnQgYWxyZWFkeSBoYXMgYW4gb3JpZW50YXRp
b24sIHdlIHNob3VsZCBmaXJlIGFuIGV2ZW50IHdpdGggdGhhdAotICAgIC8vIG9yaWVudGF0aW9u
LiBUaGUgZXZlbnQgaXMgZmlyZWQgYXN5bmNocm9ub3VzbHksIGJ1dCB3aXRob3V0Ci0gICAgLy8g
d2FpdGluZyBmb3IgdGhlIGNsaWVudCB0byBnZXQgYSBuZXcgb3JpZW50YXRpb24uCi0gICAgaWYg
KG1fY2xpZW50LT5sYXN0T3JpZW50YXRpb24oKSkgewotICAgICAgICBtX25ld0xpc3RlbmVycy5h
ZGQod2luZG93KTsKLSAgICAgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAg
ICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICB9Ci0KLSAgICAvLyBUaGUgY2xpZW50IG11
c3Qgbm90IGNhbGwgYmFjayBzeW5jaHJvbm91c2x5LgotICAgIGJvb2wgd2FzRW1wdHkgPSBtX2xp
c3RlbmVycy5pc0VtcHR5KCk7Ci0gICAgbV9saXN0ZW5lcnMuYWRkKHdpbmRvdyk7Ci0gICAgaWYg
KHdhc0VtcHR5KQotICAgICAgICBtX2NsaWVudC0+c3RhcnRVcGRhdGluZygpOwotfQotCi12b2lk
IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlTGlzdGVuZXIoRE9NV2luZG93KiB3
aW5kb3cpCi17Ci0gICAgbV9saXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7Ci0gICAgbV9zdXNwZW5k
ZWRMaXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7Ci0gICAgbV9uZXdMaXN0ZW5lcnMucmVtb3ZlKHdp
bmRvdyk7Ci0gICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9jbGllbnQt
PnN0b3BVcGRhdGluZygpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
cmVtb3ZlQWxsTGlzdGVuZXJzKERPTVdpbmRvdyogd2luZG93KQordm9pZCBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXI6OmRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9yaWVudGF0
aW9uRGF0YSogb3JpZW50YXRpb24pCiB7Ci0gICAgLy8gTWF5IGJlIGNhbGxlZCB3aXRoIGEgRE9N
V2luZG93IHRoYXQncyBub3QgYSBsaXN0ZW5lci4KLSAgICBpZiAoIW1fbGlzdGVuZXJzLmNvbnRh
aW5zKHdpbmRvdykpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fbGlzdGVuZXJzLnJlbW92ZUFs
bCh3aW5kb3cpOwotICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOwot
ICAgIG1fbmV3TGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOwotICAgIGlmIChtX2xpc3RlbmVycy5p
c0VtcHR5KCkpCi0gICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKKyAgICBkaXNwYXRj
aERldmljZUV2ZW50KERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZGV2aWNlb3JpZW50YXRpb25FdmVudCwgb3JpZW50YXRpb24pKTsKIH0KIAotdm9pZCBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2lu
ZG93KiB3aW5kb3cpCitib29sIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6aGFzTGFzdERh
dGEoKQogewotICAgIGlmICghbV9saXN0ZW5lcnMuY29udGFpbnMod2luZG93KSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaW50IGNvdW50ID0gbV9saXN0ZW5lcnMuY291bnQod2luZG93KTsKLSAg
ICByZW1vdmVBbGxMaXN0ZW5lcnMod2luZG93KTsKLSAgICB3aGlsZSAoY291bnQtLSkKLSAgICAg
ICAgbV9zdXNwZW5kZWRMaXN0ZW5lcnMuYWRkKHdpbmRvdyk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PERldmljZU9yaWVudGF0aW9uQ2xpZW50Kj4obV9jbGllbnQpLT5sYXN0T3JpZW50YXRpb24o
KTsKIH0KIAotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnJlc3VtZUV2ZW50c0Zv
ckFsbExpc3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKK1Bhc3NSZWZQdHI8RXZlbnQ+IERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Z2V0TGFzdEV2ZW50KCkKIHsKLSAgICBpZiAoIW1fc3Vz
cGVuZGVkTGlzdGVuZXJzLmNvbnRhaW5zKHdpbmRvdykpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGludCBjb3VudCA9IG1fc3VzcGVuZGVkTGlzdGVuZXJzLmNvdW50KHdpbmRvdyk7Ci0gICAgbV9z
dXNwZW5kZWRMaXN0ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7Ci0gICAgd2hpbGUgKGNvdW50LS0p
Ci0gICAgICAgIGFkZExpc3RlbmVyKHdpbmRvdyk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRhdGlv
bkRhdGEqIG9yaWVudGF0aW9uKQotewotICAgIG9yaWVudGF0aW9uID0gSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpvdmVycmlkZURldmljZU9yaWVudGF0aW9uKG1fcGFnZSwgb3JpZW50YXRpb24p
OwotICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkV2ZW50PiBldmVudCA9IERldmljZU9yaWVu
dGF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCwg
b3JpZW50YXRpb24pOwotICAgIFZlY3RvcjxSZWZQdHI8RE9NV2luZG93PiA+IGxpc3RlbmVyc1Zl
Y3RvcjsKLSAgICBjb3B5VG9WZWN0b3IobV9saXN0ZW5lcnMsIGxpc3RlbmVyc1ZlY3Rvcik7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lcnNWZWN0b3Iuc2l6ZSgpOyArK2kpCi0g
ICAgICAgIGxpc3RlbmVyc1ZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgcmV0
dXJuIERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGV2aWNlb3Jp
ZW50YXRpb25FdmVudCwgc3RhdGljX2Nhc3Q8RGV2aWNlT3JpZW50YXRpb25DbGllbnQqPihtX2Ns
aWVudCktPmxhc3RPcmllbnRhdGlvbigpKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKQEAgLTE0NSw2ICs2OCwx
MSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6c3Vw
cGxlbWVudE5hbWUoKQogICAgIHJldHVybiBuYW1lOwogfQogCitEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIqIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShQYWdlKiBwYWdlKQor
eworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqPihT
dXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsKK30KKwogYm9v
bCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoUGFnZSogcGFnZSkKIHsK
ICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBzZWxmID0gRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCmluZGV4IGY1ZTZmOTUwM2MxM2VkOWY5MmU5Mjhm
OTFlMWZiNWIyMzI0MGUwZWQuLjJjNTQxNDJlZGZlNzFiZjkwYWVlYWI1OTI5ZDFkYjQ3NjBiODA2
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IDIwMTAsIFRoZSBBbmRyb2lk
IE9wZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0
cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNiw1MyArMjcsMzMgQEAKICNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyX2gKICNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyX2gKIAotI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJUaW1lci5oIgotCisj
aW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNl
dC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0
YTsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50OworY2xhc3MgRGV2aWNlT3JpZW50YXRp
b25EYXRhOwogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3Vw
cGxlbWVudDxQYWdlPiB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgOiBwdWJs
aWMgRGV2aWNlQ29udHJvbGxlciB7CiBwdWJsaWM6Ci0gICAgfkRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcigpOworICAgIH5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSB7IH07CiAKICAg
ICBzdGF0aWMgUGFzc093blB0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQ
YWdlKiwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqKTsKIAotICAgIHZvaWQgYWRkTGlzdGVuZXIo
RE9NV2luZG93Kik7Ci0gICAgdm9pZCByZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqKTsKLSAgICB2
b2lkIHJlbW92ZUFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKLQotICAgIHZvaWQgc3VzcGVuZEV2
ZW50c0ZvckFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKLSAgICB2b2lkIHJlc3VtZUV2ZW50c0Zv
ckFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKLQogICAgIHZvaWQgZGlkQ2hhbmdlRGV2aWNlT3Jp
ZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb25EYXRhKik7CiAKLSAgICBib29sIGlzQWN0aXZlKCkg
eyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQotCi0gICAgRGV2aWNlT3JpZW50YXRp
b25DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CisgICAgdmlydHVh
bCBib29sIGhhc0xhc3REYXRhKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEV2
ZW50PiBnZXRMYXN0RXZlbnQoKSBPVkVSUklERTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7Ci0gICAgc3RhdGljIERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1l
bnROYW1lKCkpKTsgfQorICAgIHN0YXRpYyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGZy
b20oUGFnZSopOwogICAgIHN0YXRpYyBib29sIGlzQWN0aXZlQXQoUGFnZSopOwogCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcihQYWdlKiwgRGV2aWNl
T3JpZW50YXRpb25DbGllbnQqKTsKIAotICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI+Kik7Ci0KLSAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCog
bV9jbGllbnQ7CiAgICAgUGFnZSogbV9wYWdlOwotICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8
UmVmUHRyPERPTVdpbmRvdz4gPiBMaXN0ZW5lcnNDb3VudGVkU2V0OwotICAgIExpc3RlbmVyc0Nv
dW50ZWRTZXQgbV9saXN0ZW5lcnM7Ci0gICAgTGlzdGVuZXJzQ291bnRlZFNldCBtX3N1c3BlbmRl
ZExpc3RlbmVyczsKLSAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPERPTVdpbmRvdz4gPiBMaXN0
ZW5lcnNTZXQ7Ci0gICAgTGlzdGVuZXJzU2V0IG1fbmV3TGlzdGVuZXJzOwotICAgIFRpbWVyPERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4gbV90aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGU4NWM4ZjFjMDczZmZlMTBkYTA3
Y2ZiNGJjZTNiY2ViOTQ0NDczYTYuLmFiZmU0OTU3MjRhNDUxNDQ3ZDUwMzlhZjU2OTY2YzRjODZk
MTdhZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtOCw2ICs4LDcgQEAKICAqIENvcHly
aWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMSwgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZCAyMDEwLTIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMjE4MSw5ICsyMTgyLDYgQEAgdm9pZCBEb2N1bWVudDo6c3VzcGVuZEFj
dGl2ZURPTU9iamVjdHMoQWN0aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5zaW9uIHdoeSkK
IAogICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90
aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5zdXNwZW5k
RXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKLSAgICBpZiAoRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnN1c3BlbmRFdmVudHNGb3JBbGxM
aXN0ZW5lcnMoZG9tV2luZG93KCkpOwotCiAjZW5kaWYKIH0KIApAQCAtMjE5Nyw4ICsyMTk1LDYg
QEAgdm9pZCBEb2N1bWVudDo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0cygpCiAKICAgICBpZiAoRGV2
aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6
OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRzRm9yQWxsTGlz
dGVuZXJzKGRvbVdpbmRvdygpKTsKLSAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
KiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkp
Ci0gICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5k
b3coKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4
IDljMmMyM2QzZTA4YThmZDE3OGUxODViNThhZTFjYTk1MWEyYzQwNDUuLjNjZDRjZTEyNDkwZWJm
MTlmM2MzODYyNmU1NTVjZGEzZGQ4YWEyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKQEAgLTU3MSw2ICs1NzEsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBoaWRl
SGlnaGxpZ2h0KCkgeyB9CiB9OwogCitjbGFzcyBFbXB0eURldmljZUNsaWVudCA6IHB1YmxpYyBE
ZXZpY2VDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkg
eyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpIHsgfQorfTsKKwogY2xhc3MgRW1w
dHlEZXZpY2VNb3Rpb25DbGllbnQgOiBwdWJsaWMgRGV2aWNlTW90aW9uQ2xpZW50IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250cm9sbGVy
KikgeyB9CkBAIC01ODMsOCArNTg5LDYgQEAgcHVibGljOgogY2xhc3MgRW1wdHlEZXZpY2VPcmll
bnRhdGlvbkNsaWVudCA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgeyB9CiAgICAgdmlydHVhbCBEZXZpY2VPcmllbnRhdGlv
bkRhdGEqIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgeyB9CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGZhYTRiYTA0ODYxYzhmMzdjZTY5ODBjNTg4YTJi
N2QyZTJjOTk3ZWIuLjcyMDU2MTk3OTJkNjQ5ZDQxMWIzMmE2YzEyZWMwYTE1MTM2ZThiNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9u
aWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xNTgzLDcgKzE1ODQsNyBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudAogICAgICAgICAg
ICAgY29udHJvbGxlci0+YWRkTGlzdGVuZXIodGhpcyk7CiAgICAgfSBlbHNlIGlmIChldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQgJiYgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6ZGV2aWNlT3JpZW50YXRpb25FbmFibGVkKCkpIHsKICAgICAgICAgaWYgKERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgY29udHJvbGxlci0+YWRkTGlz
dGVuZXIodGhpcyk7CisgICAgICAgICAgICBjb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3Rl
bmVyKHRoaXMpOwogICAgIH0KICNlbmRpZgogCkBAIC0xNjEyLDcgKzE2MTMsNyBAQCBib29sIERP
TVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgRXZlbnRMaXN0ZW5lcgogICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIo
dGhpcyk7CiAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9y
aWVudGF0aW9uRXZlbnQpIHsKICAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkp
KQotICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAgICAg
ICAgICBjb250cm9sbGVyLT5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKHRoaXMpOwogICAgIH0K
ICNlbmRpZgogCkBAIC0xNjY5LDcgKzE2NzAsNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVtb3ZlQWxs
RXZlbnRMaXN0ZW5lcnMoKQogICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9s
bGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250
cm9sbGVyLT5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CiAgICAgaWYgKERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
ZnJvbShwYWdlKCkpKQotICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxMaXN0ZW5lcnModGhp
cyk7CisgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKHRo
aXMpOwogI2VuZGlmCiAKICAgICByZW1vdmVBbGxVbmxvYWRFdmVudExpc3RlbmVycyh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1MmFhZDMyZmFjOTEwYTg5
YTJlOTlkYzNiM2NkODJjZmRiOGMxZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RldmljZUNsaWVudC5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBEZXZpY2VDbGllbnRfaAorI2RlZmluZSBEZXZpY2VDbGllbnRfaAorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZUNsaWVudCB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+RGV2aWNlQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRh
dGluZygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgPSAwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlQ2xpZW50X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5MTBlZjg1MDk0
YWM2YzAwOTljZTIwYTM0NzkzM2Y0OGMzMjVkYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VD
b250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEZXZpY2VD
bGllbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VDb250cm9sbGVyOjpEZXZpY2VDb250cm9sbGVyKERl
dmljZUNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV90aW1l
cih0aGlzLCAmRGV2aWNlQ29udHJvbGxlcjo6ZmlyZURldmljZUV2ZW50KQoreworICAgIEFTU0VS
VChtX2NsaWVudCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZlbnRM
aXN0ZW5lcihET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBib29sIHdhc0VtcHR5ID0gbV9saXN0
ZW5lcnMuaXNFbXB0eSgpOworICAgIG1fbGlzdGVuZXJzLmFkZCh3aW5kb3cpOworCisgICAgaWYg
KGhhc0xhc3REYXRhKCkpIHsKKyAgICAgICAgbV9sYXN0RXZlbnRMaXN0ZW5lcnMuYWRkKHdpbmRv
dyk7CisgICAgICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV90aW1l
ci5zdGFydE9uZVNob3QoMCk7CisgICAgfQorCisgICAgaWYgKCF3YXNFbXB0eSkKKyAgICAgICAg
bV9jbGllbnQtPnN0YXJ0VXBkYXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpy
ZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbGlz
dGVuZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIG1fbGFzdEV2ZW50TGlzdGVuZXJzLnJlbW92ZSh3
aW5kb3cpOworICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fY2xpZW50
LT5zdG9wVXBkYXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVBbGxE
ZXZpY2VFdmVudExpc3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBtX2xpc3RlbmVy
cy5yZW1vdmVBbGwod2luZG93KTsKKyAgICBtX2xhc3RFdmVudExpc3RlbmVycy5yZW1vdmVBbGwo
d2luZG93KTsKKyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX2NsaWVu
dC0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hE
ZXZpY2VFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBWZWN0b3I8RE9NV2lu
ZG93Kj4gbGlzdGVuZXJWZWN0b3I7CisgICAgY29weVRvVmVjdG9yKG1fbGlzdGVuZXJzLCBsaXN0
ZW5lclZlY3Rvcik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lclZlY3Rvci5z
aXplKCk7ICsraSkgeworICAgICAgICBpZiAoIWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVudCgp
LT5hY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkKKyAgICAgICAgICAgICYmICFsaXN0ZW5l
clZlY3RvcltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSkKKyAg
ICAgICAgbGlzdGVuZXJWZWN0b3JbaV0tPmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIH0KK30K
Kwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQoVGltZXI8RGV2aWNlQ29u
dHJvbGxlcj4qIHRpbWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZt
X3RpbWVyKTsKKyAgICBBU1NFUlQoaGFzTGFzdERhdGEoKSk7CisKKyAgICBtX3RpbWVyLnN0b3Ao
KTsKKyAgICBWZWN0b3I8RE9NV2luZG93Kj4gbGlzdGVuZXJWZWN0b3I7CisgICAgY29weVRvVmVj
dG9yKG1fbGFzdEV2ZW50TGlzdGVuZXJzLCBsaXN0ZW5lclZlY3Rvcik7CisgICAgbV9sYXN0RXZl
bnRMaXN0ZW5lcnMuY2xlYXIoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVy
VmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICghbGlzdGVuZXJWZWN0b3JbaV0tPmRv
Y3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKQorICAgICAgICAgICAgJiYg
IWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVudCgpLT5hY3RpdmVET01PYmplY3RzQXJlU3RvcHBl
ZCgpKQorICAgICAgICBsaXN0ZW5lclZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVudChnZXRMYXN0RXZl
bnQoKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGV2aWNlQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3YjBjNTQ0M2FlMTcyYjBlNzk4MTM2
MGI2OGQ0NzNhMjI4N2ZmMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZUNvbnRyb2xsZXIuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgRGV2aWNlQ29udHJvbGxlcl9oCisjZGVmaW5lIERldmljZUNvbnRyb2xsZXJf
aAorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2lu
Y2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworY2xhc3MgRGV2aWNlQ2xpZW50Owor
Y2xhc3MgUGFnZTsKKworY2xhc3MgRGV2aWNlQ29udHJvbGxlciA6IHB1YmxpYyBTdXBwbGVtZW50
PFBhZ2U+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEZXZpY2VDb250cm9sbGVyKERldmljZUNs
aWVudCopOworICAgIH5EZXZpY2VDb250cm9sbGVyKCkgeyB9CisKKyAgICB2b2lkIGFkZERldmlj
ZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Kik7CisgICAgdm9pZCByZW1vdmVEZXZpY2VFdmVudExp
c3RlbmVyKERPTVdpbmRvdyopOworICAgIHZvaWQgcmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5l
cnMoRE9NV2luZG93Kik7CisKKyAgICB2b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQoUGFzc1JlZlB0
cjxFdmVudD4pOworICAgIGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNF
bXB0eSgpOyB9CisgICAgRGV2aWNlQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsg
fQorCisgICAgdmlydHVhbCBib29sIGhhc0xhc3REYXRhKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8RXZlbnQ+IGdldExhc3RFdmVudCgpIHsgcmV0dXJuIDA7IH0K
KworcHJvdGVjdGVkOgorICAgIHZvaWQgZmlyZURldmljZUV2ZW50KFRpbWVyPERldmljZUNvbnRy
b2xsZXI+Kik7CisKKyAgICBIYXNoQ291bnRlZFNldDxET01XaW5kb3cqPiBtX2xpc3RlbmVyczsK
KyAgICBIYXNoQ291bnRlZFNldDxET01XaW5kb3cqPiBtX2xhc3RFdmVudExpc3RlbmVyczsKKyAg
ICBEZXZpY2VDbGllbnQqIG1fY2xpZW50OworICAgIFRpbWVyPERldmljZUNvbnRyb2xsZXI+IG1f
dGltZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VD
b250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggNzdhNWMyOTk0NDllNGY4ZWIz
MTgwNmY5OWE5NWY2MmU3OTQ4YzI0MS4uNjY2MTc5MjNlNDdmZTM5NzAzNThmZmM5NDc0MzZmOTBh
ZDNlYjg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTcyMSw3ICs3MjEsNyBAQCB2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oUVdlYlBh
Z2UqIHBhZ2UsIGJvb2wgY2FuUAogewogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAg
ICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7Ci0gICAgRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2soRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKGNvcmVQYWdlKS0+
Y2xpZW50KCkpOworICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9
IHRvRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKHN0YXRpY19jYXN0PERldmljZU9yaWVudGF0
aW9uQ2xpZW50Kj4oRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKGNvcmVQYWdlKS0+
Y2xpZW50KCkpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRPcmllbnRhdGlvbihEZXZpY2VPcmllbnRh
dGlvbkRhdGE6OmNyZWF0ZShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92aWRlQmV0YSwg
YmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSkpOwogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171580</attachid>
            <date>2012-10-30 21:51:09 -0700</date>
            <delta_ts>2012-10-31 04:48:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96894-20121031134931.patch</filename>
            <type>text/plain</type>
            <size>36063</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5Nzg3MzJhZGVlNWMz
NmFjZmVjZjFkYjgxYmU3MDVkOThmNzE2Yi4uNTczYjY2YzdiYzJjZDc5NzlmMTcwMzdiODM0MGI5
YWM2ZmY1NmI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTEwLTMwICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENv
bnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGV2aWNlQ29udHJvbGxlciB3aGljaCBpcyBleHRyYWN0ZWQgZnJvbSBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uLgorICAgICAgICBBbmQgc29vbi10
by1iZS1hZGRlZCBEZXZpY2VNb3Rpb25Db250cm9sbGVyIGFuZCBQcm94aW1pdHlDb250cm9sbGVy
LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDoKKyAgICAg
ICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgUmVtb3Zl
IG1lbWJlciBmdW5jdGlvbnMgdG8gbW92ZSB0byBEZXZpY2VDb250cm9sbGVyLgorICAgICAgICAt
IGFkZExpc3RlbmVyKCksIHJlbW92ZUxpc3RlbmVyKCksIHJlbW92ZUFsbExpc3RlbmVycygpLCBp
c0FjdGl2ZSgpCisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6
OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6OmRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6aGFzTGFzdERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpnZXRMYXN0RXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9t
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOjp+RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKToKKyAg
ICAgICAgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcik6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgUmVtb3ZlIHN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoKSBh
bmQgcmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJzKCkgZnVuY3Rpb24gY2FsbHMuCisgICAgICAg
IFRoZXNlIGNhbGxzIGNhbiBiZSBtYWRlIGJ5IGNoZWNraW5nIGFjdGl2ZURPTU9iamVjdHNBcmVT
dXNwZW5kZWQoKSBhbmQgYWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSBiZWZvcmUgZGlzcGF0
Y2hFdmVudC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdXNwZW5kQWN0aXZlRE9NT2Jq
ZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0
cyk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoRW1wdHlEZXZp
Y2VDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlEZXZpY2VDbGllbnQ6OnN0YXJ0VXBk
YXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlEZXZpY2VDbGllbnQ6OnN0b3BVcGRhdGlu
Zyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2Uv
RGV2aWNlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZp
Y2VDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2aWNlQ2xpZW50
KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
RGV2aWNlQ29udHJvbGxlciBoYXMgZXh0cmFjdGVkIGZ1bmN0aW9ucyBmcm9tIERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciBhbmQgRGV2aWNlTW90aW9uQ29udHJvbGxlci4KKyAgICAgICAgLSBh
ZGREZXZpY2VFdmVudExpc3RlbmVyKCksIHJlbW92ZURldmljZUV2ZW50bGlzdGVuZXIoKSwgcmVt
b3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMoKSwgZGlzcGF0Y2hEZXZpY2VFdmVudCgpCisgICAg
ICAgIEFsbCBraW5kIG9mIGRldmljZSBldmVudCBjb250cm9sbGVyIHdoaWNoIGhhcyBEZXZpY2VD
bGllbnQgY2FuIGJlIGluaGVyaXRlZCBmcm9tIERldmljZUNvbnRyb2xsZXIuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OkRldmljZUNvbnRy
b2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZl
bnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVE
ZXZpY2VFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6
OnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZUNvbnRyb2xsZXI6OmRpc3BhdGNoRGV2aWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlQ29udHJvbGxlcjo6ZmlyZURldmljZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNv
bnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZUNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6fkRldmljZUNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6aXNBY3RpdmUp
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6Omhhc0xhc3REYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZUNvbnRyb2xsZXI6OmdldExhc3RFdmVudCk6CisKIDIwMTItMTAtMjkgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtSZWZhdG9yaW5n
XSBSZW1vdmUgRWxlbWVudFNoYWRvdzo6aW5zZXJ0aW9uUG9pbnRGb3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5k
ZXggNjBkM2Y5N2FjMDMyMzlmZTA2MDdlMDJmMGU5MjY3Y2VlYzFlNzYxOC4uZmNlZWViZmFmM2Nj
YjI0MWY4YzdiNDU4Nzc5ZDFhMDdjMmRkZDFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0xMC0zMCAgS2lob25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4K
KworICAgICAgICBBZGQgRGV2aWNlQ29udHJvbGxlciBiYXNlLWNsYXNzIHRvIHJlbW92ZSBkdXBs
aWNhdGlvbiBvZiBEZXZpY2VYWFhDb250cm9sZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk2ODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIGNsaWVudCgpIHRvIGRldmljZU9yaWVudGF0aW9u
Q2xpZW50KCkgdG8gZ2V0IERldmljZU9yaWVudGF0aW9uQ2xpZW50Ki4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24pOgorCiAyMDEyLTEw
LTI0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBz
dHJhdGVneSBmb3IgbG9hZGVyIGN1c3RvbWl6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IGY4YWU5YmRlMDliMmFjNTY3YTNlOGM2OTdhM2YyZGQzN2RkNmViNGIuLjkwODQyYmExMzQyNGUx
NDk2ZmRkMDc4MWUxMTBmOTY1MTYzZDgzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzA5
LDYgKzE3MDksNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwCiAgICAgcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCiAgICAgcGFn
ZS9DcnlwdG8uY3BwCisgICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcAogICAgIHBhZ2UvRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzLmNwcAogICAgIHBhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuY3BwCiAg
ICAgcGFnZS9ET01TZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCBiMGJkZDJlYmFiNzNiYTlmYjI2MTI5MzUxOTJjYjNmNTQ5MjM3MDNiLi44ODNhZTk2ZDQ3NWZh
ZDk2MmYzMDEzNDVhOWUxNDUwZDZlODZiM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTQwMDUsNiArNDAwNSw5IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9Db29yZGluYXRlcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmggXAorCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGV2aWNlQ2xpZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxl
ci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NU2VjdXJpdHlQb2xpY3kuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGQxOWQ1YzkwN2ZmNjgyODBm
MDhjOWEwM2U1MmE1MTBhYWU1Nzk4YWUuLjY0ODBlMDg5Yjk5ZjZjMGMxZGE3MTI2NTdmZjg5NWU1
NmZkZTU0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODcxLDYgKzg3MSw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBcCiAgICAgcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0NyeXB0by5jcHAgXAorICAgIHBhZ2UvRGV2aWNl
Q29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCBcCiAg
ICAgcGFnZS9ET01TZWxlY3Rpb24uY3BwIFwKICAgICBwYWdlL0RPTVRpbWVyLmNwcCBcCkBAIC0x
OTk3LDYgKzE5OTgsOCBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5oIFwKICAgICBwYWdlL0NvbnRleHRNZW51UHJvdmlkZXIuaCBcCiAgICAgcGFnZS9Db29y
ZGluYXRlcy5oIFwKKyAgICBwYWdlL0RldmljZUNsaWVudC5oIFwKKyAgICBwYWdlL0RldmljZUNv
bnRyb2xsZXIuaCBcCiAgICAgcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaCBcCiAgICAgcGFn
ZS9ET01TZWxlY3Rpb24uaCBcCiAgICAgcGFnZS9ET01UaW1lci5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCBhNTJhNDMxY2Q4ZjI4OTllOTdiMjY2MzQ5MjM0NzhiNGZhMmIxMTcwLi4wZmIwYzNkYWE3
NjdjMWM2OGU3MmVlMTYzNDNkOWI4OTE2NWZiOGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMTEx
LDYgKzMxMTEsOSBAQAogICAgICAgICAgICAgJ3BhZ2UvQ29udGV4dE1lbnVQcm92aWRlci5oJywK
ICAgICAgICAgICAgICdwYWdlL0NyeXB0by5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvQ3J5cHRv
LmgnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlQ2xpZW50LmgnLAorICAgICAgICAgICAgJ3Bh
Z2UvRGV2aWNlQ29udHJvbGxlci5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlQ29udHJv
bGxlci5oJywKICAgICAgICAgICAgICdwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAnLAog
ICAgICAgICAgICAgJ3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgnLAogICAgICAgICAgICAg
J3BhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMjgwYmUyZTUyNGFlYmQwNDM5NzgyNDIyMzk1ZWMz
YjBmYTAxZTMxYi4uNjZlNzYxYWVjNmQ1MzFlYjRlYzU4NDEyYzIxZDllMjYzOTZjM2JmNCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2OTA3
LDYgKzI2OTA3LDE4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBhZ2VcRGV2aWNlQ2xpZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2aWNlQ29udHJvbGxlci5jcHAiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2aWNl
Q29udHJvbGxlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGE3NjJmOGUxYzBiNDc4MzA3ODI5YWNjMDlhYzI2ODI0YWVjNTBiOGEuLmQ5NDhhOTU4
M2QyMjFiYmI5OGY4YzA1OWIyMmQxMjIxMjhjZGNmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU4ODUsNiArNTg4NSw5IEBA
CiAJCUNBRTlGOTBGMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBEMTQ2
NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLzsgfTsKIAkJQ0FFOUY5
MTAxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2NDQxRjAwMEMyNDVC
MCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggKi87IH07CiAJCUNBRTlGOTEwMTQ2NDQxRjAwMEMy
NDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVW
YWx1ZS5oICovOyB9OworCQlDQ0MyQjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUx
MDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8q
IERldmljZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIu
Y3BwICovOyB9OworCQlDQ0MyQjUxNjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1
MTIxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDEyN0RFRDE0RjMwOTdEMDBFODQ3
NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29y
ZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi87IH07CiAJCUNEMTI3REVFMTRGMzA5ODQwMEU4NDc3OSAv
KiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxs
U2NyZWVuV2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0QyN0Y2RTUxNDU3Njg1QTAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkUy
MTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi87IH07CkBAIC0xMzI1
Myw2ICsxMzI1Niw5IEBACiAJCUNBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RS
YXRpb1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0Fz
cGVjdFJhdGlvVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5Rjkw
RTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhcmlhYmxlVmFsdWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2
IC8qIERldmljZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZp
Y2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0NDMkI1MTExNUY2MTMw
NjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGV2aWNlQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdl
YkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDI3RjZFMDE0NTc1QzFC
MDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUNvbnRyb2xsZXIuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU4MzksNiArMTU4NDUsOSBAQAogCQkJ
CTk3NUNBMjg3MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uY3BwICovLAogCQkJCTk3NUNBMjg4
MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaCAqLywKIAkJCQk5NzVDQTI4OTEzMDM2NUY4MDBF
OTlBRDkgLyogQ3J5cHRvLmlkbCAqLywKKwkJCQlDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyog
RGV2aWNlQ2xpZW50LmggKi8sCisJCQkJQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmlj
ZUNvbnRyb2xsZXIuY3BwICovLAorCQkJCUNDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZp
Y2VDb250cm9sbGVyLmggKi8sCiAJCQkJQ0QzN0IzNzQxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdu
b3N0aWNMb2dnaW5nS2V5cy5jcHAgKi8sCiAJCQkJQ0QzN0IzNzUxNUMxQTdFMTAwNkRDODk4IC8q
IERpYWdub3N0aWNMb2dnaW5nS2V5cy5oICovLAogCQkJCTJEOUEyNDZBMTVCOUJCREQwMEQzNDUy
NyAvKiBET01TZWN1cml0eVBvbGljeS5jcHAgKi8sCkBAIC0yMjc1Miw2ICsyMjc2MSw4IEBACiAJ
CQkJOTMzMDlERTEwOTlFNjQ5MjAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMTY2MEE1MTM3ODdDNkQwMDFGRkE3QiAvKiBEZW5vcm1hbERp
c2FibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0M5QUJGOTEzNTdBM0JGMDBGNTUwM0YgLyog
RGV0YWlsc01hcmtlckNvbnRyb2wuaCBpbiBIZWFkZXJzICovLAorCQkJCUNDQzJCNTE0MTVGNjEz
MDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNDQzJCNTE2
MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMUZCMUE1NzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMUZCMUE1OTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFBNUIxMjBBNUQwNjAwREMwMkEwIC8q
IERldmljZU1vdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjYzMTAsNiArMjYzMjEsNyBA
QAogCQkJCTkzMzA5RERFMDk5RTY0OTIwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5REUwMDk5RTY0OTIwMDU2RTU4MSAvKiBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QzlBQkY4MTM1
N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlDQ0MyQjUxNTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9u
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QTEyMEE1RDA2MDBEQzAy
QTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QzEy
MEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCmluZGV4IDQwNDlj
MDNhNGExNDRhNzQ1MjI5YTA1NDEzODFjZDU3ZTE0YzY1YjUuLjg1ZDYyZWMwZDdiZDQ2YmY5YTQ2
MmM5YjUyZWNhOWE0ODExZWViMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAyMDEwLCBU
aGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjYsMTggKzI3LDE4IEBACiAjaWZuZGVmIERldmljZU9yaWVudGF0
aW9uQ2xpZW50X2gKICNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25DbGllbnRfaAogCisjaW5jbHVk
ZSAiRGV2aWNlQ2xpZW50LmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOwogY2xh
c3MgUGFnZTsKIAotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgeworY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25DbGllbnQgOiBwdWJsaWMgRGV2aWNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIHt9CiAgICAgdmlydHVhbCB2b2lkIHNl
dENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRp
bmcoKSA9IDA7CiAgICAgdmlydHVhbCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIGxhc3RPcmllbnRh
dGlvbigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyRGVzdHJveWVkKCkgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggMzAyZGI2MTI0MzRiYTRkNmE1OTI3
YzhkM2ZlYzgzNzYwODdlYWI3NS4uNDU2OWNjZmE2YjlhMjEyNTVjYTY1NjQyMjZiNTBhZGVmM2I3
YTZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IDIwMTAsIFRoZSBB
bmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5n
IEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNCwxNyArMzUsMTEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoUGFn
ZSogcGFnZSwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCkKLSAgICA6IG1fY2xpZW50
KGNsaWVudCkKKyAgICA6IERldmljZUNvbnRyb2xsZXIoY2xpZW50KQogICAgICwgbV9wYWdlKHBh
Z2UpCi0gICAgLCBtX3RpbWVyKHRoaXMsICZEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnRp
bWVyRmlyZWQpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICBtX2NsaWVudC0+c2V0Q29u
dHJvbGxlcih0aGlzKTsKLX0KLQotRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjp+RGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyKCkKLXsKLSAgICBtX2NsaWVudC0+ZGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyRGVzdHJveWVkKCk7CisgICAgZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKS0+
c2V0Q29udHJvbGxlcih0aGlzKTsKIH0KIAogUGFzc093blB0cjxEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI+IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2Us
IERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQpCkBAIC01Miw5MSArNDcsMjQgQEAgUGFz
c093blB0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcjo6Y3JlYXRlKFBhZ2UKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKIH0KIAotdm9pZCBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXI6OnRpbWVyRmlyZWQoVGltZXI8RGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyPiogdGltZXIpCi17Ci0gICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGlt
ZXIpOwotICAgIEFTU0VSVChtX2NsaWVudC0+bGFzdE9yaWVudGF0aW9uKCkpOwotCi0gICAgUmVm
UHRyPERldmljZU9yaWVudGF0aW9uRGF0YT4gb3JpZW50YXRpb24gPSBtX2NsaWVudC0+bGFzdE9y
aWVudGF0aW9uKCk7Ci0gICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uRXZlbnQ+IGV2ZW50ID0g
RGV2aWNlT3JpZW50YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRh
dGlvbkV2ZW50LCBvcmllbnRhdGlvbi5nZXQoKSk7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPERPTVdp
bmRvdz4gPiBsaXN0ZW5lcnNWZWN0b3I7Ci0gICAgY29weVRvVmVjdG9yKG1fbmV3TGlzdGVuZXJz
LCBsaXN0ZW5lcnNWZWN0b3IpOwotICAgIG1fbmV3TGlzdGVuZXJzLmNsZWFyKCk7Ci0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lcnNWZWN0b3Iuc2l6ZSgpOyArK2kpCi0gICAgICAg
IGxpc3RlbmVyc1ZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVudChldmVudCk7Ci19Ci0KLXZvaWQgRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjphZGRMaXN0ZW5lcihET01XaW5kb3cqIHdpbmRvdykK
LXsKLSAgICAvLyBJZiB0aGUgY2xpZW50IGFscmVhZHkgaGFzIGFuIG9yaWVudGF0aW9uLCB3ZSBz
aG91bGQgZmlyZSBhbiBldmVudCB3aXRoIHRoYXQKLSAgICAvLyBvcmllbnRhdGlvbi4gVGhlIGV2
ZW50IGlzIGZpcmVkIGFzeW5jaHJvbm91c2x5LCBidXQgd2l0aG91dAotICAgIC8vIHdhaXRpbmcg
Zm9yIHRoZSBjbGllbnQgdG8gZ2V0IGEgbmV3IG9yaWVudGF0aW9uLgotICAgIGlmIChtX2NsaWVu
dC0+bGFzdE9yaWVudGF0aW9uKCkpIHsKLSAgICAgICAgbV9uZXdMaXN0ZW5lcnMuYWRkKHdpbmRv
dyk7Ci0gICAgICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV90aW1l
ci5zdGFydE9uZVNob3QoMCk7Ci0gICAgfQotCi0gICAgLy8gVGhlIGNsaWVudCBtdXN0IG5vdCBj
YWxsIGJhY2sgc3luY2hyb25vdXNseS4KLSAgICBib29sIHdhc0VtcHR5ID0gbV9saXN0ZW5lcnMu
aXNFbXB0eSgpOwotICAgIG1fbGlzdGVuZXJzLmFkZCh3aW5kb3cpOwotICAgIGlmICh3YXNFbXB0
eSkKLSAgICAgICAgbV9jbGllbnQtPnN0YXJ0VXBkYXRpbmcoKTsKLX0KLQotdm9pZCBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVyKERPTVdpbmRvdyogd2luZG93KQor
dm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmRpZENoYW5nZURldmljZU9yaWVudGF0
aW9uKERldmljZU9yaWVudGF0aW9uRGF0YSogb3JpZW50YXRpb24pCiB7Ci0gICAgbV9saXN0ZW5l
cnMucmVtb3ZlKHdpbmRvdyk7Ci0gICAgbV9zdXNwZW5kZWRMaXN0ZW5lcnMucmVtb3ZlKHdpbmRv
dyk7Ci0gICAgbV9uZXdMaXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7Ci0gICAgaWYgKG1fbGlzdGVu
ZXJzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9jbGllbnQtPnN0b3BVcGRhdGluZygpOworICAgIGRp
c3BhdGNoRGV2aWNlRXZlbnQoRGV2aWNlT3JpZW50YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50LCBvcmllbnRhdGlvbikpOwogfQogCi12b2lkIERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQWxsTGlzdGVuZXJzKERPTVdpbmRvdyog
d2luZG93KQorRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlcjo6ZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKQogewotICAgIC8vIE1heSBiZSBjYWxsZWQg
d2l0aCBhIERPTVdpbmRvdyB0aGF0J3Mgbm90IGEgbGlzdGVuZXIuCi0gICAgaWYgKCFtX2xpc3Rl
bmVycy5jb250YWlucyh3aW5kb3cpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2xpc3RlbmVy
cy5yZW1vdmVBbGwod2luZG93KTsKLSAgICBtX3N1c3BlbmRlZExpc3RlbmVycy5yZW1vdmVBbGwo
d2luZG93KTsKLSAgICBtX25ld0xpc3RlbmVycy5yZW1vdmUod2luZG93KTsKLSAgICBpZiAobV9s
aXN0ZW5lcnMuaXNFbXB0eSgpKQotICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PERldmljZU9yaWVudGF0aW9uQ2xpZW50Kj4obV9jbGllbnQp
OwogfQogCi12b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6c3VzcGVuZEV2ZW50c0Zv
ckFsbExpc3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKK2Jvb2wgRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyOjpoYXNMYXN0RGF0YSgpCiB7Ci0gICAgaWYgKCFtX2xpc3RlbmVycy5jb250YWlu
cyh3aW5kb3cpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbnQgY291bnQgPSBtX2xpc3RlbmVy
cy5jb3VudCh3aW5kb3cpOwotICAgIHJlbW92ZUFsbExpc3RlbmVycyh3aW5kb3cpOwotICAgIHdo
aWxlIChjb3VudC0tKQotICAgICAgICBtX3N1c3BlbmRlZExpc3RlbmVycy5hZGQod2luZG93KTsK
KyAgICByZXR1cm4gZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKS0+bGFzdE9yaWVudGF0aW9uKCk7
CiB9CiAKLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpyZXN1bWVFdmVudHNGb3JB
bGxMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5kb3cpCitQYXNzUmVmUHRyPEV2ZW50PiBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6OmdldExhc3RFdmVudCgpCiB7Ci0gICAgaWYgKCFtX3N1c3Bl
bmRlZExpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
bnQgY291bnQgPSBtX3N1c3BlbmRlZExpc3RlbmVycy5jb3VudCh3aW5kb3cpOwotICAgIG1fc3Vz
cGVuZGVkTGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOwotICAgIHdoaWxlIChjb3VudC0tKQot
ICAgICAgICBhZGRMaXN0ZW5lcih3aW5kb3cpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb25E
YXRhKiBvcmllbnRhdGlvbikKLXsKLSAgICBvcmllbnRhdGlvbiA9IEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6b3ZlcnJpZGVEZXZpY2VPcmllbnRhdGlvbihtX3BhZ2UsIG9yaWVudGF0aW9uKTsK
LSAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25FdmVudD4gZXZlbnQgPSBEZXZpY2VPcmllbnRh
dGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQsIG9y
aWVudGF0aW9uKTsKLSAgICBWZWN0b3I8UmVmUHRyPERPTVdpbmRvdz4gPiBsaXN0ZW5lcnNWZWN0
b3I7Ci0gICAgY29weVRvVmVjdG9yKG1fbGlzdGVuZXJzLCBsaXN0ZW5lcnNWZWN0b3IpOwotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJzVmVjdG9yLnNpemUoKTsgKytpKQotICAg
ICAgICBsaXN0ZW5lcnNWZWN0b3JbaV0tPmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIHJldHVy
biBEZXZpY2VPcmllbnRhdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRldmljZW9yaWVu
dGF0aW9uRXZlbnQsIGRldmljZU9yaWVudGF0aW9uQ2xpZW50KCktPmxhc3RPcmllbnRhdGlvbigp
KTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6
OnN1cHBsZW1lbnROYW1lKCkKQEAgLTE0NSw2ICs3MywxMSBAQCBjb25zdCBBdG9taWNTdHJpbmcm
IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVy
biBuYW1lOwogfQogCitEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcjo6ZnJvbShQYWdlKiBwYWdlKQoreworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBh
Z2UsIHN1cHBsZW1lbnROYW1lKCkpKTsKK30KKwogYm9vbCBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXI6OmlzQWN0aXZlQXQoUGFnZSogcGFnZSkKIHsKICAgICBpZiAoRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyKiBzZWxmID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBh
Z2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ci5oCmluZGV4IGY1ZTZmOTUwM2MxM2VkOWY5MmU5MjhmOTFlMWZiNWIyMzI0MGUwZWQuLjAwMjEx
OTUwYWMyM2M0OGE5Yjg1MDBjOWFiNDJkNDdjMWJjMGUyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw1MyArMjcsMzQgQEAK
ICNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyX2gKICNkZWZpbmUgRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyX2gKIAotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUg
IlBhZ2UuaCIKLSNpbmNsdWRlICJUaW1lci5oIgotCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKIGNsYXNzIERldmljZU9yaWVudGF0
aW9uQ2xpZW50OworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOwogCi1jbGFzcyBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CitjbGFzcyBE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgRGV2aWNlQ29udHJvbGxlciB7CiBw
dWJsaWM6Ci0gICAgfkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpOworICAgIH5EZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIoKSB7IH07CiAKICAgICBzdGF0aWMgUGFzc093blB0cjxEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgRGV2aWNlT3JpZW50YXRpb25D
bGllbnQqKTsKIAotICAgIHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93Kik7Ci0gICAgdm9pZCBy
ZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqKTsKLSAgICB2b2lkIHJlbW92ZUFsbExpc3RlbmVycyhE
T01XaW5kb3cqKTsKLQotICAgIHZvaWQgc3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyhET01X
aW5kb3cqKTsKLSAgICB2b2lkIHJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhET01XaW5kb3cq
KTsKLQogICAgIHZvaWQgZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRp
b25EYXRhKik7CisgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGRldmljZU9yaWVudGF0aW9u
Q2xpZW50KCk7CiAKLSAgICBib29sIGlzQWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlz
RW1wdHkoKTsgfQotCi0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xpZW50OyB9CisgICAgdmlydHVhbCBib29sIGhhc0xhc3REYXRhKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEV2ZW50PiBnZXRMYXN0RXZlbnQoKSBPVkVS
UklERTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7
Ci0gICAgc3RhdGljIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZnJvbShQYWdlKiBwYWdl
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqPihTdXBw
bGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsgfQorICAgIHN0YXRp
YyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGZyb20oUGFnZSopOwogICAgIHN0YXRpYyBi
b29sIGlzQWN0aXZlQXQoUGFnZSopOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcihQYWdlKiwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqKTsKLQot
ICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+Kik7
CisgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFBhZ2UqLCBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudCopOwogCi0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIG1fY2xpZW50OwogICAg
IFBhZ2UqIG1fcGFnZTsKLSAgICB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PFJlZlB0cjxET01XaW5k
b3c+ID4gTGlzdGVuZXJzQ291bnRlZFNldDsKLSAgICBMaXN0ZW5lcnNDb3VudGVkU2V0IG1fbGlz
dGVuZXJzOwotICAgIExpc3RlbmVyc0NvdW50ZWRTZXQgbV9zdXNwZW5kZWRMaXN0ZW5lcnM7Ci0g
ICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxET01XaW5kb3c+ID4gTGlzdGVuZXJzU2V0OwotICAg
IExpc3RlbmVyc1NldCBtX25ld0xpc3RlbmVyczsKLSAgICBUaW1lcjxEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXI+IG1fdGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCBhNjllMTJlYzc5MTU2ZWE4NWI4NzBkY2Y1M2E3ZDA3Yjcw
MTExMDMyLi40MTdmMTM5MDliMDc1YWE1ZDNkZDc1NDY1YWEzYzdjYWEwNDQ3NTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIxODEsOSArMjE4MSw2IEBAIHZvaWQgRG9jdW1lbnQ6OnN1
c3BlbmRBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6UmVhc29uRm9yU3VzcGVuc2lv
biB3aHkpCiAKICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERl
dmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+
c3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7Ci0gICAgaWYgKERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICBjb250cm9sbGVyLT5zdXNwZW5kRXZlbnRz
Rm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKLQogI2VuZGlmCiB9CiAKQEAgLTIxOTcsOCAr
MjE5NCw2IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHMoKQogCiAgICAg
aWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250
cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50c0Zv
ckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7Ci0gICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShw
YWdlKCkpKQotICAgICAgICBjb250cm9sbGVyLT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMo
ZG9tV2luZG93KCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAppbmRleCA5YzJjMjNkM2UwOGE4ZmQxNzhlMTg1YjU4YWUxY2E5NTFhMmM0MDQ1Li4zY2Q0Y2Ux
MjQ5MGViZjE5ZjNjMzg2MjZlNTU1Y2RhM2RkOGFhMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCkBAIC01NzEsNiArNTcxLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgaGlkZUhpZ2hsaWdodCgpIHsgfQogfTsKIAorY2xhc3MgRW1wdHlEZXZpY2VDbGllbnQgOiBw
dWJsaWMgRGV2aWNlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRh
dGluZygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSB7IH0KK307CisKIGNs
YXNzIEVtcHR5RGV2aWNlTW90aW9uQ2xpZW50IDogcHVibGljIERldmljZU1vdGlvbkNsaWVudCB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29u
dHJvbGxlciopIHsgfQpAQCAtNTgzLDggKzU4OSw2IEBAIHB1YmxpYzoKIGNsYXNzIEVtcHR5RGV2
aWNlT3JpZW50YXRpb25DbGllbnQgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgewog
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpIHsgfQogICAgIHZpcnR1YWwgRGV2aWNlT3Jp
ZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAg
dmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIHsgfQog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBhODRmZWM1OWM5NWViODUxYzRiYTM3
OWRmYzE4YTI3NWUzZjJmZGIwLi4zMjBjZmY1MWI1OTJhYjVkNGI1M2Y1N2Y1ZGQ3OTYxNjg3OTNh
MmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNjAxLDcgKzE2MDEsNyBAQCBi
b29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgUGFzc1JlZlB0cjxFdmVudAogICAgICAgICAgICAgY29udHJvbGxlci0+YWRkTGlzdGVu
ZXIodGhpcyk7CiAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmlj
ZW9yaWVudGF0aW9uRXZlbnQgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGV2aWNlT3JpZW50
YXRpb25FbmFibGVkKCkpIHsKICAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkp
KQotICAgICAgICAgICAgY29udHJvbGxlci0+YWRkTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAg
ICBjb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKHRoaXMpOwogICAgIH0KICNlbmRp
ZgogCkBAIC0xNjMwLDcgKzE2MzAsNyBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0
ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogICAgICAg
ICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CiAgICAgfSBlbHNlIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpIHsKICAgICAg
ICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgY29udHJvbGxl
ci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVE
ZXZpY2VFdmVudExpc3RlbmVyKHRoaXMpOwogICAgIH0KICNlbmRpZgogCkBAIC0xNjg3LDcgKzE2
ODcsNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIGlm
IChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxMaXN0ZW5l
cnModGhpcyk7CiAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxl
ciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICBj
b250cm9sbGVyLT5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CisgICAgICAgIGNvbnRyb2xsZXIt
PnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKHRoaXMpOwogI2VuZGlmCiAKICAgICByZW1v
dmVBbGxVbmxvYWRFdmVudExpc3RlbmVycyh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ1MTYwYjcxNzdmOTQwNTJkNWIwNjYxZTMxNjAyODk2NDkyYjYxMGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oCkBA
IC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBT
b3VyY2UgUHJvamVjdAorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3Mu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ2xpZW50X2gK
KyNkZWZpbmUgRGV2aWNlQ2xpZW50X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBE
ZXZpY2VDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRldmljZUNsaWVudCgpIHsgfQor
CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHN0b3BVcGRhdGluZygpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIERldmljZUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rl
dmljZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zOTc4MjM5ZDFhNzMwMDllMzFiYzQ5ODMxZmFjZDExZWFhYmU0NWRl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVy
LmNwcApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9p
ZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVj
dHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRldmljZUNvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZUNvbnRyb2xs
ZXI6OkRldmljZUNvbnRyb2xsZXIoRGV2aWNlQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVu
dChjbGllbnQpCisgICAgLCBtX3RpbWVyKHRoaXMsICZEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2
aWNlRXZlbnQpCit7CisgICAgQVNTRVJUKG1fY2xpZW50KTsKK30KKwordm9pZCBEZXZpY2VDb250
cm9sbGVyOjphZGREZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyogd2luZG93KQoreworICAg
IGJvb2wgd2FzRW1wdHkgPSBtX2xpc3RlbmVycy5pc0VtcHR5KCk7CisgICAgbV9saXN0ZW5lcnMu
YWRkKHdpbmRvdyk7CisKKyAgICBpZiAoaGFzTGFzdERhdGEoKSkgeworICAgICAgICBtX2xhc3RF
dmVudExpc3RlbmVycy5hZGQod2luZG93KTsKKyAgICAgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZl
KCkpCisgICAgICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICB9CisKKyAgICBp
ZiAoIXdhc0VtcHR5KQorICAgICAgICBtX2NsaWVudC0+c3RhcnRVcGRhdGluZygpOworfQorCit2
b2lkIERldmljZUNvbnRyb2xsZXI6OnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93
KiB3aW5kb3cpCit7CisgICAgbV9saXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7CisgICAgbV9sYXN0
RXZlbnRMaXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7CisgICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1w
dHkoKSkKKyAgICAgICAgbV9jbGllbnQtPnN0b3BVcGRhdGluZygpOworfQorCit2b2lkIERldmlj
ZUNvbnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKERPTVdpbmRvdyogd2lu
ZG93KQoreworICAgIG1fbGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIG1fbGFzdEV2
ZW50TGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIGlmIChtX2xpc3RlbmVycy5pc0Vt
cHR5KCkpCisgICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKK30KKwordm9pZCBEZXZp
Y2VDb250cm9sbGVyOjpkaXNwYXRjaERldmljZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50
KQoreworICAgIFZlY3RvcjxET01XaW5kb3cqPiBsaXN0ZW5lclZlY3RvcjsKKyAgICBjb3B5VG9W
ZWN0b3IobV9saXN0ZW5lcnMsIGxpc3RlbmVyVmVjdG9yKTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGxpc3RlbmVyVmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICghbGlzdGVu
ZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKQor
ICAgICAgICAgICAgJiYgIWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVudCgpLT5hY3RpdmVET01P
YmplY3RzQXJlU3RvcHBlZCgpKQorICAgICAgICBsaXN0ZW5lclZlY3RvcltpXS0+ZGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgfQorfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmZpcmVEZXZp
Y2VFdmVudChUaW1lcjxEZXZpY2VDb250cm9sbGVyPiogdGltZXIpCit7CisgICAgQVNTRVJUX1VO
VVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOworICAgIEFTU0VSVChoYXNMYXN0RGF0YSgp
KTsKKworICAgIG1fdGltZXIuc3RvcCgpOworICAgIFZlY3RvcjxET01XaW5kb3cqPiBsaXN0ZW5l
clZlY3RvcjsKKyAgICBjb3B5VG9WZWN0b3IobV9sYXN0RXZlbnRMaXN0ZW5lcnMsIGxpc3RlbmVy
VmVjdG9yKTsKKyAgICBtX2xhc3RFdmVudExpc3RlbmVycy5jbGVhcigpOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYg
KCFsaXN0ZW5lclZlY3RvcltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3Bl
bmRlZCgpCisgICAgICAgICAgICAmJiAhbGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFj
dGl2ZURPTU9iamVjdHNBcmVTdG9wcGVkKCkpCisgICAgICAgIGxpc3RlbmVyVmVjdG9yW2ldLT5k
aXNwYXRjaEV2ZW50KGdldExhc3RFdmVudCgpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzkxNjM0MGZhNTQ1NTE5ZjZiMTc2MTYxOWE3MzdiYmRkMWVhNDVkOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNjgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVj
dAorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ29udHJvbGxlcl9oCisjZGVmaW5l
IERldmljZUNvbnRyb2xsZXJfaAorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTdXBw
bGVtZW50YWJsZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hDb3Vu
dGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworY2xh
c3MgRGV2aWNlQ2xpZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgRGV2aWNlQ29udHJvbGxlciA6
IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEZXZpY2VD
b250cm9sbGVyKERldmljZUNsaWVudCopOworICAgIH5EZXZpY2VDb250cm9sbGVyKCkgeyB9CisK
KyAgICB2b2lkIGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Kik7CisgICAgdm9pZCBy
ZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyopOworICAgIHZvaWQgcmVtb3ZlQWxs
RGV2aWNlRXZlbnRMaXN0ZW5lcnMoRE9NV2luZG93Kik7CisKKyAgICB2b2lkIGRpc3BhdGNoRGV2
aWNlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIGJvb2wgaXNBY3RpdmUoKSB7IHJldHVy
biAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CisgICAgRGV2aWNlQ2xpZW50KiBjbGllbnQoKSB7
IHJldHVybiBtX2NsaWVudDsgfQorCisgICAgdmlydHVhbCBib29sIGhhc0xhc3REYXRhKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RXZlbnQ+IGdldExhc3RFdmVu
dCgpIHsgcmV0dXJuIDA7IH0KKworcHJvdGVjdGVkOgorICAgIHZvaWQgZmlyZURldmljZUV2ZW50
KFRpbWVyPERldmljZUNvbnRyb2xsZXI+Kik7CisKKyAgICBIYXNoQ291bnRlZFNldDxET01XaW5k
b3cqPiBtX2xpc3RlbmVyczsKKyAgICBIYXNoQ291bnRlZFNldDxET01XaW5kb3cqPiBtX2xhc3RF
dmVudExpc3RlbmVyczsKKyAgICBEZXZpY2VDbGllbnQqIG1fY2xpZW50OworICAgIFRpbWVyPERl
dmljZUNvbnRyb2xsZXI+IG1fdGltZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBEZXZpY2VDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXgg
YzVhZGM5YWFjN2IzNWZiYWQ4YjU5MzdiOGY1NTQ5OTIyY2Q5Y2RkOS4uNGI3NzdkMjM2Mjc2Yzk5
NmMyMjVhYTExNTQyNTIyMDE5ZGQ4NGU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTcy
Miw3ICs3MjIsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrRGV2aWNl
T3JpZW50YXRpb24oUVdlYlBhZ2UqIHBhZ2UsIGJvb2wgY2FuUAogewogI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNv
cmUocGFnZSk7Ci0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0g
dG9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Ojpmcm9tKGNvcmVQYWdlKS0+Y2xpZW50KCkpOworICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jayogbW9ja0NsaWVudCA9IHRvRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShjb3JlUGFnZSktPmRldmljZU9yaWVudGF0aW9uQ2xp
ZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnNldE9yaWVudGF0aW9uKERldmljZU9yaWVudGF0aW9u
RGF0YTo6Y3JlYXRlKGNhblByb3ZpZGVBbHBoYSwgYWxwaGEsIGNhblByb3ZpZGVCZXRhLCBiZXRh
LCBjYW5Qcm92aWRlR2FtbWEsIGdhbW1hKSk7CiAjZW5kaWYKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171619</attachid>
            <date>2012-10-31 04:48:24 -0700</date>
            <delta_ts>2012-11-01 00:27:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96894-20121031204646.patch</filename>
            <type>text/plain</type>
            <size>36079</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5Nzg3MzJhZGVlNWMz
NmFjZmVjZjFkYjgxYmU3MDVkOThmNzE2Yi4uNjI2NWNiMWZjNDkwZDhlYTEyODA0N2E2MDEwMjhl
ZDMxODFhMGZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTEwLTMwICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENv
bnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgIEFk
ZCBEZXZpY2VDb250cm9sbGVyIHdoaWNoIGlzIGV4dHJhY3RlZCBmcm9tIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlciB0byByZW1vdmUgZHVwbGljYXRpb24uCisgICAgICAgIEFuZCBzb29uLXRv
LWJlLWFkZGVkIERldmljZU1vdGlvbkNvbnRyb2xsZXIgYW5kIFByb3hpbWl0eUNvbnRyb2xsZXIu
CisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFy
Z2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOgorICAgICAg
ICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICBSZW1vdmUg
bWVtYmVyIGZ1bmN0aW9ucyB0byBtb3ZlIHRvIERldmljZUNvbnRyb2xsZXIuCisgICAgICAgIC0g
YWRkTGlzdGVuZXIoKSwgcmVtb3ZlTGlzdGVuZXIoKSwgcmVtb3ZlQWxsTGlzdGVuZXJzKCksIGlz
QWN0aXZlKCkKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpjbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpoYXNMYXN0RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmdldExhc3RFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20p
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6On5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIpOgorICAg
ICAgICAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICBSZW1vdmUgc3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycygpIGFu
ZCByZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoKSBmdW5jdGlvbiBjYWxscy4KKyAgICAgICAg
VGhlc2UgY2FsbHMgY2FuIGJlIG1hZGUgYnkgY2hlY2tpbmcgYWN0aXZlRE9NT2JqZWN0c0FyZVN1
c3BlbmRlZCgpIGFuZCBhY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpIGJlZm9yZSBkaXNwYXRj
aEV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN1c3BlbmRBY3RpdmVET01PYmpl
Y3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXN1bWVBY3RpdmVET01PYmplY3Rz
KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eURldmlj
ZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eURldmljZUNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eURldmljZUNsaWVudDo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycyk6CisgICAgICAgICogcGFnZS9E
ZXZpY2VDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmlj
ZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDbGllbnQ6On5EZXZpY2VDbGllbnQp
OgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICBE
ZXZpY2VDb250cm9sbGVyIGhhcyBleHRyYWN0ZWQgZnVuY3Rpb25zIGZyb20gRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyIGFuZCBEZXZpY2VNb3Rpb25Db250cm9sbGVyLgorICAgICAgICAtIGFk
ZERldmljZUV2ZW50TGlzdGVuZXIoKSwgcmVtb3ZlRGV2aWNlRXZlbnRsaXN0ZW5lcigpLCByZW1v
dmVBbGxEZXZpY2VFdmVudExpc3RlbmVycygpLCBkaXNwYXRjaERldmljZUV2ZW50KCkKKyAgICAg
ICAgQWxsIGtpbmQgb2YgZGV2aWNlIGV2ZW50IGNvbnRyb2xsZXIgd2hpY2ggaGFzIERldmljZUNs
aWVudCBjYW4gYmUgaW5oZXJpdGVkIGZyb20gRGV2aWNlQ29udHJvbGxlci4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6RGV2aWNlQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjphZGREZXZpY2VFdmVu
dExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OnJlbW92ZURl
dmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6
cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
Q29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29u
dHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjp+RGV2aWNlQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjppc0FjdGl2ZSk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpjbGllbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6aGFzTGFzdERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlQ29udHJvbGxlcjo6Z2V0TGFzdEV2ZW50KToKKwogMjAxMi0xMC0yOSAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1JlZmF0b3Jpbmdd
IFJlbW92ZSBFbGVtZW50U2hhZG93OjppbnNlcnRpb25Qb2ludEZvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRl
eCA2MGQzZjk3YWMwMzIzOWZlMDYwN2UwMmYwZTkyNjdjZWVjMWU3NjE4Li44NzYxMThjYmJiZGY5
YzQ5Y2Y2MmI5ZDMyOWE1OGM2NDI0ZGQ2NDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDEyLTEwLTMwICBLaWhvbmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgor
CisgICAgICAgIEFkZCBEZXZpY2VDb250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxp
Y2F0aW9uIG9mIERldmljZVhYWENvbnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUg
TW9yaXRhLgorCisgICAgICAgIENoYW5nZSBjbGllbnQoKSB0byBkZXZpY2VPcmllbnRhdGlvbkNs
aWVudCgpIHRvIGdldCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCouCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKToKKwogMjAxMi0xMC0y
NCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgc3Ry
YXRlZ3kgZm9yIGxvYWRlciBjdXN0b21pemF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBm
OGFlOWJkZTA5YjJhYzU2N2EzZThjNjk3YTNmMmRkMzdkZDZlYjRiLi45MDg0MmJhMTM0MjRlMTQ5
NmZkZDA3ODFlMTEwZjk2NTE2M2Q4MzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTcwOSw2
ICsxNzA5LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAogICAgIHBhZ2Uv
Q3J5cHRvLmNwcAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0RpYWdu
b3N0aWNMb2dnaW5nS2V5cy5jcHAKICAgICBwYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcAogICAg
IHBhZ2UvRE9NU2VsZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
YjBiZGQyZWJhYjczYmE5ZmIyNjEyOTM1MTkyY2IzZjU0OTIzNzAzYi4uODgzYWU5NmQ0NzVmYWQ5
NjJmMzAxMzQ1YTllMTQ1MGQ2ZTg2YjNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC00MDA1LDYgKzQwMDUsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZUNsaWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVNlY3VyaXR5UG9saWN5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBkMTlkNWM5MDdmZjY4MjgwZjA4
YzlhMDNlNTJhNTEwYWFlNTc5OGFlLi42NDgwZTA4OWI5OWY2YzBjMWRhNzEyNjU3ZmY4OTVlNTZm
ZGU1NGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg3MSw2ICs4NzEsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgXAogICAgIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9DcnlwdG8uY3BwIFwKKyAgICBwYWdlL0RldmljZUNv
bnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgXAogICAg
IHBhZ2UvRE9NU2VsZWN0aW9uLmNwcCBcCiAgICAgcGFnZS9ET01UaW1lci5jcHAgXApAQCAtMTk5
Nyw2ICsxOTk4LDggQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuaCBcCiAgICAgcGFnZS9Db250ZXh0TWVudVByb3ZpZGVyLmggXAogICAgIHBhZ2UvQ29vcmRp
bmF0ZXMuaCBcCisgICAgcGFnZS9EZXZpY2VDbGllbnQuaCBcCisgICAgcGFnZS9EZXZpY2VDb250
cm9sbGVyLmggXAogICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmggXAogICAgIHBhZ2Uv
RE9NU2VsZWN0aW9uLmggXAogICAgIHBhZ2UvRE9NVGltZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggYTUyYTQzMWNkOGYyODk5ZTk3YjI2NjM0OTIzNDc4YjRmYTJiMTE3MC4uMGZiMGMzZGFhNzY3
YzFjNjhlNzJlZTE2MzQzZDliODkxNjVmYjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzExMSw2
ICszMTExLDkgQEAKICAgICAgICAgICAgICdwYWdlL0NvbnRleHRNZW51UHJvdmlkZXIuaCcsCiAg
ICAgICAgICAgICAncGFnZS9DcnlwdG8uY3BwJywKICAgICAgICAgICAgICdwYWdlL0NyeXB0by5o
JywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNsaWVudC5oJywKKyAgICAgICAgICAgICdwYWdl
L0RldmljZUNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNvbnRyb2xs
ZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwJywKICAg
ICAgICAgICAgICdwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oJywKICAgICAgICAgICAgICdw
YWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDI4MGJlMmU1MjRhZWJkMDQzOTc4MjQyMjM5NWVjM2Iw
ZmEwMWUzMWIuLjY2ZTc2MWFlYzZkNTMxZWI0ZWM1ODQxMmMyMWQ5ZTI2Mzk2YzNiZjQgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNjkwNyw2
ICsyNjkwNywxOCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXERldmljZUNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNvbnRyb2xsZXIuY3BwIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNv
bnRyb2xsZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGFnZVxEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBhNzYyZjhlMWMwYjQ3ODMwNzgyOWFjYzA5YWMyNjgyNGFlYzUwYjhhLi5kOTQ4YTk1ODNk
MjIxYmJiOThmOGMwNTliMjJkMTIyMTI4Y2RjZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODg1LDYgKzU4ODUsOSBAQAog
CQlDQUU5RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRDE0NjQ0
MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi87IH07CiAJCUNBRTlGOTEw
MTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjAg
LyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovOyB9OwogCQlDQUU5RjkxMDE0NjQ0MUYwMDBDMjQ1
QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFs
dWUuaCAqLzsgfTsKKwkJQ0NDMkI1MTQxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTAx
NUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNDQzJCNTE1MTVGNjEzMDYwMDQ4Q0RENiAvKiBE
ZXZpY2VDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNw
cCAqLzsgfTsKKwkJQ0NDMkI1MTYxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEy
MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxMjdERUQxNEYzMDk3RDAwRTg0Nzc5
IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVG
dWxsU2NyZWVuV2luZG93Lm1tICovOyB9OwogCQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyog
V2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNj
cmVlbldpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFMjE0
NTc2NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTMyNTMs
NiArMTMyNTYsOSBAQAogCQlDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0
aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NBc3Bl
Y3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEUx
NDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NWYXJpYWJsZVZhbHVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAv
KiBEZXZpY2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNl
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTExMTVGNjEzMDYw
MDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDb250cm9sbGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJD
b3JlRnVsbFNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0Y2RTAxNDU3NUMxQjAw
NzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFDb250cm9sbGVyLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1ODM5LDYgKzE1ODQ1LDkgQEAKIAkJCQk5
NzVDQTI4NzEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEz
MDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5
QUQ5IC8qIENyeXB0by5pZGwgKi8sCisJCQkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERl
dmljZUNsaWVudC5oICovLAorCQkJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VD
b250cm9sbGVyLmNwcCAqLywKKwkJCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNl
Q29udHJvbGxlci5oICovLAogCQkJCUNEMzdCMzc0MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9z
dGljTG9nZ2luZ0tleXMuY3BwICovLAogCQkJCUNEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBE
aWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLywKIAkJCQkyRDlBMjQ2QTE1QjlCQkREMDBEMzQ1Mjcg
LyogRE9NU2VjdXJpdHlQb2xpY3kuY3BwICovLApAQCAtMjI3NTIsNiArMjI3NjEsOCBAQAogCQkJ
CTkzMzA5REUxMDk5RTY0OTIwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDE2NjBBNTEzNzg3QzZEMDAxRkZBN0IgLyogRGVub3JtYWxEaXNh
Ymxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdDOUFCRjkxMzU3QTNCRjAwRjU1MDNGIC8qIERl
dGFpbHNNYXJrZXJDb250cm9sLmggaW4gSGVhZGVycyAqLywKKwkJCQlDQ0MyQjUxNDE1RjYxMzA2
MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDQ0MyQjUxNjE1
RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFGQjFBNTcxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFGQjFBNTkxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTVCMTIwQTVEMDYwMERDMDJBMCAvKiBE
ZXZpY2VNb3Rpb25EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MzEwLDYgKzI2MzIxLDcgQEAK
IAkJCQk5MzMwOURERTA5OUU2NDkyMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURFMDA5OUU2NDkyMDA1NkU1ODEgLyogRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0M5QUJGODEzNTdB
M0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEw
IC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBB
NUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAppbmRleCA0MDQ5YzAz
YTRhMTQ0YTc0NTIyOWEwNTQxMzgxY2Q1N2UxNGM2NWI1Li44NWQ2MmVjMGQ3YmQ0NmJmOWE0NjJj
OWI1MmVjYTlhNDgxMWVlYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50
YXRpb25DbGllbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgMjAxMCwgVGhl
IEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1
bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI2LDE4ICsyNywxOCBAQAogI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudF9oCiAjZGVmaW5lIERldmljZU9yaWVudGF0aW9uQ2xpZW50X2gKIAorI2luY2x1ZGUg
IkRldmljZUNsaWVudC5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKIGNsYXNz
IFBhZ2U7CiAKLWNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKK2NsYXNzIERldmljZU9y
aWVudGF0aW9uQ2xpZW50IDogcHVibGljIERldmljZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+RGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSB7fQogICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgc3RhcnRVcGRhdGluZygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5n
KCkgPSAwOwogICAgIHZpcnR1YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRp
b24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlckRlc3Ryb3llZCgpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDMwMmRiNjEyNDM0YmE0ZDZhNTkyN2M4
ZDNmZWM4Mzc2MDg3ZWFiNzUuLjQ1NjljY2ZhNmI5YTIxMjU1Y2E2NTY0MjI2YjUwYWRlZjNiN2E2
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5k
cm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzQsMTcgKzM1LDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFBhZ2Uq
IHBhZ2UsIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChj
bGllbnQpCisgICAgOiBEZXZpY2VDb250cm9sbGVyKGNsaWVudCkKICAgICAsIG1fcGFnZShwYWdl
KQotICAgICwgbV90aW1lcih0aGlzLCAmRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjp0aW1l
ckZpcmVkKQogewogICAgIEFTU0VSVChtX2NsaWVudCk7Ci0gICAgbV9jbGllbnQtPnNldENvbnRy
b2xsZXIodGhpcyk7Ci19Ci0KLURldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6fkRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcigpCi17Ci0gICAgbV9jbGllbnQtPmRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlckRlc3Ryb3llZCgpOworICAgIGRldmljZU9yaWVudGF0aW9uQ2xpZW50KCktPnNl
dENvbnRyb2xsZXIodGhpcyk7CiB9CiAKIFBhc3NPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyPiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdlLCBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCogY2xpZW50KQpAQCAtNTIsOTEgKzQ3LDI0IEBAIFBhc3NP
d25QdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXI6OmNyZWF0ZShQYWdlCiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIocGFnZSwgY2xpZW50KSk7CiB9CiAKLXZvaWQgRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyOjp0aW1lckZpcmVkKFRpbWVyPERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cj4qIHRpbWVyKQotewotICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVy
KTsKLSAgICBBU1NFUlQobV9jbGllbnQtPmxhc3RPcmllbnRhdGlvbigpKTsKLQotICAgIFJlZlB0
cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IG9yaWVudGF0aW9uID0gbV9jbGllbnQtPmxhc3RPcmll
bnRhdGlvbigpOwotICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkV2ZW50PiBldmVudCA9IERl
dmljZU9yaWVudGF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRp
b25FdmVudCwgb3JpZW50YXRpb24uZ2V0KCkpOwotCi0gICAgVmVjdG9yPFJlZlB0cjxET01XaW5k
b3c+ID4gbGlzdGVuZXJzVmVjdG9yOwotICAgIGNvcHlUb1ZlY3RvcihtX25ld0xpc3RlbmVycywg
bGlzdGVuZXJzVmVjdG9yKTsKLSAgICBtX25ld0xpc3RlbmVycy5jbGVhcigpOwotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJzVmVjdG9yLnNpemUoKTsgKytpKQotICAgICAgICBs
aXN0ZW5lcnNWZWN0b3JbaV0tPmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotfQotCi12b2lkIERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6YWRkTGlzdGVuZXIoRE9NV2luZG93KiB3aW5kb3cpCi17
Ci0gICAgLy8gSWYgdGhlIGNsaWVudCBhbHJlYWR5IGhhcyBhbiBvcmllbnRhdGlvbiwgd2Ugc2hv
dWxkIGZpcmUgYW4gZXZlbnQgd2l0aCB0aGF0Ci0gICAgLy8gb3JpZW50YXRpb24uIFRoZSBldmVu
dCBpcyBmaXJlZCBhc3luY2hyb25vdXNseSwgYnV0IHdpdGhvdXQKLSAgICAvLyB3YWl0aW5nIGZv
ciB0aGUgY2xpZW50IHRvIGdldCBhIG5ldyBvcmllbnRhdGlvbi4KLSAgICBpZiAobV9jbGllbnQt
Pmxhc3RPcmllbnRhdGlvbigpKSB7Ci0gICAgICAgIG1fbmV3TGlzdGVuZXJzLmFkZCh3aW5kb3cp
OwotICAgICAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fdGltZXIu
c3RhcnRPbmVTaG90KDApOwotICAgIH0KLQotICAgIC8vIFRoZSBjbGllbnQgbXVzdCBub3QgY2Fs
bCBiYWNrIHN5bmNocm9ub3VzbHkuCi0gICAgYm9vbCB3YXNFbXB0eSA9IG1fbGlzdGVuZXJzLmlz
RW1wdHkoKTsKLSAgICBtX2xpc3RlbmVycy5hZGQod2luZG93KTsKLSAgICBpZiAod2FzRW1wdHkp
Ci0gICAgICAgIG1fY2xpZW50LT5zdGFydFVwZGF0aW5nKCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyOjpyZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqIHdpbmRvdykKK3Zv
aWQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlv
bihEZXZpY2VPcmllbnRhdGlvbkRhdGEqIG9yaWVudGF0aW9uKQogewotICAgIG1fbGlzdGVuZXJz
LnJlbW92ZSh3aW5kb3cpOwotICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cp
OwotICAgIG1fbmV3TGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOwotICAgIGlmIChtX2xpc3RlbmVy
cy5pc0VtcHR5KCkpCi0gICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKKyAgICBkaXNw
YXRjaERldmljZUV2ZW50KERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCwgb3JpZW50YXRpb24pKTsKIH0KIAotdm9pZCBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUFsbExpc3RlbmVycyhET01XaW5kb3cqIHdp
bmRvdykKK0RldmljZU9yaWVudGF0aW9uQ2xpZW50KiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OmRldmljZU9yaWVudGF0aW9uQ2xpZW50KCkKIHsKLSAgICAvLyBNYXkgYmUgY2FsbGVkIHdp
dGggYSBET01XaW5kb3cgdGhhdCdzIG5vdCBhIGxpc3RlbmVyLgotICAgIGlmICghbV9saXN0ZW5l
cnMuY29udGFpbnMod2luZG93KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9saXN0ZW5lcnMu
cmVtb3ZlQWxsKHdpbmRvdyk7Ci0gICAgbV9zdXNwZW5kZWRMaXN0ZW5lcnMucmVtb3ZlQWxsKHdp
bmRvdyk7Ci0gICAgbV9uZXdMaXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7Ci0gICAgaWYgKG1fbGlz
dGVuZXJzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9jbGllbnQtPnN0b3BVcGRhdGluZygpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VPcmllbnRhdGlvbkNsaWVudCo+KG1fY2xpZW50KTsK
IH0KIAotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1c3BlbmRFdmVudHNGb3JB
bGxMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5kb3cpCitib29sIERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcjo6aGFzTGFzdERhdGEoKQogewotICAgIGlmICghbV9saXN0ZW5lcnMuY29udGFpbnMo
d2luZG93KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW50IGNvdW50ID0gbV9saXN0ZW5lcnMu
Y291bnQod2luZG93KTsKLSAgICByZW1vdmVBbGxMaXN0ZW5lcnMod2luZG93KTsKLSAgICB3aGls
ZSAoY291bnQtLSkKLSAgICAgICAgbV9zdXNwZW5kZWRMaXN0ZW5lcnMuYWRkKHdpbmRvdyk7Cisg
ICAgcmV0dXJuIGRldmljZU9yaWVudGF0aW9uQ2xpZW50KCktPmxhc3RPcmllbnRhdGlvbigpOwog
fQogCi12b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6cmVzdW1lRXZlbnRzRm9yQWxs
TGlzdGVuZXJzKERPTVdpbmRvdyogd2luZG93KQorUGFzc1JlZlB0cjxFdmVudD4gRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyOjpnZXRMYXN0RXZlbnQoKQogewotICAgIGlmICghbV9zdXNwZW5k
ZWRMaXN0ZW5lcnMuY29udGFpbnMod2luZG93KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW50
IGNvdW50ID0gbV9zdXNwZW5kZWRMaXN0ZW5lcnMuY291bnQod2luZG93KTsKLSAgICBtX3N1c3Bl
bmRlZExpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKLSAgICB3aGlsZSAoY291bnQtLSkKLSAg
ICAgICAgYWRkTGlzdGVuZXIod2luZG93KTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9yaWVudGF0aW9uRGF0
YSogb3JpZW50YXRpb24pCi17Ci0gICAgb3JpZW50YXRpb24gPSBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246Om92ZXJyaWRlRGV2aWNlT3JpZW50YXRpb24obV9wYWdlLCBvcmllbnRhdGlvbik7Ci0g
ICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uRXZlbnQ+IGV2ZW50ID0gRGV2aWNlT3JpZW50YXRp
b25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50LCBvcmll
bnRhdGlvbik7Ci0gICAgVmVjdG9yPFJlZlB0cjxET01XaW5kb3c+ID4gbGlzdGVuZXJzVmVjdG9y
OwotICAgIGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJzVmVjdG9yKTsKLSAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVyc1ZlY3Rvci5zaXplKCk7ICsraSkKLSAgICAg
ICAgbGlzdGVuZXJzVmVjdG9yW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICByZXR1cm4g
RGV2aWNlT3JpZW50YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRh
dGlvbkV2ZW50LCBkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpLT5sYXN0T3JpZW50YXRpb24oKSk7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpz
dXBwbGVtZW50TmFtZSgpCkBAIC0xNDUsNiArNzMsMTEgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKICAgICByZXR1cm4g
bmFtZTsKIH0KIAorRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXI6OmZyb20oUGFnZSogcGFnZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKj4oU3VwcGxlbWVudDxQYWdlPjo6ZnJvbShwYWdl
LCBzdXBwbGVtZW50TmFtZSgpKSk7Cit9CisKIGJvb2wgRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyOjppc0FjdGl2ZUF0KFBhZ2UqIHBhZ2UpCiB7CiAgICAgaWYgKERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogc2VsZiA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdl
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIu
aAppbmRleCBmNWU2Zjk1MDNjMTNlZDlmOTJlOTI4ZjkxZTFmYjViMjMyNDBlMGVkLi4wMDIxMTk1
MGFjMjNjNDhhOWI4NTAwYzlhYjQyZDQ3YzFiYzBlMjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNTMgKzI3LDM0IEBACiAj
aWZuZGVmIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcl9oCiAjZGVmaW5lIERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcl9oCiAKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJQ
YWdlLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKLQorI2luY2x1ZGUgIkRldmljZUNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudDsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKIAotY2xhc3MgRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworY2xhc3MgRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyIDogcHVibGljIERldmljZUNvbnRyb2xsZXIgewogcHVi
bGljOgotICAgIH5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKTsKKyAgICB+RGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKCkgeyB9OwogCiAgICAgc3RhdGljIFBhc3NPd25QdHI8RGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyPiBjcmVhdGUoUGFnZSosIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50Kik7CiAKLSAgICB2b2lkIGFkZExpc3RlbmVyKERPTVdpbmRvdyopOwotICAgIHZvaWQgcmVt
b3ZlTGlzdGVuZXIoRE9NV2luZG93Kik7Ci0gICAgdm9pZCByZW1vdmVBbGxMaXN0ZW5lcnMoRE9N
V2luZG93Kik7Ci0KLSAgICB2b2lkIHN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2lu
ZG93Kik7Ci0gICAgdm9pZCByZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2luZG93Kik7
Ci0KICAgICB2b2lkIGRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9yaWVudGF0aW9u
RGF0YSopOworICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBkZXZpY2VPcmllbnRhdGlvbkNs
aWVudCgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0dXJuICFtX2xpc3RlbmVycy5pc0Vt
cHR5KCk7IH0KLQotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNMYXN0RGF0YSgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFdmVudD4gZ2V0TGFzdEV2ZW50KCkgT1ZFUlJJ
REU7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOwot
ICAgIHN0YXRpYyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGZyb20oUGFnZSogcGFnZSkg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKj4oU3VwcGxl
bWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KKyAgICBzdGF0aWMg
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBmcm9tKFBhZ2UqKTsKICAgICBzdGF0aWMgYm9v
bCBpc0FjdGl2ZUF0KFBhZ2UqKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIoUGFnZSosIERldmljZU9yaWVudGF0aW9uQ2xpZW50Kik7Ci0KLSAg
ICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiopOwor
ICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcihQYWdlKiwgRGV2aWNlT3JpZW50YXRpb25D
bGllbnQqKTsKIAotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBtX2NsaWVudDsKICAgICBQ
YWdlKiBtX3BhZ2U7Ci0gICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxSZWZQdHI8RE9NV2luZG93
PiA+IExpc3RlbmVyc0NvdW50ZWRTZXQ7Ci0gICAgTGlzdGVuZXJzQ291bnRlZFNldCBtX2xpc3Rl
bmVyczsKLSAgICBMaXN0ZW5lcnNDb3VudGVkU2V0IG1fc3VzcGVuZGVkTGlzdGVuZXJzOwotICAg
IHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8RE9NV2luZG93PiA+IExpc3RlbmVyc1NldDsKLSAgICBM
aXN0ZW5lcnNTZXQgbV9uZXdMaXN0ZW5lcnM7Ci0gICAgVGltZXI8RGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyPiBtX3RpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggYTY5ZTEyZWM3OTE1NmVhODViODcwZGNmNTNhN2QwN2I3MDEx
MTAzMi4uNDE3ZjEzOTA5YjA3NWFhNWQzZGQ3NTQ2NWFhM2M3Y2FhMDQ0NzU2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0yMTgxLDkgKzIxODEsNiBAQCB2b2lkIERvY3VtZW50OjpzdXNw
ZW5kQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24g
d2h5KQogCiAgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNvbnRyb2xsZXItPnN1
c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwotICAgIGlmIChEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+c3VzcGVuZEV2ZW50c0Zv
ckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7Ci0KICNlbmRpZgogfQogCkBAIC0yMTk3LDggKzIx
OTQsNiBAQCB2b2lkIERvY3VtZW50OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKCkKIAogICAgIGlm
IChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5yZXN1bWVFdmVudHNGb3JB
bGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwotICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFn
ZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRv
bVdpbmRvdygpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
aW5kZXggOWMyYzIzZDNlMDhhOGZkMTc4ZTE4NWI1OGFlMWNhOTUxYTJjNDA0NS4uMTA2YmU2OWQ1
MDA2OTAyZTUwMmE2YjdmOTEyZDcyMWVjODIxZmNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaApAQCAtNTcxLDYgKzU3MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGhpZGVIaWdobGlnaHQoKSB7IH0KIH07CiAKK2NsYXNzIEVtcHR5RGV2aWNlQ2xpZW50IDogcHVi
bGljIERldmljZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRp
bmcoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgT1ZFUlJJ
REUgeyB9Cit9OworCiBjbGFzcyBFbXB0eURldmljZU1vdGlvbkNsaWVudCA6IHB1YmxpYyBEZXZp
Y2VNb3Rpb25DbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVy
KERldmljZU1vdGlvbkNvbnRyb2xsZXIqKSB7IH0KQEAgLTU4Myw4ICs1ODksNiBAQCBwdWJsaWM6
CiBjbGFzcyBFbXB0eURldmljZU9yaWVudGF0aW9uQ2xpZW50IDogcHVibGljIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRV
cGRhdGluZygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSB7IH0KICAgICB2
aXJ0dWFsIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJE
ZXN0cm95ZWQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggYTg0ZmVj
NTljOTVlYjg1MWM0YmEzNzlkZmMxOGEyNzVlM2YyZmRiMC4uMzIwY2ZmNTFiNTkyYWI1ZDRiNTNm
NTdmNWRkNzk2MTY4NzkzYTJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTYw
MSw3ICsxNjAxLDcgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnQKICAgICAgICAgICAgIGNvbnRy
b2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOwogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2
ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OmRldmljZU9yaWVudGF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgIGlmIChEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRo
aXMpOworICAgICAgICAgICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcih0aGlz
KTsKICAgICB9CiAjZW5kaWYKIApAQCAtMTYzMCw3ICsxNjMwLDcgQEAgYm9vbCBET01XaW5kb3c6
OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50
TGlzdGVuZXIKICAgICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUxpc3RlbmVyKHRoaXMpOwog
ICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlv
bkV2ZW50KSB7CiAgICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAg
ICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgY29u
dHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICB9CiAjZW5kaWYK
IApAQCAtMTY4Nyw3ICsxNjg3LDcgQEAgdm9pZCBET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlz
dGVuZXJzKCkKICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERl
dmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+
cmVtb3ZlQWxsTGlzdGVuZXJzKHRoaXMpOwogICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFn
ZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsTGlzdGVuZXJzKHRoaXMpOworICAg
ICAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyh0aGlzKTsKICNl
bmRpZgogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EZXZpY2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTE2MGI3MTc3Zjk0MDUyZDViMDY2MWUz
MTYwMjg5NjQ5MmI2MTBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VDbGllbnQuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTAsIFRo
ZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IERldmljZUNsaWVudF9oCisjZGVmaW5lIERldmljZUNsaWVudF9oCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRGV2aWNlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5EZXZp
Y2VDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGV2aWNlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk3ODIzOWQxYTczMDA5ZTMxYmM0OTgz
MWZhY2QxMWVhYWJlNDVkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGV2aWNlQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
MjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VDb250cm9sbGVyLmgiCisKKyNp
bmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitEZXZpY2VDb250cm9sbGVyOjpEZXZpY2VDb250cm9sbGVyKERldmljZUNsaWVudCogY2xpZW50
KQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV90aW1lcih0aGlzLCAmRGV2aWNlQ29u
dHJvbGxlcjo6ZmlyZURldmljZUV2ZW50KQoreworICAgIEFTU0VSVChtX2NsaWVudCk7Cit9CisK
K3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cq
IHdpbmRvdykKK3sKKyAgICBib29sIHdhc0VtcHR5ID0gbV9saXN0ZW5lcnMuaXNFbXB0eSgpOwor
ICAgIG1fbGlzdGVuZXJzLmFkZCh3aW5kb3cpOworCisgICAgaWYgKGhhc0xhc3REYXRhKCkpIHsK
KyAgICAgICAgbV9sYXN0RXZlbnRMaXN0ZW5lcnMuYWRkKHdpbmRvdyk7CisgICAgICAgIGlmICgh
bV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7
CisgICAgfQorCisgICAgaWYgKCF3YXNFbXB0eSkKKyAgICAgICAgbV9jbGllbnQtPnN0YXJ0VXBk
YXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVEZXZpY2VFdmVudExp
c3RlbmVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbGlzdGVuZXJzLnJlbW92ZSh3aW5k
b3cpOworICAgIG1fbGFzdEV2ZW50TGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIGlmICht
X2xpc3RlbmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsK
K30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVy
cyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBtX2xpc3RlbmVycy5yZW1vdmVBbGwod2luZG93
KTsKKyAgICBtX2xhc3RFdmVudExpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAgICBpZiAo
bV9saXN0ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7
Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBWZWN0b3I8RE9NV2luZG93Kj4gbGlzdGVuZXJWZWN0
b3I7CisgICAgY29weVRvVmVjdG9yKG1fbGlzdGVuZXJzLCBsaXN0ZW5lclZlY3Rvcik7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lclZlY3Rvci5zaXplKCk7ICsraSkgeworICAg
ICAgICBpZiAoIWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVudCgpLT5hY3RpdmVET01PYmplY3Rz
QXJlU3VzcGVuZGVkKCkKKyAgICAgICAgICAgICYmICFsaXN0ZW5lclZlY3RvcltpXS0+ZG9jdW1l
bnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSkKKyAgICAgICAgbGlzdGVuZXJWZWN0
b3JbaV0tPmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIH0KK30KKwordm9pZCBEZXZpY2VDb250
cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQoVGltZXI8RGV2aWNlQ29udHJvbGxlcj4qIHRpbWVyKQor
eworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKKyAgICBBU1NF
UlQoaGFzTGFzdERhdGEoKSk7CisKKyAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICBWZWN0b3I8RE9N
V2luZG93Kj4gbGlzdGVuZXJWZWN0b3I7CisgICAgY29weVRvVmVjdG9yKG1fbGFzdEV2ZW50TGlz
dGVuZXJzLCBsaXN0ZW5lclZlY3Rvcik7CisgICAgbV9sYXN0RXZlbnRMaXN0ZW5lcnMuY2xlYXIo
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVyVmVjdG9yLnNpemUoKTsgKytp
KSB7CisgICAgICAgIGlmICghbGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURP
TU9iamVjdHNBcmVTdXNwZW5kZWQoKQorICAgICAgICAgICAgJiYgIWxpc3RlbmVyVmVjdG9yW2ld
LT5kb2N1bWVudCgpLT5hY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpKQorICAgICAgICBsaXN0
ZW5lclZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVudChnZXRMYXN0RXZlbnQoKSk7CisgICAgfQorfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM5MTYzNDBmYTU0NTUxOWY2YjE3NjE2MTlhNzM3YmJkZDFlYTQ1ZDgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIu
aApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IDIwMTAsIFRoZSBBbmRyb2lkIE9w
ZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9u
aWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmljZUNvbnRy
b2xsZXJfaAorI2RlZmluZSBEZXZpY2VDb250cm9sbGVyX2gKKworI2luY2x1ZGUgIkV2ZW50Lmgi
CisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1
ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERPTVdpbmRvdzsKK2NsYXNzIERldmljZUNsaWVudDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIERl
dmljZUNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgRGV2aWNlQ29udHJvbGxlcihEZXZpY2VDbGllbnQqKTsKKyAgICB+RGV2aWNlQ29u
dHJvbGxlcigpIHsgfQorCisgICAgdm9pZCBhZGREZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRv
dyopOworICAgIHZvaWQgcmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cqKTsKKyAg
ICB2b2lkIHJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKERPTVdpbmRvdyopOworCisgICAg
dm9pZCBkaXNwYXRjaERldmljZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICBib29sIGlz
QWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQorICAgIERldmljZUNs
aWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHZpcnR1YWwgYm9vbCBo
YXNMYXN0RGF0YSgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEV2
ZW50PiBnZXRMYXN0RXZlbnQoKSB7IHJldHVybiAwOyB9CisKK3Byb3RlY3RlZDoKKyAgICB2b2lk
IGZpcmVEZXZpY2VFdmVudChUaW1lcjxEZXZpY2VDb250cm9sbGVyPiopOworCisgICAgSGFzaENv
dW50ZWRTZXQ8RE9NV2luZG93Kj4gbV9saXN0ZW5lcnM7CisgICAgSGFzaENvdW50ZWRTZXQ8RE9N
V2luZG93Kj4gbV9sYXN0RXZlbnRMaXN0ZW5lcnM7CisgICAgRGV2aWNlQ2xpZW50KiBtX2NsaWVu
dDsKKyAgICBUaW1lcjxEZXZpY2VDb250cm9sbGVyPiBtX3RpbWVyOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlQ29udHJvbGxlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwCmluZGV4IGM1YWRjOWFhYzdiMzVmYmFkOGI1OTM3YjhmNTU0OTkyMmNkOWNkZDku
LjRiNzc3ZDIzNjI3NmM5OTZjMjI1YWExMTU0MjUyMjAxOWRkODRlNWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwCkBAIC03MjIsNyArNzIyLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dDo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKFFXZWJQYWdlKiBwYWdlLCBib29sIGNhblAKIHsK
ICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIFBhZ2UqIGNvcmVQYWdlID0gUVdl
YlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9j
ayogbW9ja0NsaWVudCA9IHRvRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcjo6ZnJvbShjb3JlUGFnZSktPmNsaWVudCgpKTsKKyAgICBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0RldmljZU9yaWVudGF0aW9uQ2xp
ZW50TW9jayhEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20oY29yZVBhZ2UpLT5kZXZp
Y2VPcmllbnRhdGlvbkNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRPcmllbnRhdGlvbihE
ZXZpY2VPcmllbnRhdGlvbkRhdGE6OmNyZWF0ZShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBjYW5Q
cm92aWRlQmV0YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSkpOwogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171787</attachid>
            <date>2012-11-01 00:27:41 -0700</date>
            <delta_ts>2012-11-14 21:28:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96894-20121101162601.patch</filename>
            <type>text/plain</type>
            <size>36298</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQwMDViODE4YmI1ZDI5
NzJjNmY0ZDJmYTJkMjg1NmUwZWY1NzhlYi4uMDQ5NzRkMGM1ZWEzMTc5NmU0MjgzNzNhNTdiMDRm
Y2ZmNTJlNzgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTEwLTMxICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENv
bnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgIEFk
ZCBEZXZpY2VDb250cm9sbGVyIHdoaWNoIGlzIGV4dHJhY3RlZCBmcm9tIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlciB0byByZW1vdmUgZHVwbGljYXRpb24uCisgICAgICAgIEFuZCBzb29uLXRv
LWJlLWFkZGVkIERldmljZU1vdGlvbkNvbnRyb2xsZXIgYW5kIFByb3hpbWl0eUNvbnRyb2xsZXIu
CisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFy
Z2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOgorICAgICAg
ICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICBSZW1vdmUg
bWVtYmVyIGZ1bmN0aW9ucyB0byBtb3ZlIHRvIERldmljZUNvbnRyb2xsZXIuCisgICAgICAgIC0g
YWRkTGlzdGVuZXIoKSwgcmVtb3ZlTGlzdGVuZXIoKSwgcmVtb3ZlQWxsTGlzdGVuZXJzKCksIGlz
QWN0aXZlKCkKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpjbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpoYXNMYXN0RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmdldExhc3RFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20p
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6On5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIpOgorICAg
ICAgICAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICBSZW1vdmUgc3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycygpIGFu
ZCByZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoKSBmdW5jdGlvbiBjYWxscy4KKyAgICAgICAg
VGhlc2UgY2FsbHMgY2FuIGJlIG1hZGUgYnkgY2hlY2tpbmcgYWN0aXZlRE9NT2JqZWN0c0FyZVN1
c3BlbmRlZCgpIGFuZCBhY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpIGJlZm9yZSBkaXNwYXRj
aEV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN1c3BlbmRBY3RpdmVET01PYmpl
Y3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXN1bWVBY3RpdmVET01PYmplY3Rz
KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eURldmlj
ZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eURldmljZUNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eURldmljZUNsaWVudDo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycyk6CisgICAgICAgICogcGFnZS9E
ZXZpY2VDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmlj
ZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDbGllbnQ6On5EZXZpY2VDbGllbnQp
OgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICBE
ZXZpY2VDb250cm9sbGVyIGhhcyBleHRyYWN0ZWQgZnVuY3Rpb25zIGZyb20gRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyIGFuZCBEZXZpY2VNb3Rpb25Db250cm9sbGVyLgorICAgICAgICAtIGFk
ZERldmljZUV2ZW50TGlzdGVuZXIoKSwgcmVtb3ZlRGV2aWNlRXZlbnRsaXN0ZW5lcigpLCByZW1v
dmVBbGxEZXZpY2VFdmVudExpc3RlbmVycygpLCBkaXNwYXRjaERldmljZUV2ZW50KCkKKyAgICAg
ICAgQWxsIGtpbmQgb2YgZGV2aWNlIGV2ZW50IGNvbnRyb2xsZXIgd2hpY2ggaGFzIERldmljZUNs
aWVudCBjYW4gYmUgaW5oZXJpdGVkIGZyb20gRGV2aWNlQ29udHJvbGxlci4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6RGV2aWNlQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjphZGREZXZpY2VFdmVu
dExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OnJlbW92ZURl
dmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6
cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
Q29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29u
dHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjp+RGV2aWNlQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjppc0FjdGl2ZSk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpjbGllbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6aGFzTGFzdERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlQ29udHJvbGxlcjo6Z2V0TGFzdEV2ZW50KToKKwogMjAxMi0xMC0zMSAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtWOF0gR2FyYmFnZSBjb2xsZWN0
aW9uIHNob3VsZCB1c2Ugb3BhcXVlIHJvb3RzIHJhdGhlciB0aGFuIGltcGxpY2l0IHJlZmVyZW5j
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKaW5kZXggYWYxYjE1YmMwZjA3MWFkNjUzMzI0Yzg2M2Q4M2Y3NzFlY2Nj
ZWRhYy4uYzVhNjIyOWZiMzM3NWZhNGE3NDliZDczMTI5ZmU0N2QzMTEzMmI0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMC0zMSAgS2lob25nIEt3b24gIDxraWhvbmcu
a3dvbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBBZGQgRGV2aWNlQ29udHJvbGxlciBiYXNlLWNs
YXNzIHRvIHJlbW92ZSBkdXBsaWNhdGlvbiBvZiBEZXZpY2VYWFhDb250cm9sZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2ODk0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgSGFqaW1lIE1vcml0YS4KKworICAgICAgICBDaGFuZ2UgY2xpZW50KCkgdG8g
ZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSB0byBnZXQgRGV2aWNlT3JpZW50YXRpb25DbGllbnQq
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
OgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tEZXZpY2VPcmllbnRh
dGlvbik6CisKIDIwMTItMTAtMzEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21h
aWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzMwMTYuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDUxMzQ0NjViNTJhNmFhMWU4M2IxNzc5ZjZmMmY5YTYzZGE1OWY4
NjUuLjA2MzAwMGQxODYwZDJjZDE4NTNkODAzMzI3ZjhhMDg1YmYxYjAwNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNzExLDYgKzE3MTEsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCiAgICAgcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwCiAgICAgcGFnZS9DcnlwdG8uY3BwCisgICAgcGFnZS9EZXZpY2VDb250cm9sbGVy
LmNwcAogICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcAogICAgIHBhZ2UvRE9NU2Vj
dXJpdHlQb2xpY3kuY3BwCiAgICAgcGFnZS9ET01TZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQppbmRleCBhZmQzYmQ1ZDJjZDExYmQ4YzBmMWQ4YjQwMjBmMmIxZTJiMGI1
OWZlLi5jY2U2MWZhYjA5NjdmZGM2YjRmYWQyMWYzNWY1ZDY5ZDk1ZjQzYTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQwMDksNiArNDAwOSw5IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9Db29yZGluYXRlcy5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wYWdlL0NyeXB0by5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmggXAor
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGV2aWNlQ29udHJvbGxlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29u
dHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IDU0ZDUwZDc0MGI2ZjE2MjljNzlkYWM5NmZkMTNjOTZlNjNkNzliNTAuLjZlMGI5ZTY5YmJmZWUy
ZGY0YmU2OTE1N2NkMDcxMDZmMDEyZTBhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODcyLDYgKzg3Miw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBcCiAg
ICAgcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0NyeXB0by5jcHAg
XAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzLmNwcCBcCiAgICAgcGFnZS9ET01TZWxlY3Rpb24uY3BwIFwKICAgICBwYWdlL0RP
TVRpbWVyLmNwcCBcCkBAIC0xOTk5LDYgKzIwMDAsOCBAQCBIRUFERVJTICs9IFwKICAgICBwYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5oIFwKICAgICBwYWdlL0NvbnRleHRNZW51UHJvdmlkZXIu
aCBcCiAgICAgcGFnZS9Db29yZGluYXRlcy5oIFwKKyAgICBwYWdlL0RldmljZUNsaWVudC5oIFwK
KyAgICBwYWdlL0RldmljZUNvbnRyb2xsZXIuaCBcCiAgICAgcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0tleXMuaCBcCiAgICAgcGFnZS9ET01TZWxlY3Rpb24uaCBcCiAgICAgcGFnZS9ET01UaW1lci5o
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5YjI4NTlmMzYzNWI3MDQyZmZmMDVlNzkyYWQ1NmE3NGY1
MWExZWYyLi5kZGQ0ODNlZGZlZjdmMDQ3YWFhYmNkNzUxYjhmODRhOTRlNmNjZmMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0zMTE1LDYgKzMxMTUsOSBAQAogICAgICAgICAgICAgJ3BhZ2UvQ29udGV4
dE1lbnVQcm92aWRlci5oJywKICAgICAgICAgICAgICdwYWdlL0NyeXB0by5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvQ3J5cHRvLmgnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlQ2xpZW50Lmgn
LAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAnLAorICAgICAgICAgICAg
J3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
LmgnLAogICAgICAgICAgICAgJ3BhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMGE2ZWUwMDYxMDgy
ZmRjZGI0M2M4ZWM1MjYzZmRiOTRhNmQ1ZTBjMi4uNmJlN2ZkOGM5NGNmZWJlZjhlODhiMmRjZmU1
ODIzZGRhZWMzODA1OSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKQEAgLTI2OTYzLDYgKzI2OTYzLDE4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2aWNlQ2xpZW50LmgiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2aWNlQ29u
dHJvbGxlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcRGV2aWNlQ29udHJvbGxlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAi
CiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE4OTFiYzQzYjExNmViOTg2YmYxMGRlMDU5MzZkMzk2
NGI2MTY4ZmEuLjkyMzllNzJiNzdhZmVmZDVjNWJhYWY3ZmI0MDA4YTBjYjRhYjRkMTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTU4OTMsNiArNTg5Myw5IEBACiAJCUNBRTlGOTBGMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3Bl
Y3RSYXRpb1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNw
cCAqLzsgfTsKIAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlG
OTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggKi87IH07CiAJCUNB
RTlGOTEwMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1
QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oICovOyB9OworCQlDQ0MyQjUxNDE1RjYxMzA2MDA0OENE
RDYgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0NDMkI1MTUx
NUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8q
IERldmljZUNvbnRyb2xsZXIuY3BwICovOyB9OworCQlDQ0MyQjUxNjE1RjYxMzA2MDA0OENERDYg
LyogRGV2aWNlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDEy
N0RFRDE0RjMwOTdEMDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQjE0RjMwOTc5
MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi87IH07CiAJCUNEMTI3REVF
MTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUExNEYzMDk3OTAwRTg0
Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyN0Y2RTUxNDU3Njg1QTAwNzgyMDdEIC8qIEpT
TWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5j
cHAgKi87IH07CkBAIC0xMzI3MCw2ICsxMzI3Myw5IEBACiAJCUNBRTlGOTBEMTQ2NDQxRjAwMEMy
NDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVC
MSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU1ZhcmlhYmxlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0NDMkI1
MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZXZpY2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlQ29udHJvbGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBE
ZXZpY2VDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmlj
ZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUExNEYz
MDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVs
bFNjcmVlbldpbmRvdy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDI3RjZFMDE0NTc1QzFCMDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVyLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBN
ZWRpYUNvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU4NTgs
NiArMTU4NjQsOSBAQAogCQkJCTk3NUNBMjg3MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uY3Bw
ICovLAogCQkJCTk3NUNBMjg4MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaCAqLywKIAkJCQk5
NzVDQTI4OTEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmlkbCAqLywKKwkJCQlDQ0MyQjUxMDE1
RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi8sCisJCQkJQ0NDMkI1MTExNUY2MTMw
NjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovLAorCQkJCUNDQzJCNTEyMTVGNjEz
MDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8sCiAJCQkJQ0QzN0IzNzQxNUMxQTdF
MTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgKi8sCiAJCQkJQ0QzN0IzNzUx
NUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5oICovLAogCQkJCTJEOUEy
NDZBMTVCOUJCREQwMEQzNDUyNyAvKiBET01TZWN1cml0eVBvbGljeS5jcHAgKi8sCkBAIC0yMjc4
Myw2ICsyMjc5Miw4IEBACiAJCQkJOTMzMDlERTEwOTlFNjQ5MjAwNTZFNTgxIC8qIERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMTY2MEE1MTM3ODdDNkQwMDFG
RkE3QiAvKiBEZW5vcm1hbERpc2FibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0M5QUJGOTEz
NTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCBpbiBIZWFkZXJzICovLAor
CQkJCUNDQzJCNTE0MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNDQzJCNTE2MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1NzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90
aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1OTEyMEE1RDA2MDBEQzAyQTAg
LyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFBNUIx
MjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAt
MjYzNDIsNiArMjYzNTMsNyBAQAogCQkJCTkzMzA5RERFMDk5RTY0OTIwMDU2RTU4MSAvKiBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5REUwMDk5
RTY0OTIwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE3QzlBQkY4MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlDQ0MyQjUxNTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNl
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBEQzAy
QTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZC
MUE1QTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMUZCMUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oCmluZGV4IDQwNDljMDNhNGExNDRhNzQ1MjI5YTA1NDEzODFjZDU3ZTE0YzY1YjUuLjg1
ZDYyZWMwZDdiZDQ2YmY5YTQ2MmM5YjUyZWNhOWE0ODExZWViMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsMTggKzI3LDE4IEBACiAjaWZu
ZGVmIERldmljZU9yaWVudGF0aW9uQ2xpZW50X2gKICNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRfaAogCisjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwogY2xhc3MgRGV2aWNlT3Jp
ZW50YXRpb25EYXRhOwogY2xhc3MgUGFnZTsKIAotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGll
bnQgeworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgOiBwdWJsaWMgRGV2aWNlQ2xpZW50
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIHt9CiAg
ICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
KikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSA9IDA7CiAgICAgdmlydHVhbCBEZXZpY2VPcmllbnRhdGlv
bkRhdGEqIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgPSAwOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggMzAy
ZGI2MTI0MzRiYTRkNmE1OTI3YzhkM2ZlYzgzNzYwODdlYWI3NS4uMDcwM2FhNWZlMjg5MDM2Yzgz
ODRjYmYwM2E3MmMxMDA5ZDMwOTk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCwxNyArMzUsMTEgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIoUGFnZSogcGFnZSwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVu
dCkKLSAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICA6IERldmljZUNvbnRyb2xsZXIoY2xpZW50
KQogICAgICwgbV9wYWdlKHBhZ2UpCi0gICAgLCBtX3RpbWVyKHRoaXMsICZEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXI6OnRpbWVyRmlyZWQpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAg
ICBtX2NsaWVudC0+c2V0Q29udHJvbGxlcih0aGlzKTsKLX0KLQotRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyOjp+RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkKLXsKLSAgICBtX2NsaWVu
dC0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CisgICAgZGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQoKS0+c2V0Q29udHJvbGxlcih0aGlzKTsKIH0KIAogUGFzc093blB0cjxE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
Y3JlYXRlKFBhZ2UqIHBhZ2UsIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQpCkBAIC01
Miw5MSArNDcsMjUgQEAgUGFzc093blB0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UKICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKIH0KIAot
dm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnRpbWVyRmlyZWQoVGltZXI8RGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyPiogdGltZXIpCi17Ci0gICAgQVNTRVJUX1VOVVNFRCh0aW1l
ciwgdGltZXIgPT0gJm1fdGltZXIpOwotICAgIEFTU0VSVChtX2NsaWVudC0+bGFzdE9yaWVudGF0
aW9uKCkpOwotCi0gICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uRGF0YT4gb3JpZW50YXRpb24g
PSBtX2NsaWVudC0+bGFzdE9yaWVudGF0aW9uKCk7Ci0gICAgUmVmUHRyPERldmljZU9yaWVudGF0
aW9uRXZlbnQ+IGV2ZW50ID0gRGV2aWNlT3JpZW50YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50LCBvcmllbnRhdGlvbi5nZXQoKSk7Ci0KLSAgICBW
ZWN0b3I8UmVmUHRyPERPTVdpbmRvdz4gPiBsaXN0ZW5lcnNWZWN0b3I7Ci0gICAgY29weVRvVmVj
dG9yKG1fbmV3TGlzdGVuZXJzLCBsaXN0ZW5lcnNWZWN0b3IpOwotICAgIG1fbmV3TGlzdGVuZXJz
LmNsZWFyKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lcnNWZWN0b3Iuc2l6
ZSgpOyArK2kpCi0gICAgICAgIGxpc3RlbmVyc1ZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVudChldmVu
dCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjphZGRMaXN0ZW5lcihE
T01XaW5kb3cqIHdpbmRvdykKLXsKLSAgICAvLyBJZiB0aGUgY2xpZW50IGFscmVhZHkgaGFzIGFu
IG9yaWVudGF0aW9uLCB3ZSBzaG91bGQgZmlyZSBhbiBldmVudCB3aXRoIHRoYXQKLSAgICAvLyBv
cmllbnRhdGlvbi4gVGhlIGV2ZW50IGlzIGZpcmVkIGFzeW5jaHJvbm91c2x5LCBidXQgd2l0aG91
dAotICAgIC8vIHdhaXRpbmcgZm9yIHRoZSBjbGllbnQgdG8gZ2V0IGEgbmV3IG9yaWVudGF0aW9u
LgotICAgIGlmIChtX2NsaWVudC0+bGFzdE9yaWVudGF0aW9uKCkpIHsKLSAgICAgICAgbV9uZXdM
aXN0ZW5lcnMuYWRkKHdpbmRvdyk7Ci0gICAgICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQot
ICAgICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Ci0gICAgfQotCi0gICAgLy8gVGhl
IGNsaWVudCBtdXN0IG5vdCBjYWxsIGJhY2sgc3luY2hyb25vdXNseS4KLSAgICBib29sIHdhc0Vt
cHR5ID0gbV9saXN0ZW5lcnMuaXNFbXB0eSgpOwotICAgIG1fbGlzdGVuZXJzLmFkZCh3aW5kb3cp
OwotICAgIGlmICh3YXNFbXB0eSkKLSAgICAgICAgbV9jbGllbnQtPnN0YXJ0VXBkYXRpbmcoKTsK
LX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVyKERP
TVdpbmRvdyogd2luZG93KQotewotICAgIG1fbGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOwotICAg
IG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOwotICAgIG1fbmV3TGlzdGVuZXJz
LnJlbW92ZSh3aW5kb3cpOwotICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpCi0gICAgICAg
IG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OnJlbW92ZUFsbExpc3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKK3ZvaWQgRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZp
Y2VPcmllbnRhdGlvbkRhdGEqIG9yaWVudGF0aW9uKQogewotICAgIC8vIE1heSBiZSBjYWxsZWQg
d2l0aCBhIERPTVdpbmRvdyB0aGF0J3Mgbm90IGEgbGlzdGVuZXIuCi0gICAgaWYgKCFtX2xpc3Rl
bmVycy5jb250YWlucyh3aW5kb3cpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2xpc3RlbmVy
cy5yZW1vdmVBbGwod2luZG93KTsKLSAgICBtX3N1c3BlbmRlZExpc3RlbmVycy5yZW1vdmVBbGwo
d2luZG93KTsKLSAgICBtX25ld0xpc3RlbmVycy5yZW1vdmUod2luZG93KTsKLSAgICBpZiAobV9s
aXN0ZW5lcnMuaXNFbXB0eSgpKQotICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cisg
ICAgb3JpZW50YXRpb24gPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om92ZXJyaWRlRGV2aWNl
T3JpZW50YXRpb24obV9wYWdlLCBvcmllbnRhdGlvbik7CisgICAgZGlzcGF0Y2hEZXZpY2VFdmVu
dChEZXZpY2VPcmllbnRhdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRldmljZW9yaWVu
dGF0aW9uRXZlbnQsIG9yaWVudGF0aW9uKSk7CiB9CiAKLXZvaWQgRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyOjpzdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKERPTVdpbmRvdyogd2luZG93
KQorRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
ZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKQogewotICAgIGlmICghbV9saXN0ZW5lcnMuY29udGFp
bnMod2luZG93KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW50IGNvdW50ID0gbV9saXN0ZW5l
cnMuY291bnQod2luZG93KTsKLSAgICByZW1vdmVBbGxMaXN0ZW5lcnMod2luZG93KTsKLSAgICB3
aGlsZSAoY291bnQtLSkKLSAgICAgICAgbV9zdXNwZW5kZWRMaXN0ZW5lcnMuYWRkKHdpbmRvdyk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERldmljZU9yaWVudGF0aW9uQ2xpZW50Kj4obV9jbGll
bnQpOwogfQogCi12b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6cmVzdW1lRXZlbnRz
Rm9yQWxsTGlzdGVuZXJzKERPTVdpbmRvdyogd2luZG93KQorYm9vbCBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXI6Omhhc0xhc3REYXRhKCkKIHsKLSAgICBpZiAoIW1fc3VzcGVuZGVkTGlzdGVu
ZXJzLmNvbnRhaW5zKHdpbmRvdykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBjb3VudCA9
IG1fc3VzcGVuZGVkTGlzdGVuZXJzLmNvdW50KHdpbmRvdyk7Ci0gICAgbV9zdXNwZW5kZWRMaXN0
ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7Ci0gICAgd2hpbGUgKGNvdW50LS0pCi0gICAgICAgIGFk
ZExpc3RlbmVyKHdpbmRvdyk7CisgICAgcmV0dXJuIGRldmljZU9yaWVudGF0aW9uQ2xpZW50KCkt
Pmxhc3RPcmllbnRhdGlvbigpOwogfQogCi12b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cjo6ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb25EYXRhKiBvcmll
bnRhdGlvbikKK1Bhc3NSZWZQdHI8RXZlbnQ+IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
Z2V0TGFzdEV2ZW50KCkKIHsKLSAgICBvcmllbnRhdGlvbiA9IEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6b3ZlcnJpZGVEZXZpY2VPcmllbnRhdGlvbihtX3BhZ2UsIG9yaWVudGF0aW9uKTsKLSAg
ICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25FdmVudD4gZXZlbnQgPSBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQsIG9yaWVu
dGF0aW9uKTsKLSAgICBWZWN0b3I8UmVmUHRyPERPTVdpbmRvdz4gPiBsaXN0ZW5lcnNWZWN0b3I7
Ci0gICAgY29weVRvVmVjdG9yKG1fbGlzdGVuZXJzLCBsaXN0ZW5lcnNWZWN0b3IpOwotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJzVmVjdG9yLnNpemUoKTsgKytpKQotICAgICAg
ICBsaXN0ZW5lcnNWZWN0b3JbaV0tPmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIHJldHVybiBE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0
aW9uRXZlbnQsIGRldmljZU9yaWVudGF0aW9uQ2xpZW50KCktPmxhc3RPcmllbnRhdGlvbigpKTsK
IH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1
cHBsZW1lbnROYW1lKCkKQEAgLTE0NSw2ICs3NCwxMSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiBu
YW1lOwogfQogCitEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcjo6ZnJvbShQYWdlKiBwYWdlKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2Us
IHN1cHBsZW1lbnROYW1lKCkpKTsKK30KKwogYm9vbCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OmlzQWN0aXZlQXQoUGFnZSogcGFnZSkKIHsKICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyKiBzZWxmID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2Up
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5o
CmluZGV4IGY1ZTZmOTUwM2MxM2VkOWY5MmU5MjhmOTFlMWZiNWIyMzI0MGUwZWQuLjAwMjExOTUw
YWMyM2M0OGE5Yjg1MDBjOWFiNDJkNDdjMWJjMGUyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw1MyArMjcsMzQgQEAKICNp
Zm5kZWYgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyX2gKICNkZWZpbmUgRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyX2gKIAotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIlBh
Z2UuaCIKLSNpbmNsdWRlICJUaW1lci5oIgotCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKIGNsYXNzIERldmljZU9yaWVudGF0aW9u
Q2xpZW50OworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOwogCi1jbGFzcyBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CitjbGFzcyBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgRGV2aWNlQ29udHJvbGxlciB7CiBwdWJs
aWM6Ci0gICAgfkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpOworICAgIH5EZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIoKSB7IH07CiAKICAgICBzdGF0aWMgUGFzc093blB0cjxEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgRGV2aWNlT3JpZW50YXRpb25DbGll
bnQqKTsKIAotICAgIHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93Kik7Ci0gICAgdm9pZCByZW1v
dmVMaXN0ZW5lcihET01XaW5kb3cqKTsKLSAgICB2b2lkIHJlbW92ZUFsbExpc3RlbmVycyhET01X
aW5kb3cqKTsKLQotICAgIHZvaWQgc3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyhET01XaW5k
b3cqKTsKLSAgICB2b2lkIHJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhET01XaW5kb3cqKTsK
LQogICAgIHZvaWQgZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb25E
YXRhKik7CisgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGRldmljZU9yaWVudGF0aW9uQ2xp
ZW50KCk7CiAKLSAgICBib29sIGlzQWN0aXZlKCkgeyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1w
dHkoKTsgfQotCi0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50OyB9CisgICAgdmlydHVhbCBib29sIGhhc0xhc3REYXRhKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEV2ZW50PiBnZXRMYXN0RXZlbnQoKSBPVkVSUklE
RTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7Ci0g
ICAgc3RhdGljIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7
IHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqPihTdXBwbGVt
ZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsgfQorICAgIHN0YXRpYyBE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGZyb20oUGFnZSopOwogICAgIHN0YXRpYyBib29s
IGlzQWN0aXZlQXQoUGFnZSopOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcihQYWdlKiwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqKTsKLQotICAg
IHZvaWQgdGltZXJGaXJlZChUaW1lcjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+Kik7Cisg
ICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFBhZ2UqLCBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudCopOwogCi0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIG1fY2xpZW50OwogICAgIFBh
Z2UqIG1fcGFnZTsKLSAgICB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PFJlZlB0cjxET01XaW5kb3c+
ID4gTGlzdGVuZXJzQ291bnRlZFNldDsKLSAgICBMaXN0ZW5lcnNDb3VudGVkU2V0IG1fbGlzdGVu
ZXJzOwotICAgIExpc3RlbmVyc0NvdW50ZWRTZXQgbV9zdXNwZW5kZWRMaXN0ZW5lcnM7Ci0gICAg
dHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxET01XaW5kb3c+ID4gTGlzdGVuZXJzU2V0OwotICAgIExp
c3RlbmVyc1NldCBtX25ld0xpc3RlbmVyczsKLSAgICBUaW1lcjxEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI+IG1fdGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCAyYjRjNjcxNmVmYjliMThlOWEwOGNhYmY5NDMwNmUxODVjZWJi
MmE3Li42MTI5ZWYzODBlMjk0MmVkZDZhNDQ5MzE0MWFjYjZjMmVhMmI1ZWRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTIxODIsOSArMjE4Miw2IEBAIHZvaWQgRG9jdW1lbnQ6OnN1c3Bl
bmRBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6UmVhc29uRm9yU3VzcGVuc2lvbiB3
aHkpCiAKICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmlj
ZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+c3Vz
cGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7Ci0gICAgaWYgKERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAgICBjb250cm9sbGVyLT5zdXNwZW5kRXZlbnRzRm9y
QWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKLQogI2VuZGlmCiB9CiAKQEAgLTIxOTgsOCArMjE5
NSw2IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHMoKQogCiAgICAgaWYg
KERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9s
bGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50c0ZvckFs
bExpc3RlbmVycyhkb21XaW5kb3coKSk7Ci0gICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdl
KCkpKQotICAgICAgICBjb250cm9sbGVyLT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9t
V2luZG93KCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApp
bmRleCA3M2M5ODE5MzQxNTc2NzAyNGZiNDYwMDI1OWFlNWVlOTNhOWFlYzQwLi5kMTAzYTAwMmVk
NWU2YTMyNjQzNTMyYTEyYWVjY2ZlNmM3MWU5OThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCkBAIC01NzMsNiArNTczLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
aGlkZUhpZ2hsaWdodCgpIHsgfQogfTsKIAorY2xhc3MgRW1wdHlEZXZpY2VDbGllbnQgOiBwdWJs
aWMgRGV2aWNlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGlu
ZygpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSBPVkVSUklE
RSB7IH0KK307CisKIGNsYXNzIEVtcHR5RGV2aWNlTW90aW9uQ2xpZW50IDogcHVibGljIERldmlj
ZU1vdGlvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xsZXIo
RGV2aWNlTW90aW9uQ29udHJvbGxlciopIHsgfQpAQCAtNTg1LDggKzU5MSw2IEBAIHB1YmxpYzoK
IGNsYXNzIEVtcHR5RGV2aWNlT3JpZW50YXRpb25DbGllbnQgOiBwdWJsaWMgRGV2aWNlT3JpZW50
YXRpb25DbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVw
ZGF0aW5nKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpIHsgfQogICAgIHZp
cnR1YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCB7IHJl
dHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRl
c3Ryb3llZCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBhODRmZWM1
OWM5NWViODUxYzRiYTM3OWRmYzE4YTI3NWUzZjJmZGIwLi4zMjBjZmY1MWI1OTJhYjVkNGI1M2Y1
N2Y1ZGQ3OTYxNjg3OTNhMmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNjAx
LDcgKzE2MDEsNyBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudAogICAgICAgICAgICAgY29udHJv
bGxlci0+YWRkTGlzdGVuZXIodGhpcyk7CiAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZl
bnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6ZGV2aWNlT3JpZW50YXRpb25FbmFibGVkKCkpIHsKICAgICAgICAgaWYgKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cjo6ZnJvbShwYWdlKCkpKQotICAgICAgICAgICAgY29udHJvbGxlci0+YWRkTGlzdGVuZXIodGhp
cyk7CisgICAgICAgICAgICBjb250cm9sbGVyLT5hZGREZXZpY2VFdmVudExpc3RlbmVyKHRoaXMp
OwogICAgIH0KICNlbmRpZgogCkBAIC0xNjMwLDcgKzE2MzAsNyBAQCBib29sIERPTVdpbmRvdzo6
cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRM
aXN0ZW5lcgogICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CiAg
ICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9u
RXZlbnQpIHsKICAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJv
bGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQotICAgICAg
ICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBjb250
cm9sbGVyLT5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKHRoaXMpOwogICAgIH0KICNlbmRpZgog
CkBAIC0xNjg3LDcgKzE2ODcsNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0
ZW5lcnMoKQogICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2
aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5y
ZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CiAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdl
KCkpKQotICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CisgICAg
ICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKHRoaXMpOwogI2Vu
ZGlmCiAKICAgICByZW1vdmVBbGxVbmxvYWRFdmVudExpc3RlbmVycyh0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RldmljZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1MTYwYjcxNzdmOTQwNTJkNWIwNjYxZTMx
NjAyODk2NDkyYjYxMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rl
dmljZUNsaWVudC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMCwgVGhl
IEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1
bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RGV2aWNlQ2xpZW50X2gKKyNkZWZpbmUgRGV2aWNlQ2xpZW50X2gKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEZXZpY2VDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRldmlj
ZUNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VDb250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzEwNWIzYWI4MDhlMDg0ZTg4YTI3MjFh
ODA5MTc0NTM5NjE2MTQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAy
MDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZUNvbnRyb2xsZXIuaCIKKworI2lu
Y2x1ZGUgIkRldmljZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZUNvbnRyb2xsZXI6OkRldmlj
ZUNvbnRyb2xsZXIoRGV2aWNlQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQp
CisgICAgLCBtX3RpbWVyKHRoaXMsICZEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQp
Cit7CisgICAgQVNTRVJUKG1fY2xpZW50KTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjph
ZGREZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIGJvb2wgd2Fz
RW1wdHkgPSBtX2xpc3RlbmVycy5pc0VtcHR5KCk7CisgICAgbV9saXN0ZW5lcnMuYWRkKHdpbmRv
dyk7CisKKyAgICBpZiAoaGFzTGFzdERhdGEoKSkgeworICAgICAgICBtX2xhc3RFdmVudExpc3Rl
bmVycy5hZGQod2luZG93KTsKKyAgICAgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAg
ICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICB9CisKKyAgICBpZiAoIXdhc0Vt
cHR5KQorICAgICAgICBtX2NsaWVudC0+c3RhcnRVcGRhdGluZygpOworfQorCit2b2lkIERldmlj
ZUNvbnRyb2xsZXI6OnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93KiB3aW5kb3cp
Cit7CisgICAgbV9saXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7CisgICAgbV9sYXN0RXZlbnRMaXN0
ZW5lcnMucmVtb3ZlKHdpbmRvdyk7CisgICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKKyAg
ICAgICAgbV9jbGllbnQtPnN0b3BVcGRhdGluZygpOworfQorCit2b2lkIERldmljZUNvbnRyb2xs
ZXI6OnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKERPTVdpbmRvdyogd2luZG93KQorewor
ICAgIG1fbGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIG1fbGFzdEV2ZW50TGlzdGVu
ZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpCisg
ICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VDb250cm9s
bGVyOjpkaXNwYXRjaERldmljZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQoreworICAg
IFZlY3RvcjxSZWZQdHI8RE9NV2luZG93PiA+IGxpc3RlbmVyVmVjdG9yOworICAgIGNvcHlUb1Zl
Y3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJWZWN0b3IpOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGlzdGVuZXJWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGxpc3RlbmVy
VmVjdG9yW2ldLT5kb2N1bWVudCgpCisgICAgICAgICAgICAmJiAhbGlzdGVuZXJWZWN0b3JbaV0t
PmRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKQorICAgICAgICAgICAg
JiYgIWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVudCgpLT5hY3RpdmVET01PYmplY3RzQXJlU3Rv
cHBlZCgpKQorICAgICAgICBsaXN0ZW5lclZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVudChldmVudCk7
CisgICAgfQorfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmZpcmVEZXZpY2VFdmVudChUaW1l
cjxEZXZpY2VDb250cm9sbGVyPiogdGltZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwg
dGltZXIgPT0gJm1fdGltZXIpOworICAgIEFTU0VSVChoYXNMYXN0RGF0YSgpKTsKKworICAgIG1f
dGltZXIuc3RvcCgpOworICAgIFZlY3RvcjxSZWZQdHI8RE9NV2luZG93PiA+IGxpc3RlbmVyVmVj
dG9yOworICAgIGNvcHlUb1ZlY3RvcihtX2xhc3RFdmVudExpc3RlbmVycywgbGlzdGVuZXJWZWN0
b3IpOworICAgIG1fbGFzdEV2ZW50TGlzdGVuZXJzLmNsZWFyKCk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBsaXN0ZW5lclZlY3Rvci5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobGlz
dGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCkKKyAgICAgICAgICAgICYmICFsaXN0ZW5lclZlY3Rv
cltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpCisgICAgICAg
ICAgICAmJiAhbGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNB
cmVTdG9wcGVkKCkpCisgICAgICAgIGxpc3RlbmVyVmVjdG9yW2ldLT5kaXNwYXRjaEV2ZW50KGdl
dExhc3RFdmVudCgpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdmZjc4MjJkMTZhYjYz
ZmEwZWUyMmQ3YzE2Yzc0ZDlhMTFiOWQ3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgRGV2aWNlQ29udHJvbGxlcl9oCisjZGVmaW5lIERldmljZUNvbnRyb2xs
ZXJfaAorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNs
dWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNl
Q2xpZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgRGV2aWNlQ29udHJvbGxlciA6IHB1YmxpYyBT
dXBwbGVtZW50PFBhZ2U+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEZXZpY2VDb250cm9sbGVy
KERldmljZUNsaWVudCopOworICAgIH5EZXZpY2VDb250cm9sbGVyKCkgeyB9CisKKyAgICB2b2lk
IGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Kik7CisgICAgdm9pZCByZW1vdmVEZXZp
Y2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyopOworICAgIHZvaWQgcmVtb3ZlQWxsRGV2aWNlRXZl
bnRMaXN0ZW5lcnMoRE9NV2luZG93Kik7CisKKyAgICB2b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4pOworICAgIGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0
ZW5lcnMuaXNFbXB0eSgpOyB9CisgICAgRGV2aWNlQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBt
X2NsaWVudDsgfQorCisgICAgdmlydHVhbCBib29sIGhhc0xhc3REYXRhKCkgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RXZlbnQ+IGdldExhc3RFdmVudCgpIHsgcmV0
dXJuIDA7IH0KKworcHJvdGVjdGVkOgorICAgIHZvaWQgZmlyZURldmljZUV2ZW50KFRpbWVyPERl
dmljZUNvbnRyb2xsZXI+Kik7CisKKyAgICBIYXNoQ291bnRlZFNldDxSZWZQdHI8RE9NV2luZG93
PiA+IG1fbGlzdGVuZXJzOworICAgIEhhc2hDb3VudGVkU2V0PFJlZlB0cjxET01XaW5kb3c+ID4g
bV9sYXN0RXZlbnRMaXN0ZW5lcnM7CisgICAgRGV2aWNlQ2xpZW50KiBtX2NsaWVudDsKKyAgICBU
aW1lcjxEZXZpY2VDb250cm9sbGVyPiBtX3RpbWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRGV2aWNlQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CmluZGV4IGRhNzkzMTExZmFiZGIzYTA5NDkxMjJiMGU2ZDA0YTZlZWZiNDUxMjYuLmVkZjIwYTQ2
MDUwMzMxNzY0ZDc5ZGJmZjBkMzNiYzkwN2JjYmY2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CkBAIC03MTMsNyArNzEzLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9j
a0RldmljZU9yaWVudGF0aW9uKFFXZWJQYWdlKiBwYWdlLCBib29sIGNhblAKIHsKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIFBhZ2UqIGNvcmVQYWdlID0gUVdlYlBhZ2VQcml2
YXRlOjpjb3JlKHBhZ2UpOwotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogbW9ja0Ns
aWVudCA9IHRvRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcjo6ZnJvbShjb3JlUGFnZSktPmNsaWVudCgpKTsKKyAgICBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayhE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20oY29yZVBhZ2UpLT5kZXZpY2VPcmllbnRh
dGlvbkNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRPcmllbnRhdGlvbihEZXZpY2VPcmll
bnRhdGlvbkRhdGE6OmNyZWF0ZShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92aWRlQmV0
YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSkpOwogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174336</attachid>
            <date>2012-11-14 21:28:42 -0800</date>
            <delta_ts>2012-11-16 02:20:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96894-20121115142639.patch</filename>
            <type>text/plain</type>
            <size>36304</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwZjM1ZmNkMWIxNzUz
MmU1YWRjYjFkY2M3MmI1NGY3MDQwZDc2NS4uZTkyZmY5NzNlMWNiYTRiMmNkNzA0MWEyOWQ1Yjhl
MzRlYTg0NzdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTExLTE0ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENv
bnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgIEFk
ZCBEZXZpY2VDb250cm9sbGVyIHdoaWNoIGlzIGV4dHJhY3RlZCBmcm9tIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlciB0byByZW1vdmUgZHVwbGljYXRpb24uCisgICAgICAgIEFuZCBzb29uLXRv
LWJlLWFkZGVkIERldmljZU1vdGlvbkNvbnRyb2xsZXIgYW5kIFByb3hpbWl0eUNvbnRyb2xsZXIu
CisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFy
Z2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOgorICAgICAg
ICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICBSZW1vdmUg
bWVtYmVyIGZ1bmN0aW9ucyB0byBtb3ZlIHRvIERldmljZUNvbnRyb2xsZXIuCisgICAgICAgIC0g
YWRkTGlzdGVuZXIoKSwgcmVtb3ZlTGlzdGVuZXIoKSwgcmVtb3ZlQWxsTGlzdGVuZXJzKCksIGlz
QWN0aXZlKCkKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpjbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpoYXNMYXN0RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmdldExhc3RFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20p
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6On5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIpOgorICAg
ICAgICAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICBSZW1vdmUgc3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycygpIGFu
ZCByZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoKSBmdW5jdGlvbiBjYWxscy4KKyAgICAgICAg
VGhlc2UgY2FsbHMgY2FuIGJlIG1hZGUgYnkgY2hlY2tpbmcgYWN0aXZlRE9NT2JqZWN0c0FyZVN1
c3BlbmRlZCgpIGFuZCBhY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpIGJlZm9yZSBkaXNwYXRj
aEV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN1c3BlbmRBY3RpdmVET01PYmpl
Y3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXN1bWVBY3RpdmVET01PYmplY3Rz
KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eURldmlj
ZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eURldmljZUNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eURldmljZUNsaWVudDo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycyk6CisgICAgICAgICogcGFnZS9E
ZXZpY2VDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmlj
ZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDbGllbnQ6On5EZXZpY2VDbGllbnQp
OgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICBE
ZXZpY2VDb250cm9sbGVyIGhhcyBleHRyYWN0ZWQgZnVuY3Rpb25zIGZyb20gRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyIGFuZCBEZXZpY2VNb3Rpb25Db250cm9sbGVyLgorICAgICAgICAtIGFk
ZERldmljZUV2ZW50TGlzdGVuZXIoKSwgcmVtb3ZlRGV2aWNlRXZlbnRsaXN0ZW5lcigpLCByZW1v
dmVBbGxEZXZpY2VFdmVudExpc3RlbmVycygpLCBkaXNwYXRjaERldmljZUV2ZW50KCkKKyAgICAg
ICAgQWxsIGtpbmQgb2YgZGV2aWNlIGV2ZW50IGNvbnRyb2xsZXIgd2hpY2ggaGFzIERldmljZUNs
aWVudCBjYW4gYmUgaW5oZXJpdGVkIGZyb20gRGV2aWNlQ29udHJvbGxlci4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6RGV2aWNlQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjphZGREZXZpY2VFdmVu
dExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OnJlbW92ZURl
dmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6
cmVtb3ZlQWxsRGV2aWNlRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
Q29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29u
dHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjp+RGV2aWNlQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjppc0FjdGl2ZSk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpjbGllbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6aGFzTGFzdERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlQ29udHJvbGxlcjo6Z2V0TGFzdEV2ZW50KToKKwogMjAxMi0xMS0xNCAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2hhbmdpbmcgcHNl
dWRvQ2xhc3MgKDpjaGVja2VkKSBzaG91bGQgY2F1c2UgZGlzdHJpYnV0aW9uLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCAzNDBjZjk1Mzc0NjNjNjYzMTU4YjRiYzMzODY2YWI3NGRhMDMyODY5Li4yOThmZTM3
YzQ4MWVkNDM0NDU0ZGJlNjVjYWM4MzBhN2M2Nzc2YmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTExLTE0ICBLaWhvbmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIEFkZCBEZXZpY2VDb250cm9sbGVyIGJhc2UtY2xhc3MgdG8gcmVtb3Zl
IGR1cGxpY2F0aW9uIG9mIERldmljZVhYWENvbnRyb2xlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBI
YWppbWUgTW9yaXRhLgorCisgICAgICAgIENoYW5nZSBjbGllbnQoKSB0byBkZXZpY2VPcmllbnRh
dGlvbkNsaWVudCgpIHRvIGdldCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCouCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKToKKwogMjAx
Mi0xMS0xNCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtRdF0gRml4IHRzdF9RV2ViRnJhbWU6OnNldFVybFdpdGhQZW5kaW5nTG9hZHMoKSBBUEkgdGVz
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmM2Q4NmEyMWIwZjU4NzFlNDZmNmEyZWY3ZmJiNTI1
ZTZlOTk3ZGMzLi5kNDlkNDhkYjgyYzUyMmVhNmJmNThmNTUwN2FmMTk5NTUxMzllMzI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMTcwNiw2ICsxNzA2LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAogICAgIHBhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcAogICAgIHBhZ2UvQ3J5cHRvLmNwcAorICAgIHBhZ2UvRGV2aWNlQ29u
dHJvbGxlci5jcHAKICAgICBwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKICAgICBwYWdl
L0RPTVNlY3VyaXR5UG9saWN5LmNwcAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNWJmMWYyMWM2OTE2OTVmY2JlNjJhNDMyNTIxM2Nj
YzRkNDNmODJiMi4uMGI4Njk2ZDg4ZDdjMTlhNWExODVjOTAwMzgxNjI3MzIyYTNjODYyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zOTg1LDYgKzM5ODUsOSBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0
by5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0Rl
dmljZUNvbnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0tleXMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQppbmRleCAwOTI1OWUxZDg5ZWI5MGRmZTZjNGYxMTAxNWYzMDM5NDNlZGE2NmQwLi4xZmY5MDUz
YjUzZTk2NWEwNGM2MDkxODhmYjAxN2JjZTQ0YTdhYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg3NSw2
ICs4NzUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5j
cHAgXAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9Dcnlw
dG8uY3BwIFwKKyAgICBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0RpYWdu
b3N0aWNMb2dnaW5nS2V5cy5jcHAgXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcCBcCiAgICAg
cGFnZS9ET01UaW1lci5jcHAgXApAQCAtMjAwMyw2ICsyMDA0LDggQEAgSEVBREVSUyArPSBcCiAg
ICAgcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaCBcCiAgICAgcGFnZS9Db250ZXh0TWVudVBy
b3ZpZGVyLmggXAogICAgIHBhZ2UvQ29vcmRpbmF0ZXMuaCBcCisgICAgcGFnZS9EZXZpY2VDbGll
bnQuaCBcCisgICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmggXAogICAgIHBhZ2UvRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmggXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmggXAogICAgIHBhZ2UvRE9N
VGltZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMjVkNWEyNDk0YzdkZTNmNjc3NzdjOGIxMGVj
YmVkOTYzOWZiNWIxMC4uNDNkMzdiNTg0ZWNhMjA2ODg5NmQ3YmVlODc2MjFkNTQ2MDU4NTY3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzA3Nyw2ICszMDc3LDkgQEAKICAgICAgICAgICAgICdwYWdl
L0NvbnRleHRNZW51UHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9DcnlwdG8uY3BwJywK
ICAgICAgICAgICAgICdwYWdlL0NyeXB0by5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNs
aWVudC5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwJywKKyAgICAg
ICAgICAgICdwYWdlL0RldmljZUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9EaWFn
bm9zdGljTG9nZ2luZ0tleXMuY3BwJywKICAgICAgICAgICAgICdwYWdlL0RpYWdub3N0aWNMb2dn
aW5nS2V5cy5oJywKICAgICAgICAgICAgICdwYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGYwNGY2
N2QzOTJhOGRiZDBmM2IxOTRhNTUxMzJkNWNiYzUyNmM4MjUuLmVmYWNiNGY4N2RkZjMxNTk2YWI1
NTA3MzNlNGM1ZGJiNjQwM2Y1NWMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC0yNjg1MSw2ICsyNjg1MSwxOCBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNsaWVudC5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERl
dmljZUNvbnRyb2xsZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNvbnRyb2xsZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEaWFnbm9zdGljTG9nZ2luZ0tl
eXMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2YzRhMjI3ZTdmNzkwNjJjNjFmZmZiOTRl
NWQ3MzdkMGRiM2Y1ZjI5Li4zODdlZTQ0NzhlMzc4ZWFkYzkwNzlmYjUyN2UwMjBlZjE1YmFjZTZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC01ODg4LDYgKzU4ODgsOSBAQAogCQlDQUU5RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyog
Q1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9W
YWx1ZS5jcHAgKi87IH07CiAJCUNBRTlGOTEwMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RS
YXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovOyB9
OwogCQlDQUU5RjkxMDE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFG
MDAwQzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFsdWUuaCAqLzsgfTsKKwkJQ0NDMkI1MTQxNUY2MTMw
NjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUND
QzJCNTE1MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTExMTVGNjEzMDYwMDQ4
Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLzsgfTsKKwkJQ0NDMkI1MTYxNUY2MTMwNjAw
NDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250
cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0QxMjdERUQxNEYzMDk3RDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUIx
NEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovOyB9OwogCQlD
RDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVBMTRGMzA5
NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3
RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFMjE0NTc2NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRy
b2xsZXIuY3BwICovOyB9OwpAQCAtMTMyNjcsNiArMTMyNzAsOSBAQAogCQlDQUU5RjkwRDE0NjQ0
MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJh
dGlvVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQXNwZWN0UmF0
aW9WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRTE0NjQ0MUYw
MDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDU1NWYXJpYWJsZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENE
RDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZXZpY2VDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3
REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2Vi
Q29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0QyN0Y2RTAxNDU3NUMxQjAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTWVkaWFDb250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE1ODY2LDYgKzE1ODcyLDkgQEAKIAkJCQk5NzVDQTI4NzEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5
cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmggKi8s
CiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCisJCQkJQ0ND
MkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovLAorCQkJCUNDQzJCNTEx
MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLywKKwkJCQlDQ0MyQjUx
MjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovLAogCQkJCUNEMzdCMzc0
MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwICovLAogCQkJCUNE
MzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLywKIAkJ
CQkyRDlBMjQ2QTE1QjlCQkREMDBEMzQ1MjcgLyogRE9NU2VjdXJpdHlQb2xpY3kuY3BwICovLApA
QCAtMjI3OTUsNiArMjI4MDQsOCBAQAogCQkJCTkzMzA5REUxMDk5RTY0OTIwMDU2RTU4MSAvKiBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDE2NjBBNTEzNzg3
QzZEMDAxRkZBN0IgLyogRGVub3JtYWxEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdD
OUFCRjkxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDQ0MyQjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlDQ0MyQjUxNjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFBNTcxMjBBNUQwNjAwREMwMkEwIC8qIERl
dmljZU1vdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFBNTkxMjBBNUQwNjAw
REMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
RkIxQTVCMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmggaW4gSGVhZGVycyAq
LywKQEAgLTI2MzUzLDYgKzI2MzY0LDcgQEAKIAkJCQk5MzMwOURERTA5OUU2NDkyMDA1NkU1ODEg
LyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMw
OURFMDA5OUU2NDkyMDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBN0M5QUJGODEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNv
bnRyb2wuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8q
IERldmljZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNTgxMjBBNUQw
NjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2
ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50
YXRpb25DbGllbnQuaAppbmRleCA0MDQ5YzAzYTRhMTQ0YTc0NTIyOWEwNTQxMzgxY2Q1N2UxNGM2
NWI1Li44NWQ2MmVjMGQ3YmQ0NmJmOWE0NjJjOWI1MmVjYTlhNDgxMWVlYjE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAor
ICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDE4ICsyNywxOCBA
QAogI2lmbmRlZiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudF9oCiAjZGVmaW5lIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50X2gKIAorI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKIGNsYXNzIERl
dmljZU9yaWVudGF0aW9uRGF0YTsKIGNsYXNzIFBhZ2U7CiAKLWNsYXNzIERldmljZU9yaWVudGF0
aW9uQ2xpZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50IDogcHVibGljIERldmlj
ZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGV2aWNlT3JpZW50YXRpb25DbGllbnQo
KSB7fQogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlciopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgPSAwOwogICAgIHZpcnR1YWwgRGV2aWNlT3Jp
ZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpID0gMDsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDkxYmZmZmM0YTY2OTE5YzQ3MjY2ZGRlNTNjNTE0Y2YzYTcxYjJiZjkuLmZmMWMyMTk2ODcw
ZWZmY2Q3NDNmY2Y3Yzk3NTI0NDgxYzlhN2FhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTcgKzM1LDExIEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6RGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyKFBhZ2UqIHBhZ2UsIERldmljZU9yaWVudGF0aW9uQ2xpZW50
KiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgOiBEZXZpY2VDb250cm9sbGVy
KGNsaWVudCkKICAgICAsIG1fcGFnZShwYWdlKQotICAgICwgbV90aW1lcih0aGlzLCAmRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOjp0aW1lckZpcmVkKQogewogICAgIEFTU0VSVChtX2NsaWVu
dCk7Ci0gICAgbV9jbGllbnQtPnNldENvbnRyb2xsZXIodGhpcyk7Ci19Ci0KLURldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcjo6fkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpCi17Ci0gICAg
bV9jbGllbnQtPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOworICAgIGRl
dmljZU9yaWVudGF0aW9uQ2xpZW50KCktPnNldENvbnRyb2xsZXIodGhpcyk7CiB9CiAKIFBhc3NP
d25QdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdlLCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogY2xpZW50
KQpAQCAtNTIsOTEgKzQ3LDI1IEBAIFBhc3NPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyPiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShQYWdlCiAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIocGFnZSwgY2xpZW50KSk7
CiB9CiAKLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjp0aW1lckZpcmVkKFRpbWVy
PERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4qIHRpbWVyKQotewotICAgIEFTU0VSVF9VTlVT
RUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKLSAgICBBU1NFUlQobV9jbGllbnQtPmxhc3RP
cmllbnRhdGlvbigpKTsKLQotICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IG9yaWVu
dGF0aW9uID0gbV9jbGllbnQtPmxhc3RPcmllbnRhdGlvbigpOwotICAgIFJlZlB0cjxEZXZpY2VP
cmllbnRhdGlvbkV2ZW50PiBldmVudCA9IERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCwgb3JpZW50YXRpb24uZ2V0KCkpOwot
Ci0gICAgVmVjdG9yPFJlZlB0cjxET01XaW5kb3c+ID4gbGlzdGVuZXJzVmVjdG9yOwotICAgIGNv
cHlUb1ZlY3RvcihtX25ld0xpc3RlbmVycywgbGlzdGVuZXJzVmVjdG9yKTsKLSAgICBtX25ld0xp
c3RlbmVycy5jbGVhcigpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJzVmVj
dG9yLnNpemUoKTsgKytpKQotICAgICAgICBsaXN0ZW5lcnNWZWN0b3JbaV0tPmRpc3BhdGNoRXZl
bnQoZXZlbnQpOwotfQotCi12b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6YWRkTGlz
dGVuZXIoRE9NV2luZG93KiB3aW5kb3cpCi17Ci0gICAgLy8gSWYgdGhlIGNsaWVudCBhbHJlYWR5
IGhhcyBhbiBvcmllbnRhdGlvbiwgd2Ugc2hvdWxkIGZpcmUgYW4gZXZlbnQgd2l0aCB0aGF0Ci0g
ICAgLy8gb3JpZW50YXRpb24uIFRoZSBldmVudCBpcyBmaXJlZCBhc3luY2hyb25vdXNseSwgYnV0
IHdpdGhvdXQKLSAgICAvLyB3YWl0aW5nIGZvciB0aGUgY2xpZW50IHRvIGdldCBhIG5ldyBvcmll
bnRhdGlvbi4KLSAgICBpZiAobV9jbGllbnQtPmxhc3RPcmllbnRhdGlvbigpKSB7Ci0gICAgICAg
IG1fbmV3TGlzdGVuZXJzLmFkZCh3aW5kb3cpOwotICAgICAgICBpZiAoIW1fdGltZXIuaXNBY3Rp
dmUoKSkKLSAgICAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgIH0KLQotICAg
IC8vIFRoZSBjbGllbnQgbXVzdCBub3QgY2FsbCBiYWNrIHN5bmNocm9ub3VzbHkuCi0gICAgYm9v
bCB3YXNFbXB0eSA9IG1fbGlzdGVuZXJzLmlzRW1wdHkoKTsKLSAgICBtX2xpc3RlbmVycy5hZGQo
d2luZG93KTsKLSAgICBpZiAod2FzRW1wdHkpCi0gICAgICAgIG1fY2xpZW50LT5zdGFydFVwZGF0
aW5nKCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpyZW1vdmVMaXN0
ZW5lcihET01XaW5kb3cqIHdpbmRvdykKLXsKLSAgICBtX2xpc3RlbmVycy5yZW1vdmUod2luZG93
KTsKLSAgICBtX3N1c3BlbmRlZExpc3RlbmVycy5yZW1vdmUod2luZG93KTsKLSAgICBtX25ld0xp
c3RlbmVycy5yZW1vdmUod2luZG93KTsKLSAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQot
ICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Ci19Ci0KLXZvaWQgRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyOjpyZW1vdmVBbGxMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5kb3cpCit2
b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRp
b24oRGV2aWNlT3JpZW50YXRpb25EYXRhKiBvcmllbnRhdGlvbikKIHsKLSAgICAvLyBNYXkgYmUg
Y2FsbGVkIHdpdGggYSBET01XaW5kb3cgdGhhdCdzIG5vdCBhIGxpc3RlbmVyLgotICAgIGlmICgh
bV9saXN0ZW5lcnMuY29udGFpbnMod2luZG93KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9s
aXN0ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7Ci0gICAgbV9zdXNwZW5kZWRMaXN0ZW5lcnMucmVt
b3ZlQWxsKHdpbmRvdyk7Ci0gICAgbV9uZXdMaXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7Ci0gICAg
aWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9jbGllbnQtPnN0b3BVcGRhdGlu
ZygpOworICAgIG9yaWVudGF0aW9uID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpvdmVycmlk
ZURldmljZU9yaWVudGF0aW9uKG1fcGFnZSwgb3JpZW50YXRpb24pOworICAgIGRpc3BhdGNoRGV2
aWNlRXZlbnQoRGV2aWNlT3JpZW50YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kZXZp
Y2VvcmllbnRhdGlvbkV2ZW50LCBvcmllbnRhdGlvbikpOwogfQogCi12b2lkIERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcjo6c3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyhET01XaW5kb3cq
IHdpbmRvdykKK0RldmljZU9yaWVudGF0aW9uQ2xpZW50KiBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXI6OmRldmljZU9yaWVudGF0aW9uQ2xpZW50KCkKIHsKLSAgICBpZiAoIW1fbGlzdGVuZXJz
LmNvbnRhaW5zKHdpbmRvdykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBjb3VudCA9IG1f
bGlzdGVuZXJzLmNvdW50KHdpbmRvdyk7Ci0gICAgcmVtb3ZlQWxsTGlzdGVuZXJzKHdpbmRvdyk7
Ci0gICAgd2hpbGUgKGNvdW50LS0pCi0gICAgICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLmFkZCh3
aW5kb3cpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VPcmllbnRhdGlvbkNsaWVudCo+
KG1fY2xpZW50KTsKIH0KIAotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnJlc3Vt
ZUV2ZW50c0ZvckFsbExpc3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKK2Jvb2wgRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyOjpoYXNMYXN0RGF0YSgpCiB7Ci0gICAgaWYgKCFtX3N1c3BlbmRl
ZExpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbnQg
Y291bnQgPSBtX3N1c3BlbmRlZExpc3RlbmVycy5jb3VudCh3aW5kb3cpOwotICAgIG1fc3VzcGVu
ZGVkTGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOwotICAgIHdoaWxlIChjb3VudC0tKQotICAg
ICAgICBhZGRMaXN0ZW5lcih3aW5kb3cpOworICAgIHJldHVybiBkZXZpY2VPcmllbnRhdGlvbkNs
aWVudCgpLT5sYXN0T3JpZW50YXRpb24oKTsKIH0KIAotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9yaWVudGF0aW9uRGF0
YSogb3JpZW50YXRpb24pCitQYXNzUmVmUHRyPEV2ZW50PiBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXI6OmdldExhc3RFdmVudCgpCiB7Ci0gICAgb3JpZW50YXRpb24gPSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246Om92ZXJyaWRlRGV2aWNlT3JpZW50YXRpb24obV9wYWdlLCBvcmllbnRhdGlv
bik7Ci0gICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uRXZlbnQ+IGV2ZW50ID0gRGV2aWNlT3Jp
ZW50YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50
LCBvcmllbnRhdGlvbik7Ci0gICAgVmVjdG9yPFJlZlB0cjxET01XaW5kb3c+ID4gbGlzdGVuZXJz
VmVjdG9yOwotICAgIGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJzVmVjdG9yKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVyc1ZlY3Rvci5zaXplKCk7ICsraSkK
LSAgICAgICAgbGlzdGVuZXJzVmVjdG9yW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBy
ZXR1cm4gRGV2aWNlT3JpZW50YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kZXZpY2Vv
cmllbnRhdGlvbkV2ZW50LCBkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpLT5sYXN0T3JpZW50YXRp
b24oKSk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyOjpzdXBwbGVtZW50TmFtZSgpCkBAIC0xNDUsNiArNzQsMTEgQEAgY29uc3QgQXRvbWljU3Ry
aW5nJiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKICAgICBy
ZXR1cm4gbmFtZTsKIH0KIAorRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXI6OmZyb20oUGFnZSogcGFnZSkKK3sKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKj4oU3VwcGxlbWVudDxQYWdlPjo6ZnJv
bShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7Cit9CisKIGJvb2wgRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyOjppc0FjdGl2ZUF0KFBhZ2UqIHBhZ2UpCiB7CiAgICAgaWYgKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogc2VsZiA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJv
bShwYWdlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuaAppbmRleCBmNWU2Zjk1MDNjMTNlZDlmOTJlOTI4ZjkxZTFmYjViMjMyNDBlMGVkLi4w
MDIxMTk1MGFjMjNjNDhhOWI4NTAwYzlhYjQyZDQ3YzFiYzBlMjE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNTMgKzI3LDM0
IEBACiAjaWZuZGVmIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcl9oCiAjZGVmaW5lIERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcl9oCiAKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNs
dWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKLQorI2luY2x1ZGUgIkRldmljZUNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudDsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uRGF0YTsKIAotY2xhc3MgRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworY2xh
c3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyIDogcHVibGljIERldmljZUNvbnRyb2xsZXIg
ewogcHVibGljOgotICAgIH5EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKTsKKyAgICB+RGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgeyB9OwogCiAgICAgc3RhdGljIFBhc3NPd25QdHI8
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBjcmVhdGUoUGFnZSosIERldmljZU9yaWVudGF0
aW9uQ2xpZW50Kik7CiAKLSAgICB2b2lkIGFkZExpc3RlbmVyKERPTVdpbmRvdyopOwotICAgIHZv
aWQgcmVtb3ZlTGlzdGVuZXIoRE9NV2luZG93Kik7Ci0gICAgdm9pZCByZW1vdmVBbGxMaXN0ZW5l
cnMoRE9NV2luZG93Kik7Ci0KLSAgICB2b2lkIHN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMo
RE9NV2luZG93Kik7Ci0gICAgdm9pZCByZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2lu
ZG93Kik7Ci0KICAgICB2b2lkIGRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9yaWVu
dGF0aW9uRGF0YSopOworICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBkZXZpY2VPcmllbnRh
dGlvbkNsaWVudCgpOwogCi0gICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0dXJuICFtX2xpc3RlbmVy
cy5pc0VtcHR5KCk7IH0KLQotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX2NsaWVudDsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNMYXN0RGF0YSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFdmVudD4gZ2V0TGFzdEV2ZW50KCkg
T1ZFUlJJREU7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFt
ZSgpOwotICAgIHN0YXRpYyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGZyb20oUGFnZSog
cGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKj4o
U3VwcGxlbWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KKyAgICBz
dGF0aWMgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBmcm9tKFBhZ2UqKTsKICAgICBzdGF0
aWMgYm9vbCBpc0FjdGl2ZUF0KFBhZ2UqKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoUGFnZSosIERldmljZU9yaWVudGF0aW9uQ2xpZW50Kik7
Ci0KLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
PiopOworICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcihQYWdlKiwgRGV2aWNlT3JpZW50
YXRpb25DbGllbnQqKTsKIAotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBtX2NsaWVudDsK
ICAgICBQYWdlKiBtX3BhZ2U7Ci0gICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxSZWZQdHI8RE9N
V2luZG93PiA+IExpc3RlbmVyc0NvdW50ZWRTZXQ7Ci0gICAgTGlzdGVuZXJzQ291bnRlZFNldCBt
X2xpc3RlbmVyczsKLSAgICBMaXN0ZW5lcnNDb3VudGVkU2V0IG1fc3VzcGVuZGVkTGlzdGVuZXJz
OwotICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8RE9NV2luZG93PiA+IExpc3RlbmVyc1NldDsK
LSAgICBMaXN0ZW5lcnNTZXQgbV9uZXdMaXN0ZW5lcnM7Ci0gICAgVGltZXI8RGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyPiBtX3RpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggN2VjM2Q1NzEyMmUyNjEwMzM0MDhjMzQwNGUyYzc3
Mjk3MWEwMDRjMC4uZmQ2N2E4ODZhOTNkYjE3NDRjYzZhMjkxYTBhZDBkODk4NjUwZWQyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMTc2LDkgKzIxNzYsNiBAQCB2b2lkIERvY3VtZW50
OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3Bl
bnNpb24gd2h5KQogCiAgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNvbnRyb2xs
ZXItPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwotICAgIGlmIChE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+c3VzcGVuZEV2
ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7Ci0KICNlbmRpZgogfQogCkBAIC0yMTky
LDggKzIxODksNiBAQCB2b2lkIERvY3VtZW50OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKCkKIAog
ICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9u
Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5yZXN1bWVFdmVu
dHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwotICAgIGlmIChEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZy
b20ocGFnZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVu
ZXJzKGRvbVdpbmRvdygpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKaW5kZXggNjdlODdhNzkyNjU4YmNhYmFiZDM0ODNkMmQ1NDMzNDMzMjE3OTBlNC4uMmEw
MWNiMWU4NmI0NjQ2NjYzY2IzZjM1ZjRkMGNhYmY1YThkZTUwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaApAQCAtNTc3LDYgKzU3NywxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGhpZGVIaWdobGlnaHQoKSB7IH0KIH07CiAKK2NsYXNzIEVtcHR5RGV2aWNlQ2xpZW50
IDogcHVibGljIERldmljZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0
VXBkYXRpbmcoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkg
T1ZFUlJJREUgeyB9Cit9OworCiBjbGFzcyBFbXB0eURldmljZU1vdGlvbkNsaWVudCA6IHB1Ymxp
YyBEZXZpY2VNb3Rpb25DbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqKSB7IH0KQEAgLTU4OSw4ICs1OTUsNiBAQCBw
dWJsaWM6CiBjbGFzcyBFbXB0eURldmljZU9yaWVudGF0aW9uQ2xpZW50IDogcHVibGljIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJv
bGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRVcGRhdGluZygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSB7IH0K
ICAgICB2aXJ0dWFsIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29u
c3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXJEZXN0cm95ZWQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
YWNkZWM5NWQ4YmE0Mjk5NjNhYjc0YjcyMDk5NTJiYmViZWI5MzI5YS4uYjg0YmIwMjVjNjYwYzBj
YTM4NzdhM2Y3MDYxMmRhOTNhYTJmMTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApA
QCAtMTU5OSw3ICsxNTk5LDcgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnQKICAgICAgICAgICAg
IGNvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOwogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYmIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmRldmljZU9yaWVudGF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgIGlmIChEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKLSAgICAgICAgICAgIGNvbnRyb2xsZXItPmFkZExpc3Rl
bmVyKHRoaXMpOworICAgICAgICAgICAgY29udHJvbGxlci0+YWRkRGV2aWNlRXZlbnRMaXN0ZW5l
cih0aGlzKTsKICAgICB9CiAjZW5kaWYKIApAQCAtMTYyOCw3ICsxNjI4LDcgQEAgYm9vbCBET01X
aW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IEV2ZW50TGlzdGVuZXIKICAgICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUxpc3RlbmVyKHRo
aXMpOwogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vvcmll
bnRhdGlvbkV2ZW50KSB7CiAgICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkK
LSAgICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUxpc3RlbmVyKHRoaXMpOworICAgICAgICAg
ICAgY29udHJvbGxlci0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcih0aGlzKTsKICAgICB9CiAj
ZW5kaWYKIApAQCAtMTY4NSw3ICsxNjg1LDcgQEAgdm9pZCBET01XaW5kb3c6OnJlbW92ZUFsbEV2
ZW50TGlzdGVuZXJzKCkKICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxl
ciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJv
bGxlci0+cmVtb3ZlQWxsTGlzdGVuZXJzKHRoaXMpOwogICAgIGlmIChEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZy
b20ocGFnZSgpKSkKLSAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsTGlzdGVuZXJzKHRoaXMp
OworICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVycyh0aGlz
KTsKICNlbmRpZgogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTE2MGI3MTc3Zjk0MDUyZDVi
MDY2MWUzMTYwMjg5NjQ5MmI2MTBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EZXZpY2VDbGllbnQuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IDIw
MTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIERldmljZUNsaWVudF9oCisjZGVmaW5lIERldmljZUNsaWVudF9oCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5EZXZpY2VDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSA9IDA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VDbGllbnRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmUyNzBkYjg3OTdjZWJlZDMx
ZTdiNzU3NjhiOGE1NzQ1YjkzMjJjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VDb250cm9sbGVyLmgi
CisKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VDb250cm9sbGVy
OjpEZXZpY2VDb250cm9sbGVyKERldmljZUNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQo
Y2xpZW50KQorICAgICwgbV90aW1lcih0aGlzLCAmRGV2aWNlQ29udHJvbGxlcjo6ZmlyZURldmlj
ZUV2ZW50KQoreworICAgIEFTU0VSVChtX2NsaWVudCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJv
bGxlcjo6YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBi
b29sIHdhc0VtcHR5ID0gbV9saXN0ZW5lcnMuaXNFbXB0eSgpOworICAgIG1fbGlzdGVuZXJzLmFk
ZCh3aW5kb3cpOworCisgICAgaWYgKGhhc0xhc3REYXRhKCkpIHsKKyAgICAgICAgbV9sYXN0RXZl
bnRMaXN0ZW5lcnMuYWRkKHdpbmRvdyk7CisgICAgICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgfQorCisgICAgaWYg
KHdhc0VtcHR5KQorICAgICAgICBtX2NsaWVudC0+c3RhcnRVcGRhdGluZygpOworfQorCit2b2lk
IERldmljZUNvbnRyb2xsZXI6OnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93KiB3
aW5kb3cpCit7CisgICAgbV9saXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7CisgICAgbV9sYXN0RXZl
bnRMaXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7CisgICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHko
KSkKKyAgICAgICAgbV9jbGllbnQtPnN0b3BVcGRhdGluZygpOworfQorCit2b2lkIERldmljZUNv
bnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXJzKERPTVdpbmRvdyogd2luZG93
KQoreworICAgIG1fbGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIG1fbGFzdEV2ZW50
TGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5
KCkpCisgICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VD
b250cm9sbGVyOjpkaXNwYXRjaERldmljZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQor
eworICAgIFZlY3RvcjxSZWZQdHI8RE9NV2luZG93PiA+IGxpc3RlbmVyVmVjdG9yOworICAgIGNv
cHlUb1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJWZWN0b3IpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbGlzdGVuZXJWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGxp
c3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVudCgpCisgICAgICAgICAgICAmJiAhbGlzdGVuZXJWZWN0
b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKQorICAgICAg
ICAgICAgJiYgIWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVudCgpLT5hY3RpdmVET01PYmplY3Rz
QXJlU3RvcHBlZCgpKQorICAgICAgICBsaXN0ZW5lclZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVudChl
dmVudCk7CisgICAgfQorfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmZpcmVEZXZpY2VFdmVu
dChUaW1lcjxEZXZpY2VDb250cm9sbGVyPiogdGltZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0
aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOworICAgIEFTU0VSVChoYXNMYXN0RGF0YSgpKTsKKwor
ICAgIG1fdGltZXIuc3RvcCgpOworICAgIFZlY3RvcjxSZWZQdHI8RE9NV2luZG93PiA+IGxpc3Rl
bmVyVmVjdG9yOworICAgIGNvcHlUb1ZlY3RvcihtX2xhc3RFdmVudExpc3RlbmVycywgbGlzdGVu
ZXJWZWN0b3IpOworICAgIG1fbGFzdEV2ZW50TGlzdGVuZXJzLmNsZWFyKCk7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lclZlY3Rvci5zaXplKCk7ICsraSkgeworICAgICAgICBp
ZiAobGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCkKKyAgICAgICAgICAgICYmICFsaXN0ZW5l
clZlY3RvcltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpCisg
ICAgICAgICAgICAmJiAhbGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9i
amVjdHNBcmVTdG9wcGVkKCkpCisgICAgICAgIGxpc3RlbmVyVmVjdG9yW2ldLT5kaXNwYXRjaEV2
ZW50KGdldExhc3RFdmVudCgpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdmZjc4MjJk
MTZhYjYzZmEwZWUyMmQ3YzE2Yzc0ZDlhMTFiOWQ3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQ29w
eXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ29udHJvbGxlcl9oCisjZGVmaW5lIERldmljZUNv
bnRyb2xsZXJfaAorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIK
KyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVk
ZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RGV2aWNlQ2xpZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgRGV2aWNlQ29udHJvbGxlciA6IHB1
YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEZXZpY2VDb250
cm9sbGVyKERldmljZUNsaWVudCopOworICAgIH5EZXZpY2VDb250cm9sbGVyKCkgeyB9CisKKyAg
ICB2b2lkIGFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Kik7CisgICAgdm9pZCByZW1v
dmVEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyopOworICAgIHZvaWQgcmVtb3ZlQWxsRGV2
aWNlRXZlbnRMaXN0ZW5lcnMoRE9NV2luZG93Kik7CisKKyAgICB2b2lkIGRpc3BhdGNoRGV2aWNl
RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAh
bV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CisgICAgRGV2aWNlQ2xpZW50KiBjbGllbnQoKSB7IHJl
dHVybiBtX2NsaWVudDsgfQorCisgICAgdmlydHVhbCBib29sIGhhc0xhc3REYXRhKCkgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RXZlbnQ+IGdldExhc3RFdmVudCgp
IHsgcmV0dXJuIDA7IH0KKworcHJvdGVjdGVkOgorICAgIHZvaWQgZmlyZURldmljZUV2ZW50KFRp
bWVyPERldmljZUNvbnRyb2xsZXI+Kik7CisKKyAgICBIYXNoQ291bnRlZFNldDxSZWZQdHI8RE9N
V2luZG93PiA+IG1fbGlzdGVuZXJzOworICAgIEhhc2hDb3VudGVkU2V0PFJlZlB0cjxET01XaW5k
b3c+ID4gbV9sYXN0RXZlbnRMaXN0ZW5lcnM7CisgICAgRGV2aWNlQ2xpZW50KiBtX2NsaWVudDsK
KyAgICBUaW1lcjxEZXZpY2VDb250cm9sbGVyPiBtX3RpbWVyOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwCmluZGV4IGRhNzkzMTExZmFiZGIzYTA5NDkxMjJiMGU2ZDA0YTZlZWZiNDUxMjYuLmVk
ZjIwYTQ2MDUwMzMxNzY0ZDc5ZGJmZjBkMzNiYzkwN2JjYmY2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwCkBAIC03MTMsNyArNzEzLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKFFXZWJQYWdlKiBwYWdlLCBib29sIGNhblAKIHsKICNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIFBhZ2UqIGNvcmVQYWdlID0gUVdlYlBh
Z2VQcml2YXRlOjpjb3JlKHBhZ2UpOwotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayog
bW9ja0NsaWVudCA9IHRvRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcjo6ZnJvbShjb3JlUGFnZSktPmNsaWVudCgpKTsKKyAgICBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0RldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jayhEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20oY29yZVBhZ2UpLT5kZXZpY2VP
cmllbnRhdGlvbkNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRPcmllbnRhdGlvbihEZXZp
Y2VPcmllbnRhdGlvbkRhdGE6OmNyZWF0ZShjYW5Qcm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92
aWRlQmV0YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1tYSkpOwogI2VuZGlmCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>